なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2016/05/25)

2016/05/25分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activesupport/CHANGELOG.md


Remove version header from railties CHANGELOG.md (#25122)

railties/CHANGELOG.mdの修正です。

CHANGELOGの先頭から不要なバージョンの記載を削除しています。


Fixing commands with Markdown formatting

railties/RDOC_MAIN.rdocの修正です。

コマンドのexampleを記載している箇所の先頭に$を追加しています。

例。

$ gem install rails

Build action_cable.js with Blade

Action Cableの修正です。

Action Cableのgemリリース時に行うCoffeeScriptJavaScriptへの変換処理に、独自のRakeタスクを使用していたのを、javan/bladeを使用するよう修正しています。bladeで必要な変換処理はすべて行える為。


Remove package:clean task

コンポーネントRakefileの修正です。

不要なpackage:cleanタスクを削除しています。


Minor comment language correction.

ci/travis.rbのdocの修正です。

Build#envメソッド内のdocのグラマーの修正を行っています。


Cloning depth set to 1

.travis.ymlの修正です。

git depthオプションに"1"を指定するよう修正しています。

git:
  depth: 1

少し高速になる為、との事です。


Merge pull request #23930 from gsamokovarov/module-delegate-missing-to

activesupport/lib/active_support/core_ext/module/delegation.rbの修正です。

methodが見つからなかった際に、指定したobjectに処理をdelegateする為のModule#delegate_missing_toメソッドを追加しています。

実装は下記の通り。

def delegate_missing_to(target)
  target = target.to_s
  target = "self.#{target}" if DELEGATION_RESERVED_METHOD_NAMES.include?(target)

  module_eval <<-RUBY, __FILE__, __LINE__ + 1
    def respond_to_missing?(name, include_private = false)
      #{target}.respond_to?(name, include_private)
    end
    def method_missing(method, *args, &block)
      #{target}.send(method, *args, &block)
    end
  RUBY
end

例えば、decoratorを作成する際等に便利だろう、との事です。


Don't delegate to private methods of the targer

activesupport/lib/active_support/core_ext/module/delegation.rbの修正です。

先で追加されたdelegate_missing_toで、public methodのみ呼び出すよう修正しています。

      def method_missing(method, *args, &block)
-        #{target}.send(method, *args, &block)
+        if #{target}.respond_to?(method)
+          #{target}.public_send(method, *args, &block)
+        else
+          super
+        end

Normalize whitespace for Hash#compact documentation [ci skip]

activesupport/lib/active_support/core_ext/hash/compact.rbのdocの修正です。

Hash#compactHash#compact!メソッドのdoc内から不要なスペースを削除しています。


Add tests for keyword arg to: for Module#delegate

activesupport/test/core_ext/module_test.rbの修正です。

Module#delegateメソッドprefix: trueを設定した場合のテストを追加しています。