Class: Chronic::Scalar
Direct Known Subclasses
ScalarDay, ScalarHour, ScalarMinute, ScalarMonth, ScalarSecond, ScalarSubsecond, ScalarYear
Constant Summary collapse
- DAY_PORTIONS =
%w( am pm morning afternoon evening night )
Instance Attribute Summary
Attributes inherited from Tag
Class Method Summary collapse
-
.scan(tokens, options) ⇒ Object
Scan an Array of Token objects and apply any necessary Scalar tags to each token.
Instance Method Summary collapse
Methods inherited from Tag
Constructor Details
This class inherits a constructor from Chronic::Tag
Class Method Details
.scan(tokens, options) ⇒ Object
Scan an Array of Token objects and apply any necessary Scalar tags to each token.
tokens - An Array of tokens to scan. options - The Hash of options specified in Chronic::parse.
Returns an Array of tokens.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/chronic/scalar.rb', line 12 def self.scan(tokens, ) tokens.each_index do |i| token = tokens[i] post_token = tokens[i + 1] if token.word =~ /^\d+$/ scalar = token.word.to_i token.tag(Scalar.new(scalar)) token.tag(ScalarSubsecond.new(scalar)) if Chronic::Time::could_be_subsecond?(scalar) token.tag(ScalarSecond.new(scalar)) if Chronic::Time::could_be_second?(scalar) token.tag(ScalarMinute.new(scalar)) if Chronic::Time::could_be_minute?(scalar) token.tag(ScalarHour.new(scalar)) if Chronic::Time::could_be_hour?(scalar) unless post_token and DAY_PORTIONS.include?(post_token.word) token.tag(ScalarDay.new(scalar)) if Chronic::Date::could_be_day?(scalar) token.tag(ScalarMonth.new(scalar)) if Chronic::Date::could_be_month?(scalar) if Chronic::Date::could_be_year?(scalar) year = Chronic::Date::make_year(scalar, [:ambiguous_year_future_bias]) token.tag(ScalarYear.new(year.to_i)) end end end end end |
Instance Method Details
#to_s ⇒ Object
35 36 37 |
# File 'lib/chronic/scalar.rb', line 35 def to_s 'scalar' end |