Module: Feriados::Rules
- Included in:
- Loader
- Defined in:
- lib/feriados/rules.rb,
lib/feriados/rules/easter.rb,
lib/feriados/rules/fix_date.rb,
lib/feriados/rules/function.rb,
lib/feriados/rules/rule_base.rb,
lib/feriados/rules/day_of_week.rb,
lib/feriados/rules/holy_friday.rb,
lib/feriados/rules/day_of_month.rb,
lib/feriados/rules/fix_week_day.rb,
lib/feriados/rules/holy_thursday.rb,
lib/feriados/rules/carnival_monday.rb,
lib/feriados/rules/carnival_tuesday.rb
Defined Under Namespace
Classes: CarnivalMonday, CarnivalTuesday, DayOfMonth, DayOfWeek, Easter, FixDate, FixWeekDay, Function, HolyFriday, HolyThursday, Rule, RuleBase
Class Method Summary collapse
Class Method Details
.create_with(data) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/feriados/rules.rb', line 57 def self.create_with(data) rule = Rule.new(data) return DayOfMonth.new(rule.day, rule.month, rule.name) if rule.day_of_month? return FixWeekDay.new(rule.week, rule.day, rule.month, rule.name) if rule.week_day? return FixDate.new(rule.year, rule.month, rule.day, rule.name) if rule.fix_date? raise ArgumentError, "Argument #{rule} is not a valid rule" unless rule.function? function_name = rule.function_name class_name = "Feriados::Rules::#{function_name}".split('::') klass = class_name.inject(Object) { |obj, const| obj.const_get(const) } klass.name = rule.name klass end |