Sha256: bc6ee8b0445eae2cfb230e0ddb0c5adf9a741fb278133f0cad2a046d056a94f9

Contents?: true

Size: 1.82 KB

Versions: 1

Compression:

Stored size: 1.82 KB

Contents

class TokyoMetro::Factory::Generate::Static::MetaClass::Info::Fundamental

  def generate
    self.class.info_class_for_this_class.new( *variables )
  end

  def self.process( *vars )
    self.new( *vars ).generate
  end

  def self.info_class_for_this_class
    info_class
  end

  private

  def variables
    variables_from_hash_keys
  end

  def set_values_to_hash_for_making_variables( hash_key_array: self.class.hash_keys , make_array: false , boolean: false )
    raise "Error" if boolean and make_array
    hash_key_array = [ hash_key_array ].flatten

    hash_key_array.each do | key_name |
      v = get_hash_value( key_name , boolean: boolean )
      if make_array
        if v.nil?
          v = ::Array.new
        else
          v = [v].flatten
        end
      end
      @hash_for_making_variables[ key_name ] = v
    end
  end

  alias :set_values_to_hash_for_making_variables__alias :set_values_to_hash_for_making_variables

  def variables_from_hash_keys( hash_key_array: self.class.hash_keys )
    hash_key_array.map { | key_name | get_hash_value( key_name ) }
  end

  # ハッシュからインスタンスを作成するときにハッシュの値を取得するメソッド
  # @param key [String or Symbol] ハッシュのキー
  # @param boolean [Boolean] ハッシュ (h) 内のキー (key) に対応する値が boolean か否かの設定
  # @note boolean に true を設定し、ハッシュ (h) 内にキー (key) に対応する値が存在しなかった場合は、false を返す。
  # @return [Object]
  # @return [Boolean] 変数 boolean に true を設定した場合
  def get_hash_value( key_name , boolean: false )
    if @h[ key_name ].present?
      v = @h[ key_name ]
    elsif boolean
      v = false
    else
      v = nil
    end

    if boolean and !( v.boolean? )
      raise "Error"
    end

    v
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tokyo_metro-0.10.1 lib/tokyo_metro/factory/generate/static/meta_class/info/fundamental.rb