Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hatena/scala-intern-bookmark
はてな教科書サンプルコード
https://github.com/hatena/scala-intern-bookmark
Last synced: about 17 hours ago
JSON representation
はてな教科書サンプルコード
- Host: GitHub
- URL: https://github.com/hatena/scala-intern-bookmark
- Owner: hatena
- Created: 2015-08-06T08:26:13.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-08-15T02:57:28.000Z (about 8 years ago)
- Last Synced: 2024-04-15T00:05:00.459Z (7 months ago)
- Language: Scala
- Homepage: https://github.com/hatena/Hatena-Textbook
- Size: 23.4 KB
- Stars: 9
- Watchers: 27
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Intern-Bookmark
## 準備
### sbt
[sbtのダウンロードページ](http://www.scala-sbt.org/download.html) などを参考にインストールしましょう。Macの場合は以下のようにすればOK。```sh
$ brew install sbt
```### データベース
MySQLを使いますのでインストールします。```sh
$ brew install mysql
$ ln -fs $(brew --prefix mysql)/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
```データベースとテーブル定義を読み込ませます。
```sh
$ mysqladmin create internbookmark
$ mysqladmin create internbookmark_test
$ cd /path/to/Intern-Bookmark-scala
$ cat db/schema.sql | mysql -uroot internbookmark
$ cat db/schema.sql | mysql -uroot internbookmark_test
```## 実行
```sh
$ sbt
> run list
> run add http://www.hatena.ne.jp 便利なページ
> run delete http://www.hatena.ne.jp
```mainクラスが複数あるので、実行時にどれを起動するか選択する必要があります。
## テスト
```sh
$ sbt
> test
```## モジュール
- internbookmark
- cli
- BookmarkCLI CLIコマンドの実装
- model データモデル
- Bookmark
- Entry URLと対応
- User
- repository データモデルをDBやファイルシステムなどに記録して操作するためのサービス
- Bookmarks Bookmarkのリポジトリ
- Entries Entryのリポジトリ
- Users Userのリポジトリ
- Identifier Idを作ってくれる
- TitleExtractor urlに対応するWebサイトのタイトル情報を取得してくれるサービスのtrait
- TitleExtractorDispatch Dispatchを使ったTitleExtractorの実装
- service アプリケーションのコアロジック
- Json データモデルのJson表現を管理
- BookmarkCLIApp ブックマークの主たる機能を表現したアプリケーションクラス
- Error アプリケーション層で使うエラー定数