module ActsAsSpan::SpanKlass::Status
Public Instance Methods
current(query_date = Date.current)
click to toggle source
# File lib/acts_as_span/span_klass/status.rb, line 9 def current(query_date = Date.current) klass.where( current_condition(query_date: query_date, table: arel_table) ) end
current_condition(query_date:, table:)
click to toggle source
returns an Arel node usable within an ActiveRecord `where` clause
# File lib/acts_as_span/span_klass/status.rb, line 48 def current_condition(query_date:, table:) start_col = arel_table[start_field] end_col = arel_table[end_field] start_condition = start_col.lteq(query_date).or(start_col.eq(nil)) end_condition = end_col.eq(nil).or(end_col.gteq(query_date)) start_condition.and(end_condition) end
current_or_future_on(query_date = Date.current)
click to toggle source
# File lib/acts_as_span/span_klass/status.rb, line 32 def current_or_future_on(query_date = Date.current) klass.where( arel_table[start_field].lteq(query_date). and( arel_table[end_field].eq(nil). or(arel_table[end_field].gteq(query_date)) ). or(arel_table[start_field].gt(query_date)) ) end
expired(query_date = Date.current)
click to toggle source
# File lib/acts_as_span/span_klass/status.rb, line 23 def expired(query_date = Date.current) klass.where(arel_table[end_field].lt(query_date)) end
future(query_date = Date.current)
click to toggle source
# File lib/acts_as_span/span_klass/status.rb, line 17 def future(query_date = Date.current) klass.where(arel_table[start_field].gt(query_date)) end