Testing
この記事はRubyToolbox の記事の概要の和訳の副記事です。
Testing
原文 - https://www.ruby-toolbox.com/
A/B Testing
RailsでA/Bテストを行います。
A/Bテストとは、複数のページを用意し、それぞれのページのコンバーション率を測定するマーケティング手法です。 Railsにおいては、文字列などの細かな単位の比較をすることができます。
省略します。
Acceptance Test Frameworks
Railsで承認(受け入れ)テストを行います。
Cucumber
キレイで楽しいBDD
Steak
SteakはRspecのための小さな拡張機能で、アプリケーションの受け入れテストを行うためのライブラリです。
Cucumberの代替としてplain Rubyで記述ができます。内部でCapybaraを利用します。
(Cucumberでは、自然言語でテスティングを記述するための中間コードの記述が必要になります)
(Capybaraは外部ドライバを利用し、ユーザー操作をエミュレーションするライブラリです)
Browser testing
WebブラウザによるWebアプリのテストを行います。 #TODO
Continuous Testing
継続的(動的)テストを行います。
(テストを自動・継続的に行います。具体的には、テスト対象のファイルの変更を監視したりします。)
#TODO
Cucumber Steps #TODO
Cucumber Tools #TODO
Distributed Testing
テストを分散処理します。 省略します。
Mocking
テストのためのモックアップを作成します。 #TODO
Mocking Web Requests
Webのリクエストのモックアップを作成します。 #TODO
Rails Fixture Replacement
#TODO
Random Data Generation
ランダムデータを生成します。 #TODO
Testing Rails Engines
#TODO
Test::Unit Extensions
#TODO
Time Warping
テストのためにアプリケーションの内部時間を固定します。 #TODO
Unit Test Frameworks
単体テストを行います。 #TODO
Active Record Plugins
この記事はRubyToolbox の記事の概要の和訳の副記事です。
Active Record Plugins
原文 - https://www.ruby-toolbox.com/
Active Record DB Adapters
JRubyにおけるARアダプタや、Microsoft SQL Server、Oracle用のアダプタがカテゴライズされていますが、それらは省略します。
nulldb
バックエンドのDBを副作用のないものに代替します。
NullDBはあなたのモデルのビジネスロジック――after_saveフックを含む――のテストを可能にします。
Active Record Default Values
(通常、フィールドのデフォルト値はマイグレーションで定義しますが、モデル生成時にデフォルト値をセットできるように拡張します。DBに依存しない点と、動的に値を生成できる点がメリットです。)
Default value for
ActiveRecordのモデルでのデフォルト値を宣言的手法で定義できるようにします
Active record defaults
簡単に新しいモデルオブジェクトの属性のデフォルト値を指定することができます
(Default value forのほうがオプションが豊富なようです)
Active Record Enumerations
モデルに指定可能な値をEnum(列挙)で定義できるようにします。
たとえば 男|女、中学|高校|大学 みたいに。
Enumerated attribute
簡単にモデルの列挙ができます。enum_selectヘルパーを利用しドロップダウンリストを見せたり、任意のオブジェクトの列挙を簡潔にするために enumrated_attribute を利用できます。
enumerize
属性の列挙を可能にし、i18n、ActiveRecord/Mongoidをサポートします
(Enumrated attribute は古く、enumerizeが最近のデファクトスタンダートみたいです)
Active Record Index Assistants
(モデルから、自動的にindexを付加すべき部分を見つけてくれたり #TODO)
Active Record Named Scopes
(名前付きスコープを定義可能にする、いわゆる構文糖衣なのでscope定義していれば必須ではなさそう #TODO)
Active Record Nesting
(自己参照型のリレーションを作成する場合に便利なモジュール(メソッド集合) #TODO)
AwesomeNestedSet
(parent, left, right, deapthの操作を可能にする)
Active Record Sharding
(シャーディングされたDB(マスター、スレーブとか)のアダプタを提供する #TODO)
Active Record Soft Delete
(論理削除を提供する、これにはいわゆる凍結・アーカイブのような機能も含まれる #TODO)
Active Record Sortables
(ソートに関するスケーラブルな機能を提供する #TODO)
Active Record User Stamping #TODO
Active Record Value Cleanup
(値を整形する。たとえば文字列のstripや、価格から円記号を除いたり、Stringの時間をTimeにしたり #TODO)
Active Record Versioning
(レコードの変更を追跡可能にする、Wikiの編集履歴みたいな #TODO)
Pagination
(ページングを提供する、検索結果のx件中、10件みたいな #TODO)
Rails Comments
(コメント機能を提供する、これには非公開コメントや最近のコメント取得などが含まれる #TODO)
Rails DB Bootstrapping #TODO
Rails Ratings #TODO
Rails Search
(全文検索を提供する #TODO)
Rails Tagging #TODO
RubyToolbox の記事の概要の和訳
Railsは周辺ライブラリが異常に充実しているので、それらを組み合わせるだけでたいていのアプリが作れます。
ですが、そもそもどんなライブラリがあるのかは RubyToolbox や Github をウォッチするしかないです。
ということで、RubyToolboxの各カテゴリにどのようなライブラリがあるのか、さらりと俯瞰できるように概要の和訳を書いていきます。scaffoldになれば幸いです。
#TODOが多いです。作業スピードはゆっくりですが、完了した部分はつぶやくようにするので 興味のある方はウォッチしてください。
3つのレベルに分類されています。
- トップカテゴリ (23)
- サブカテゴリ (167)
- Gems
主にサブカテゴリまでと、人気のあるGemsの概要を書く予定です。
- Active Record Plugins (18) #PROGRESS_(5/18)
- Background Processing (4) #TODO
- Code Quality (1) #TODO
- Communication (9) #TODO
- Content Management & Blogging (4) #TODO
- CSS (2) #TODO
- Data Persistence (8) #TODO
- Developer Tools (19) #TODO
- Documentation Tools (2) #TODO
- Documents & Reports (3) #TODO
- E-Commerce and Payments (3) #TODO
- Online Shops
- Payments
- Subscription Management
- Fun (2) #TODO
- Game libraries
- Music & MIDI
- Graphics (4) #TODO
- Graphing
- Image Processing
- QR Codes
- Visualizing Data
- HTML & Markup (8) #TODO
- JavaScript (5) #TODO
- Maintenance & Monitoring (6) #TODO
- Package & Dependency Management (5) #TODO
- Provision, Deploy & Host (8) #TODO
- Rails Plugins (12) #TODO
- Security (7) #TODO
- Testing (15) #PROGRESS_(3/15)
- Time & Space (5) #TODO
- Web Apps, Services & Interaction (17) #TODO
Bootstrapのドロップダウンメニューをマウスオーバーで開く
マウスオーバー(hover)は、いわゆるタッチインターフェースでは原理上できないからUIとしては旧式という見方があるようだ。
でも、なんだかんだでクリックのコストって大きい。モバイルデバイスはともかく、PCでは開かせてもらいたい。
StackOverflowに回答があった。
css - How to make twitter bootstrap menu dropdown on hover rather than click - Stack Overflow
ul.nav li.dropdown:hover ul.dropdown-menu{ display: block; } a.menu:after, .dropdown-toggle:after { content: none; }
ただし、これをそのまま書くとすべてのドロップダウンがぴゅんぴゅん開いてしまうのでクラスに auto
を指定したものだけ、マウスオーバーで開くようにする。
ul.nav li.dropdown.auto:hover ul.dropdown-menu { display: block; } a.menu:after, .dropdown-toggle.auto:after { content: none; }
一応、これで解決なんだけどPC系のデバイスでresponsive表示したときにメニューが縦なのにスッチャスッチャ開いてみにくい。
これを解決するには、カスタムイベントを定義してresponsiveデザインではhoverによるopenを無効にすればいい。 #TODO