module ActivePeriod::Collection

Attributes

klass[R]

@!attribute [r] klass

@return [ActivePeriod::StandardPeriod] Any kind of ActivePeriod::StandardPeriod object
period[R]

@!attribute [r] period

@return [ActivePeriod::FreePeriod] Any kind of ActivePeriod::FreePeriod object

Public Class Methods

new(klass, period) click to toggle source
# File lib/active_period/collection.rb, line 13
def self.new(klass, period)
  if period.is_a? ActivePeriod::StandardPeriod
    ActivePeriod::Collection::StandardPeriod.new(klass, period)
  else
    ActivePeriod::Collection::FreePeriod.new(klass, period)
  end
end
new(klass, period) click to toggle source
# File lib/active_period/collection.rb, line 21
def initialize(klass, period)
  raise I18n.t(:param_period_must_be_a_period, scope: %i[active_period collection]) unless period.class.ancestors.include?(ActivePeriod::Period)

  @klass  = klass
  @period = period
end

Public Instance Methods

each(&block) click to toggle source
# File lib/active_period/collection.rb, line 47
def each(&block)
  block_given? ? enumerator.each(&block) : enumerator
end
find_nth(limit) click to toggle source
# File lib/active_period/collection.rb, line 40
def find_nth(limit)
  each.with_index do |element, index|
    return element if index == limit
  end
  return nil
end
fourth() click to toggle source
# File lib/active_period/collection.rb, line 36
def fourth
  find_nth(3)
end
last() click to toggle source
# File lib/active_period/collection.rb, line 55
def last
  reverse_each.first
end
reverse_each(&block) click to toggle source
# File lib/active_period/collection.rb, line 51
def reverse_each(&block)
  block_given? ? reverse_enumerator.each(&block) : reverse_enumerator
end
second() click to toggle source
# File lib/active_period/collection.rb, line 28
def second
  find_nth(1)
end
third() click to toggle source
# File lib/active_period/collection.rb, line 32
def third
  find_nth(2)
end