Module: Timezone::Parser::Rule
- Defined in:
- lib/timezone/parser/rule/on_rules.rb,
lib/timezone/parser/rule.rb,
lib/timezone/parser/rule/on.rb,
lib/timezone/parser/rule/entry.rb
Overview
A simple DSL for definining rules to parse the “ON” field in TZData rules.
Defined Under Namespace
Constant Summary collapse
- RULE =
Format: Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Example: Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S
/Rule\s+([\w-]+?)\s+(\d+?)\s+([^\s]+?)\s+([^\s]+?)\s+(\s*\w+?)\s+([\d\w\=\>\<]+?)\s+([\d:us]+?)\s+([\d:]+?)\s+([\w-]+)/
- END_YEAR =
The actual value for the “to” field when set to “max”.
2050
- @@rules =
Rules are stored in a hash of arrays that are referenced by rule name.
Hash.new{ |h, k| h[k] = [] }
Class Method Summary collapse
Class Method Details
.generate(line) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/timezone/parser/rule.rb', line 29 def generate(line) name, from, to, *values = *line.match(RULE)[1..-1] years(from, to).each do |year| @@rules[name] << Entry.new(name, year, *values) end end |
.on(*args) ⇒ Object
5 |
# File 'lib/timezone/parser/rule/on.rb', line 5 def self.on(*args) ; On.new(*args) ; end |
.rules ⇒ Object
26 |
# File 'lib/timezone/parser/rule.rb', line 26 def self.rules ; @@rules ; end |