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

Returns:

  • (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