timing 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Timing
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
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.2
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-19 00:00:00.000000000 Z
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