Class: Feriados::Rules::Rule
- Inherits:
-
Object
- Object
- Feriados::Rules::Rule
- Extended by:
- Forwardable
- Defined in:
- lib/feriados/rules.rb
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
Instance Method Summary collapse
- #day_of_month? ⇒ Boolean
- #fix_date? ⇒ Boolean
- #function? ⇒ Boolean
- #function_name ⇒ Object
-
#initialize(data) ⇒ Rule
constructor
A new instance of Rule.
- #name ⇒ Object
- #week_day? ⇒ Boolean
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
#data ⇒ Object (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
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
33 34 35 |
# File 'lib/feriados/rules.rb', line 33 def fix_date? data.day && data.month && data.year end |
#function? ⇒ 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_name ⇒ Object
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 |
#name ⇒ Object
48 49 50 |
# File 'lib/feriados/rules.rb', line 48 def name data[:name] || data.to_h.values.first end |
#week_day? ⇒ Boolean
29 30 31 |
# File 'lib/feriados/rules.rb', line 29 def week_day? data.day && data.month && data.week end |