timing 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/timing/helpers.rb +58 -4
- data/lib/timing/natural_time_language.rb +2848 -0
- data/lib/timing/natural_time_language.treetop +227 -0
- data/lib/timing/natural_time_language_interpreters.rb +326 -0
- data/lib/timing/time_in_zone.rb +30 -2
- data/lib/timing/version.rb +1 -1
- data/lib/timing.rb +4 -0
- data/timing.gemspec +2 -0
- metadata +19 -2
data/lib/timing/time_in_zone.rb
CHANGED
@@ -5,8 +5,8 @@ module Timing
|
|
5
5
|
|
6
6
|
REGEXP = /[+-]\d\d:?\d\d/
|
7
7
|
|
8
|
-
def_delegators :time, :to_i, :to_f, :<, :<=, :==, :>, :>=, :between?, :eql?, :hash
|
9
|
-
def_delegators :time_with_offset, :year, :month, :day, :hour, :min, :sec
|
8
|
+
def_delegators :time, :to_i, :to_f, :to_date, :to_datetime, :<, :<=, :==, :>, :>=, :between?, :eql?, :hash
|
9
|
+
def_delegators :time_with_offset, :year, :month, :day, :hour, :min, :sec, :wday, :yday
|
10
10
|
|
11
11
|
attr_reader :zone_offset
|
12
12
|
|
@@ -58,6 +58,34 @@ module Timing
|
|
58
58
|
time_with_offset.strftime format.gsub('%Z', '').gsub('%z', zone_offset.to_s)
|
59
59
|
end
|
60
60
|
|
61
|
+
%w(hour day week month year).each do |interval|
|
62
|
+
beginning_method_name = "beginning_of_#{interval}"
|
63
|
+
define_method beginning_method_name do
|
64
|
+
Timing.send beginning_method_name, self
|
65
|
+
end
|
66
|
+
|
67
|
+
end_method_name = "end_of_#{interval}"
|
68
|
+
define_method end_method_name do
|
69
|
+
Timing.send end_method_name, self
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def months_ago(count)
|
74
|
+
Timing.months_ago self, count
|
75
|
+
end
|
76
|
+
|
77
|
+
def months_after(count)
|
78
|
+
Timing.months_after self, count
|
79
|
+
end
|
80
|
+
|
81
|
+
def years_ago(count)
|
82
|
+
Timing.years_ago self, count
|
83
|
+
end
|
84
|
+
|
85
|
+
def years_after(count)
|
86
|
+
Timing.years_after self, count
|
87
|
+
end
|
88
|
+
|
61
89
|
def self.now(zone_offset=nil)
|
62
90
|
new Time.now, zone_offset
|
63
91
|
end
|
data/lib/timing/version.rb
CHANGED
data/lib/timing.rb
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
require 'time'
|
2
|
+
require 'date'
|
2
3
|
require 'delegate'
|
3
4
|
require 'forwardable'
|
5
|
+
require 'treetop'
|
4
6
|
|
5
7
|
require 'timing/version'
|
6
8
|
require 'timing/helpers'
|
7
9
|
require 'timing/interval'
|
8
10
|
require 'timing/zone_offset'
|
9
11
|
require 'timing/time_in_zone'
|
12
|
+
require 'timing/natural_time_language'
|
13
|
+
require 'timing/natural_time_language_interpreters'
|
10
14
|
|
11
15
|
|
12
16
|
module Timing
|
data/timing.gemspec
CHANGED
@@ -19,6 +19,8 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
+
spec.add_dependency 'treetop'
|
23
|
+
|
22
24
|
spec.add_development_dependency 'bundler', '~> 1.6'
|
23
25
|
spec.add_development_dependency 'rake'
|
24
26
|
spec.add_development_dependency 'minitest', '~> 4.7'
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: timing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gabriel Naiman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: treetop
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -113,6 +127,9 @@ files:
|
|
113
127
|
- lib/timing.rb
|
114
128
|
- lib/timing/helpers.rb
|
115
129
|
- lib/timing/interval.rb
|
130
|
+
- lib/timing/natural_time_language.rb
|
131
|
+
- lib/timing/natural_time_language.treetop
|
132
|
+
- lib/timing/natural_time_language_interpreters.rb
|
116
133
|
- lib/timing/time_in_zone.rb
|
117
134
|
- lib/timing/version.rb
|
118
135
|
- lib/timing/zone_offset.rb
|