timing 0.0.2 → 0.0.3

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.
@@ -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