module SorryYahooFinance::Decorator

Public Instance Methods

output(lang, format) click to toggle source
# File lib/sorry_yahoo_finance/decorator.rb, line 9
def output(lang, format)
  @stocks.map! { |stock_hash| formalize_values(stock_hash) }

  case lang
  when :ja
    @stocks.map! { |stock_hash| to_ja_key(stock_hash) }
  end

  case format
  when :hash
  when :json
    @stocks.map! &:to_json
  end

  @stocks
end

Private Instance Methods

formalize_values(stock_hash) click to toggle source
# File lib/sorry_yahoo_finance/decorator.rb, line 33
def formalize_values(stock_hash)
  Hash[
    stock_hash.map do |key, value|
      formated_value = if value.nil?
                        nil
                       elsif INT_KEYS.include?(key)
                        value.delete(",").to_i
                       elsif FLOAT_KEYS.include?(key)
                        value.to_f
                       elsif key == :price_limit
                         value.delete!(",")
                         value =~ /(\d+)~(\d+)/
                         Range.new($1.to_i,$2.to_i)
                       elsif key == :prices
                         prices = stock_hash[:prices]
                         prices.select! {|price| price[:turnover] }
                         prices.map { |price| formalize_values(price) }
                       else
                         value
                       end
      [key, formated_value]
    end
  ]
end
to_ja_key(stock_hash) click to toggle source
# File lib/sorry_yahoo_finance/decorator.rb, line 27
def to_ja_key(stock_hash)
  Hash[
    stock_hash.to_a.map { |k, v| [JA_RABEL_HASH[k], v] }
  ]
end