Class: DummyVariables::Calendar
- Inherits:
-
Object
- Object
- DummyVariables::Calendar
- Defined in:
- lib/dummy_variables/calendar.rb
Instance Attribute Summary collapse
-
#dates ⇒ Object
readonly
Returns the value of attribute dates.
Instance Method Summary collapse
-
#initialize(start_date, end_date, date_format = "%Y-%m-%d", config_data: {}, config_file: "") ⇒ Calendar
constructor
A new instance of Calendar.
- #to_csv_str(columns = nil, encoding: "Shift_JIS", options: {}) ⇒ Object
Constructor Details
#initialize(start_date, end_date, date_format = "%Y-%m-%d", config_data: {}, config_file: "") ⇒ Calendar
Returns a new instance of Calendar.
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/dummy_variables/calendar.rb', line 12 def initialize(start_date, end_date, date_format="%Y-%m-%d", config_data: {}, config_file: "") custom_dates = config_file.to_s.empty? ? {} : load_config_file(config_file) custom_dates.deep_merge! config_data if config_data.is_a?(Hash) @dates = (Date.parse(start_date)..Date.parse(end_date)).map do |date| vars = {} custom_dates.each do |k, v| next unless v.key? "dates" vars[k] = v["dates"].map { |d| d.is_a?(Date) ? d : Date.parse(d) }.include?(date) ? 1 : 0 end DummyVariables::DataDate.new(date.strftime(date_format), vars) end end |
Instance Attribute Details
#dates ⇒ Object (readonly)
Returns the value of attribute dates.
10 11 12 |
# File 'lib/dummy_variables/calendar.rb', line 10 def dates @dates end |
Instance Method Details
#to_csv_str(columns = nil, encoding: "Shift_JIS", options: {}) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/dummy_variables/calendar.rb', line 25 def to_csv_str(columns=nil, encoding: "Shift_JIS", options: {}) [:headers] = @dates.size == 0 ? [] : @dates[0].to_hash(columns).keys [:write_headers] = true unless .key?(:write_headers) CSV.generate() { |csv| @dates.each { |data_date| csv << data_date.to_hash(columns).values } }.encode(encoding, invalid: :replace, undef: :replace) end |