medjool 0.5.3 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,7 @@ class Medjool::Parser
14
14
 
15
15
  def parse_date_range(text)
16
16
  if bits = Medjool::DATE_RANGE_MATCHER.match(text.strip)
17
- if bits[15]
17
+ if bits[16]
18
18
  # October
19
19
  if month_start = self.parse(text.strip, update_now = false)
20
20
  month_end = month_start.end_of_month
@@ -1,6 +1,8 @@
1
+ # encoding: utf-8
2
+
1
3
  module Medjool
2
- DAYNAME_MATCHER = /(\s*Mon(day)?,?\s*|\s*Tue(s(day)?)?,?\s*|\s*Wed(nesday)?,?\s*|\s*Thu(r(s(day)?)?)?,?\s*|\s*Fri(day)?,?\s*|\s*Sat(urday)?,?\s*|\s*Sun(day)?,?\s*)/
3
- MONTH_NAME_MATCHER = /(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|June?|July?|Aug(ust)?|Sept(ember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)/
4
+ DAYNAME_MATCHER = /(\s*Mon(day)?,?\s*|\s*Tue(s(day)?)?,?\s*|\s*Wed(nesday)?,?\s*|\s*Thu(r(s(day)?)?)?,?\s*|\s*Fri(day)?,?\s*|\s*Sat(urday)?,?\s*|\s*Sun(day)?,?\s*)([^a-zA-Z]|$)/
5
+ MONTH_NAME_MATCHER = /(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|June?|July?|Aug(ust)?|Sept(ember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)([^a-zA-Z]|$)/
4
6
  MONTH_MATCHER = /\s*#{MONTH_NAME_MATCHER},?\s*/
5
7
  YYYY_MM_DD_MATCHER = /(\s*[0-9]{4}-[0-9]{2}-[0-9]{2}\s*)/
6
8
  DM_DM_YYYY_MATCHER = /(\s*[0-9]{2}[-\/][0-9]{2}[-\/][0-9]{2,4}\s*)/
@@ -11,5 +13,5 @@ module Medjool
11
13
  TEXT_DATE_MATCHER = /(#{DAYNAME_MATCHER}|#{ORDINAL_MATCHER}|#{YEAR_MATCHER}|#{MONTH_MATCHER})/
12
14
  DATE_MATCHER = /^[^a-zA-Z0-9]*(#{TEXT_DATE_MATCHER}+|#{DM_DM_YYYY_MATCHER}|#{YYYY_MM_DD_MATCHER})/
13
15
 
14
- DATE_RANGE_MATCHER = /^((([0-9]+) ?- ?([0-9]+) #{MONTH_NAME_MATCHER})|#{MONTH_NAME_MATCHER})$/
16
+ DATE_RANGE_MATCHER = /^((([0-9]+) ?[-–] ?([0-9]+) #{MONTH_NAME_MATCHER})|#{MONTH_NAME_MATCHER})$/
15
17
  end
data/lib/medjool.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Medjool
2
- VERSION = '0.5.3'
2
+ VERSION = '0.5.4'
3
3
 
4
4
  require 'medjool/parser'
5
5
  require 'medjool/date_range'
data/test/test_medjool.rb CHANGED
@@ -14,12 +14,17 @@ class TestMedjool < TestCase
14
14
  end
15
15
 
16
16
  def test_parse_without_context
17
- @variations = ["Thu", "*Monday", "1st July", "2nd July 2010", "1 July 2009", "Monday 2nd July 2009", "Monday 2nd", "Monday 2", "Monday 2 July"]
17
+ @variations = ["*Monday", "1st July", "2nd July 2010", "1 July 2009", "Monday 2nd July 2009", "Monday 2nd", "Monday 2", "Monday 2 July",
18
+ "Tue", "Tues", "Tuesday", "Wed", "Wednesday", "Thu", "Thur", "Thurs", "Thursday", "Fri", "Friday-"]
18
19
  @variations.each do |t|
19
20
  assert_equal Date.parse(t), Medjool.parse(t), "Error parsing '#{t}'"
20
21
  end
21
22
  end
22
23
 
24
+ def test_month_prefixes
25
+ ["Monolith", "Octavia", "Augustus"].map { |name| assert Medjool.parse(name).nil?, "Treated name '#{name}' as date" }
26
+ end
27
+
23
28
  def test_parse_with_context
24
29
  assert_equal "2013-09-02".to_date, Medjool.parse("Monday", { :now => 1.week.from_now })
25
30
 
@@ -60,6 +65,7 @@ class TestMedjool < TestCase
60
65
  parser = Medjool::Parser.new
61
66
  assert parser.is_date_range?("October")
62
67
  assert parser.is_date_range?("12-15 Jan")
68
+ assert parser.is_date_range?("12–15 Jan")
63
69
  assert !parser.is_date_range?("October 15")
64
70
  assert !parser.is_date_range?("09/12/2012")
65
71
  assert !parser.is_date_range?("I am working until next October")
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: medjool
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 3
10
- version: 0.5.3
9
+ - 4
10
+ version: 0.5.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andy Geers
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-11-18 00:00:00 Z
18
+ date: 2013-11-19 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: activesupport