ゲダってネハるデイズ★

オフってらったっす!

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 ServerOracle用のアダプタがカテゴライズされていますが、それらは省略します。

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

属性の列挙を可能にし、i18nActiveRecord/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

はてなブログの使いにくいところ

にわかはてなダイアリーユーザーがしばらく使ってみた感想。

Markdownの書式ドキュメント整備してもらいたい

機能追加しました!っていう更新記事見ないと機能があることすらわからないのは苦しい

デザインページで変更を保存してなくてもページ遷移できる

なんでもかんでもAjaxにすること自体はロード減っていい気がするけど、変更が保存されるタイミングがつかみづらくなるので、編集内容はローカルストレージに保存するか、確認のダイアログを表示する。自戒を込めて。

編集ボタンが表示されないときがある

スクロールすると表示される

Bootstrapのドロップダウンメニューをマウスオーバーで開く

マウスオーバー(hover)は、いわゆるタッチインターフェースでは原理上できないからUIとしては旧式という見方があるようだ。

でも、なんだかんだでクリックのコストって大きい。モバイルデバイスはともかく、PCでは開かせてもらいたい。

StackOverflowに回答があった。
css - How to make twitter bootstrap menu dropdown on hover rather than click - Stack Overflow

css

ul.nav li.dropdown:hover ul.dropdown-menu{
    display: block;    
}
a.menu:after, .dropdown-toggle:after {
    content: none;
}

ただし、これをそのまま書くとすべてのドロップダウンがぴゅんぴゅん開いてしまうのでクラスに auto を指定したものだけ、マウスオーバーで開くようにする。

css

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