Module: DateInterval
- Defined in:
- lib/date_interval.rb,
lib/date_interval/date.rb,
lib/date_interval/filter.rb,
lib/date_interval/parser.rb,
lib/date_interval/version.rb,
lib/date_interval/filter/date.rb,
lib/date_interval/filter/none.rb,
lib/date_interval/transformer.rb,
lib/date_interval/filter/weekday.rb,
lib/date_interval/filter/weekend.rb,
lib/date_interval/filter/holidays.rb,
lib/date_interval/filter/operator.rb,
lib/date_interval/filter/weekdays.rb
Defined Under Namespace
Modules: Filter
Classes: Date, Parser, Transformer
Constant Summary
collapse
- InvalidRuleError =
Class.new(StandardError)
- VERSION =
"0.0.3"
Class Method Summary
collapse
Class Method Details
.parse(expression) ⇒ Object
21
22
23
24
25
26
27
28
29
|
# File 'lib/date_interval.rb', line 21
def self.parse(expression)
tree = parser.parse(expression)
ast = transformer.apply(tree)
Filter.filter(
ast[:intervals].flatten.uniq,
ast[:filters].kind_of?(Array) ? ast[:filters] : []
)
end
|
.valid?(expression) ⇒ Boolean
31
32
33
34
35
36
|
# File 'lib/date_interval.rb', line 31
def self.valid?(expression)
parser.parse(expression)
return true
rescue Parslet::ParseFailed
return false
end
|