Sha256: 0e5adac67c4921ffd077fbbbdb2a1efe880ffca3dbcdef4411729bf983308a6e

Contents?: true

Size: 1.32 KB

Versions: 13

Compression:

Stored size: 1.32 KB

Contents

# coding: utf-8
module JpPrefecture
  module Base
    # モデル内で使用するための設定を行う
    #
    # 変換対象のカラムを指定する:
    #
    #   class Place < ActiveRecord::Base
    #     include JpPrefecture
    #     jp_prefecture :prefecture_code
    #   end
    #
    #   p = Place.new
    #   p.prefecture_code = 1
    #   p.prefecture
    #   # => #<JpPrefecture::Prefecture:0x007fd0a3d10f30 @code=1, @name="北海道", @name_e="Hokkaido">
    #
    # 生成するメソッド名は method_name で指定する:
    #
    #   class Place < ActiveRecord::Base
    #     include JpPrefecture
    #     jp_prefecture :prefecture_code, method_name: :pref
    #   end
    #
    #   p = Place.new
    #   p.prefecture_code = 1
    #   p.pref
    #   # => #<JpPrefecture::Prefecture:0x007fcb8444dcc8 @code=1, @name="北海道", @name_e="Hokkaido">
    #
    # @param [Symbol] column_name 変換対象のカラム
    # @option options [Symbol] :method_name 生成するメソッド名。デフォルト: +:prefecture+
    def jp_prefecture(column_name, options = {})
      column_name = column_name.to_sym if column_name.is_a?(String)
      method_name = options[:method_name] || :prefecture

      define_method method_name do
        JpPrefecture::Prefecture.find(self.send(column_name))
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
jp_prefecture-0.11.0 lib/jp_prefecture/base.rb
jp_prefecture-0.10.0 lib/jp_prefecture/base.rb
jp_prefecture-0.9.0 lib/jp_prefecture/base.rb
jp_prefecture-0.8.1 lib/jp_prefecture/base.rb
jp_prefecture-0.8.0 lib/jp_prefecture/base.rb
jp_prefecture-0.7.0 lib/jp_prefecture/base.rb
jp_prefecture-0.6.0 lib/jp_prefecture/base.rb
jp_prefecture-0.5.0 lib/jp_prefecture/base.rb
jp_prefecture-0.4.0 lib/jp_prefecture/base.rb
jp_prefecture-0.3.2 lib/jp_prefecture/base.rb
jp_prefecture-0.3.1 lib/jp_prefecture/base.rb
jp_prefecture-0.3.0 lib/jp_prefecture/base.rb
jp_prefecture-0.2.0 lib/jp_prefecture/base.rb