Class: Feriados::Rules::Rule

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/feriados/rules.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ Rule

Returns a new instance of Rule.



25
26
27
# File 'lib/feriados/rules.rb', line 25

def initialize(data)
  @data = OpenStruct.new(data)
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



23
24
25
# File 'lib/feriados/rules.rb', line 23

def data
  @data
end

Instance Method Details

#day_of_month?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/feriados/rules.rb', line 37

def day_of_month?
  data.day && data.month && !fix_date? && !week_day?
end

#fix_date?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/feriados/rules.rb', line 33

def fix_date?
  data.day && data.month && data.year
end

#function?Boolean

Returns:

  • (Boolean)


41
42
43
44
45
46
# File 'lib/feriados/rules.rb', line 41

def function?
  functions = %i[easter holy_thursday holy_friday carnival_monday
                 carnival_tuesday]

  functions.map { |e| data.respond_to?(e) }.any?
end

#function_nameObject



52
53
54
# File 'lib/feriados/rules.rb', line 52

def function_name
  data.to_h.keys.first.to_s.split('_').collect(&:capitalize).join
end

#nameObject



48
49
50
# File 'lib/feriados/rules.rb', line 48

def name
  data[:name] || data.to_h.values.first
end

#week_day?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/feriados/rules.rb', line 29

def week_day?
  data.day && data.month && data.week
end