class Nengo
Constants
- ANIMAL_LIST_ETO_PATH
- ELEMENT_LIST_ETO_PATH
- JIDAI_DATA_PATH
Attributes
data_eto[R]
data_nengo[R]
jidai_data[R]
nenrei[R]
year_koki[R]
year_seireki[R]
Public Class Methods
new(year = nil)
click to toggle source
# File lib/nengo.rb, line 16 def initialize(year = nil) year = year.nil? ? current_year_seireki : year @jidai_data = load_jidai_data set_by_seireki(year) end
Public Instance Methods
current_year_seireki()
click to toggle source
# File lib/nengo.rb, line 31 def current_year_seireki Time.now.year end
eto_first_three(year_seireki)
click to toggle source
# File lib/nengo.rb, line 104 def eto_first_three(year_seireki) case year_seireki when 1 58 when 2 59 when 3 60 else raise "入力された年が無効です" end end
get_animal_eto(year_rel)
click to toggle source
# File lib/nengo.rb, line 78 def get_animal_eto(year_rel) year_animal = year_rel == 10 ? year_rel : (year_rel % 10) + 1 animal_list_eto = JSON.parse(File.read(ANIMAL_LIST_ETO_PATH)) year_animal = animal_list_eto.select { |hash| hash["id"] == year_animal }.first year_animal end
get_data_eto(year_seireki)
click to toggle source
# File lib/nengo.rb, line 59 def get_data_eto(year_seireki) data_eto = {} year_rel = get_year_eto(year_seireki) data_eto[:year_rel] = year_rel data_eto[:animal] = get_animal_eto(year_rel) data_eto[:element] = get_element_eto(year_rel) data_eto end
get_data_nengo(year_seireki)
click to toggle source
# File lib/nengo.rb, line 53 def get_data_nengo(year_seireki) data_nengo = @jidai_data.select { |jidai| jidai["begin_yr"] <= year_seireki && jidai["end_yr"] >= year_seireki }.first data_nengo["year_rel"] = year_seireki - data_nengo["begin_yr"] + 1 data_nengo end
get_element_eto(year_rel)
click to toggle source
# File lib/nengo.rb, line 85 def get_element_eto(year_rel) year_element = year_rel == 12 ? year_rel : year_rel % 12 element_list_eto = JSON.parse(File.read(ELEMENT_LIST_ETO_PATH)) element_list_eto.select { |hash| hash["id"] == year_element }.first end
get_koki(year_seireki)
click to toggle source
# File lib/nengo.rb, line 95 def get_koki(year_seireki) year_seireki + 660 end
get_nenrei(year_seireki)
click to toggle source
# File lib/nengo.rb, line 91 def get_nenrei(year_seireki) current_year_seireki - year_seireki end
get_year_eto(year_seireki)
click to toggle source
# File lib/nengo.rb, line 68 def get_year_eto(year_seireki) if year_seireki >= 4 (year_seireki - 3) % 60 elsif year_seireki < 0 60 - ((year_seireki + 2) % 60) else eto_first_three(year_seireki) end end
nengo_to_seireki(data_nengo)
click to toggle source
# File lib/nengo.rb, line 99 def nengo_to_seireki(data_nengo) current_jidai = @jidai_data.select { |jidai_hash| jidai_hash["name"] == data_nengo[:jidai] }.first current_jidai["begin_yr"].to_i + data_nengo[:year_rel] - 1 end
set_by_koki(koki)
click to toggle source
# File lib/nengo.rb, line 47 def set_by_koki(koki) @year_seireki = koki - 660 set_by_seireki(@year_seireki) true end
set_by_nengo(nengo_data)
click to toggle source
# File lib/nengo.rb, line 35 def set_by_nengo(nengo_data) @year_seireki = nengo_to_seireki(nengo_data) set_by_seireki(@year_seireki) true end
set_by_nenrei(nenrei)
click to toggle source
# File lib/nengo.rb, line 41 def set_by_nenrei(nenrei) @year_seireki = current_year_seireki - nenrei set_by_seireki(@year_seireki) true end
set_by_seireki(year_seireki)
click to toggle source
# File lib/nengo.rb, line 22 def set_by_seireki(year_seireki) @year_seireki = year_seireki @data_nengo = get_data_nengo(@year_seireki) @nenrei = get_nenrei(@year_seireki) @data_eto = get_data_eto(@year_seireki) @year_koki = get_koki(@year_seireki) true end
Private Instance Methods
load_jidai_data()
click to toggle source
# File lib/nengo.rb, line 118 def load_jidai_data jidai_data_file = File.read(JIDAI_DATA_PATH) JSON.parse(jidai_data_file) end