Sha256: e0d7e14f4d4f76c2e70a9ee4897badbecfbb39e8cb267772034dcf5e5fd6fd25
Contents?: true
Size: 1.03 KB
Versions: 2
Compression:
Stored size: 1.03 KB
Contents
module ESA module ContextProviders class DateContextProvider < ESA::ContextProvider def self.provided_types ["ESA::Contexts::DateContext"] end def self.context_id(context, options = {}) [context.start_date, context.end_date] end def self.contained_ids(context, options = {}) dates = context.transactions.uniq.pluck("date(esa_transactions.time)").sort if options[:period].present? and options[:period] == :month dates.group_by{|d| [d.year, d.month]}.keys. map do |year,month| start_date = Date.new(year, month, 1) end_date = start_date.end_of_month [start_date, end_date] end else dates.zip dates end end def self.instantiate(parent, namespace, id, options = {}) start_date, end_date = id ESA::Contexts::DateContext.new(chart_id: parent.chart_id, parent_id: parent.id, namespace: namespace, start_date: start_date, end_date: end_date) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
event_sourced_accounting-0.2.2 | lib/esa/context_providers/date_context_provider.rb |
event_sourced_accounting-0.1.6 | lib/esa/context_providers/date_context_provider.rb |