month 1.0.0 → 1.1.0
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.
- checksums.yaml +4 -4
- data/README.md +17 -4
- data/lib/month.rb +6 -10
- data/month.gemspec +2 -1
- data/spec/month_spec.rb +10 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f998e2e63d6369b8d84bfbfa5702e905ea7a902
|
4
|
+
data.tar.gz: eb30605ca6b103a606a74fe833f191d24847c37d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8de438f976fd1e79aa70c61bc900d99658ba70abaf59e254b37e486bfcceb7b504376bf373a2a2679315a06ef694ab15f69e5168e2aa9a16ab98417c7e8288ed
|
7
|
+
data.tar.gz: dba1269a852a8d2a1974a931fd79f03d16dcb94ac9eb3d68b2d9e7ef54b6058b6b227f27c47af7b6a7311943f06e2e6cec993929fa83377517bab63360f18aa5
|
data/README.md
CHANGED
@@ -5,11 +5,16 @@ month
|
|
5
5
|
A little library for working with months.
|
6
6
|
|
7
7
|
|
8
|
+
Installation
|
9
|
+
------------
|
10
|
+
|
11
|
+
$ gem install month
|
12
|
+
|
13
|
+
|
8
14
|
Feature tour
|
9
15
|
------------
|
10
16
|
|
11
|
-
You can create a new Month object
|
12
|
-
as arguments to the constructor:
|
17
|
+
You can create a new Month object with a year and month number:
|
13
18
|
|
14
19
|
```ruby
|
15
20
|
Month.new(2014, 1) # January 2014
|
@@ -126,5 +131,13 @@ month = January 2014
|
|
126
131
|
date = January 15, 2014
|
127
132
|
```
|
128
133
|
|
129
|
-
It is not included by default
|
130
|
-
own modules/classes or globally within your application/script.
|
134
|
+
It is not included globally by default; you can either include it within
|
135
|
+
your own modules/classes or globally within your own application/script.
|
136
|
+
|
137
|
+
|
138
|
+
History
|
139
|
+
-------
|
140
|
+
|
141
|
+
This current implementation is an accidental rewrite of an older library/gem
|
142
|
+
with the same name/purpose ([fhwang / month](https://github.com/fhwang/month)).
|
143
|
+
Thanks to Francis for kindly allowing me to re-use the same gem name.
|
data/lib/month.rb
CHANGED
@@ -83,20 +83,16 @@ class Month
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def +(number)
|
86
|
-
a, b = (@number + number).divmod(12)
|
86
|
+
a, b = (@number - 1 + number).divmod(12)
|
87
87
|
|
88
|
-
self.class.new(@year + a, b)
|
88
|
+
self.class.new(@year + a, b + 1)
|
89
89
|
end
|
90
90
|
|
91
|
-
def -(
|
92
|
-
if
|
93
|
-
self
|
94
|
-
elsif @number < number
|
95
|
-
a, b = (@number - number).divmod(12)
|
96
|
-
|
97
|
-
self.class.new(@year + a, b)
|
91
|
+
def -(object)
|
92
|
+
if object.is_a?(Integer)
|
93
|
+
self + (-object)
|
98
94
|
else
|
99
|
-
|
95
|
+
(year * 12 + @number) - (object.year * 12 + object.number)
|
100
96
|
end
|
101
97
|
end
|
102
98
|
|
data/month.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'month'
|
3
|
-
s.version = '1.
|
3
|
+
s.version = '1.1.0'
|
4
4
|
s.platform = Gem::Platform::RUBY
|
5
5
|
s.authors = ['Tim Craft']
|
6
6
|
s.email = ['mail@timcraft.com']
|
@@ -8,6 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.description = 'A little library for working with months'
|
9
9
|
s.summary = 'See description'
|
10
10
|
s.files = Dir.glob('{lib,spec}/**/*') + %w(README.md month.gemspec)
|
11
|
+
s.required_ruby_version = '>= 1.9.3'
|
11
12
|
s.add_development_dependency('rake', '~> 10.0')
|
12
13
|
s.add_development_dependency('minitest', '~> 5.0')
|
13
14
|
s.require_path = 'lib'
|
data/spec/month_spec.rb
CHANGED
@@ -116,6 +116,8 @@ describe 'Month' do
|
|
116
116
|
(Month.new(2014, 1) + 1).must_equal(Month.new(2014, 2))
|
117
117
|
(Month.new(2014, 1) + 12).must_equal(Month.new(2015, 1))
|
118
118
|
(Month.new(2014, 1) + 18).must_equal(Month.new(2015, 7))
|
119
|
+
(Month.new(2013, 11) + 1).must_equal(Month.new(2013, 12))
|
120
|
+
(Month.new(2013, 11) + 2).must_equal(Month.new(2014, 1))
|
119
121
|
end
|
120
122
|
end
|
121
123
|
|
@@ -125,6 +127,14 @@ describe 'Month' do
|
|
125
127
|
(Month.new(2014, 1) - 1).must_equal(Month.new(2013, 12))
|
126
128
|
(Month.new(2014, 1) - 12).must_equal(Month.new(2013, 1))
|
127
129
|
(Month.new(2014, 1) - 18).must_equal(Month.new(2012, 7))
|
130
|
+
(Month.new(2013, 12) - 1).must_equal(Month.new(2013, 11))
|
131
|
+
(Month.new(2014, 1) - 2).must_equal(Month.new(2013, 11))
|
132
|
+
end
|
133
|
+
|
134
|
+
it 'returns the number of months between the given month and self' do
|
135
|
+
(Month.new(2014, 3) - Month.new(2014, 1)).must_equal(2)
|
136
|
+
(Month.new(2015, 1) - Month.new(2014, 1)).must_equal(12)
|
137
|
+
(Month.new(2077, 4) - Month.new(2070, 4)).must_equal(84)
|
128
138
|
end
|
129
139
|
end
|
130
140
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: month
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Craft
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -60,7 +60,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
60
60
|
requirements:
|
61
61
|
- - ">="
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
63
|
+
version: 1.9.3
|
64
64
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ">="
|