dateless_time 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 6ac149024e32610ff56ae354bfad143ad37639d5
4
- data.tar.gz: 941a7c524b054ecbd995c48c8b5f44a82c5da92a
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZjQ4NTk5MGE2ZWVmMWRmNGU1NjUxZDk4ODRhMmRmYzViZjFhMmEwZA==
5
+ data.tar.gz: !binary |-
6
+ OGQyMDYzMzMxNDQxNDllNmIwNzk3ZjdkMzNmZjJlZjU2YmU4NDI5MQ==
5
7
  SHA512:
6
- metadata.gz: 4a044edb3457d468247a6d8bf0919ebc71d3ef803b7a08344d7368262c37d7421c954fa0087e906537033108db0fb72038a5c034a65f8b18c131cd03c1e4bdf9
7
- data.tar.gz: 56fc6415511cc95bef2d152e04d3f1f337a5d50a5af6551f076bda2fa27f1ae6750549c240be28932ae22e19d04b00b4544b7f2cfc2acdeaf599f7625ed4f471
8
+ metadata.gz: !binary |-
9
+ MmNhYWJjYTgyNTFjNDU0ODY1YTUzOWY0OTAwYTI3M2U5ZmJhMDc0YTQzNTYx
10
+ ZDM3Mzc1ZGIzYzhhN2E3NDBkYzVkMzdhZGYyMGFjMTE2YWMxNDQwNDliNGE1
11
+ MWRjZDlkYjA2ZmU3NGUwZmI1NTBiZjRiZDM1MTU4NmZhOWU0MDg=
12
+ data.tar.gz: !binary |-
13
+ ZTk3YTY5NWQ0ZmViYWQ1NDdjNTVhYzYyMDkwM2VkZjI2MWJmNjgxZTEwNDAx
14
+ MDE3MDJiMWJlZTMzNGQzNjQwYTc1Mjc1M2UxODlkNzJhYzJkMDYxMDkyNzJl
15
+ NTRhN2MwNmJkMWM1MjlhMjFiNmViM2Y5OTQ1MDI0NjJkOTkwOWI=
data/README.md CHANGED
@@ -75,10 +75,15 @@ require 'dateless_time'
75
75
  time = DatelessTime.new "13:37:42"
76
76
 
77
77
  time.hours
78
+ tome.hour
78
79
  #=> 13
80
+
79
81
  time.minutes
82
+ time.min
80
83
  #=> 37
84
+
81
85
  time.seconds
86
+ time.sec
82
87
  #=> 42
83
88
 
84
89
  time.seconds_since_midnight
@@ -90,10 +95,14 @@ time.to_i
90
95
  time.to_time
91
96
  # => 2014-04-01 13:37:42 +0100
92
97
 
93
- # but you can supply a base time object instead
98
+ # but you can supply a base Time object instead
94
99
  time.to_time(Time.new(1985, 10, 25, 0, 0, 0, "-08:00"))
95
100
  # => 1985-10-25 13:37:42 -0800
96
101
 
102
+ # or a base Date
103
+ time.to_time(Date.new(1985, 10, 25))
104
+ # => 1985-10-25 13:37:42 +0100
105
+
97
106
  time.to_time.class
98
107
  # => Time
99
108
 
data/lib/dateless_time.rb CHANGED
@@ -19,7 +19,9 @@ class DatelessTime
19
19
 
20
20
 
21
21
  attr_reader :hours, :minutes, :seconds
22
-
22
+ alias hour hours
23
+ alias min minutes
24
+ alias sec seconds
23
25
 
24
26
  def self.now
25
27
  new
@@ -33,8 +35,9 @@ class DatelessTime
33
35
 
34
36
 
35
37
  def to_time(base = Time.now)
36
- @time_value = Time.new(base.year, base.month, base.day,
37
- @hours, @minutes, @seconds, base.utc_offset)
38
+ args = [base.year, base.month, base.day, @hours, @minutes, @seconds]
39
+ args << base.utc_offset if base.is_a?(Time)
40
+ @time_value = Time.new(*args)
38
41
  rescue
39
42
  nil
40
43
  end
@@ -83,13 +86,11 @@ private
83
86
 
84
87
  def conditional_init(source)
85
88
  case source
86
- when Time then init_with_time(source)
87
- when DateTime then init_with_datetime(source)
89
+ when Time, DateTime, DatelessTime then init_with_time(source)
88
90
  when String then init_with_string(source)
89
91
  when Fixnum then init_with_seconds(source)
90
92
  when Hash then init_with_hash(source)
91
93
  when Array then init_with_array(source)
92
- when DatelessTime then init_with_dateless_time(source)
93
94
  else raise DatelessTime::InitializationError, "DatelessTime objects cannot be initialized with instances of #{source.class}."
94
95
  end
95
96
  end
@@ -103,13 +104,6 @@ private
103
104
  end
104
105
 
105
106
 
106
- def init_with_datetime(datetime)
107
- @hours = datetime.hour
108
- @minutes = datetime.min
109
- @seconds = datetime.sec
110
- seconds_since_midnight
111
- end
112
-
113
107
 
114
108
  def init_with_string(string)
115
109
  validate_time_string string
@@ -144,11 +138,6 @@ private
144
138
  end
145
139
 
146
140
 
147
- def init_with_dateless_time(source)
148
- init_with_array([source.hours, source.minutes, source.seconds])
149
- end
150
-
151
-
152
141
 
153
142
  def calculate_seconds_since_midnight
154
143
  if @hours && @minutes && @seconds
@@ -1,3 +1,3 @@
1
1
  class DatelessTime
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/test/query_test.rb CHANGED
@@ -18,7 +18,7 @@ class QueryTest < Minitest::Test
18
18
  end
19
19
 
20
20
 
21
- def test_to_time_with_base
21
+ def test_to_time_with_time_base
22
22
  base = Time.new(1990, 11, 10, 12, 13, 14)
23
23
  @to_time = @dl_time.to_time(base)
24
24
 
@@ -27,6 +27,15 @@ class QueryTest < Minitest::Test
27
27
  end
28
28
 
29
29
 
30
+ def test_to_time_with_date_base
31
+ base = Date.new(1990, 11, 10)
32
+ @to_time = @dl_time.to_time(base)
33
+
34
+ assert_equal Time, @to_time.class
35
+ assert_equal Time.new(1990, 11, 10, 13, 37, 42), @to_time
36
+ end
37
+
38
+
30
39
  def test_to_time_with_different_bases_should_change
31
40
  @to_time = @dl_time.to_time
32
41
  now = Time.now
@@ -95,6 +104,25 @@ class QueryTest < Minitest::Test
95
104
  end
96
105
 
97
106
 
107
+ def test_alias_hour
108
+ assert @dl_time.respond_to?(:hour)
109
+ assert_equal 13, @dl_time.hour
110
+ end
111
+
112
+
113
+ def test_alias_min
114
+ assert @dl_time.respond_to?(:min)
115
+ assert_equal 37, @dl_time.min
116
+ end
117
+
118
+
119
+ def test_alias_sec
120
+ assert @dl_time.respond_to?(:sec)
121
+ assert_equal 42, @dl_time.sec
122
+ end
123
+
124
+
125
+
98
126
  def test_strftime
99
127
  assert_equal "13:37", @dl_time.strftime("%H:%M")
100
128
  assert_equal "13:37:42", @dl_time.strftime("%H:%M:%S")
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dateless_time
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tommaso Pavese
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-25 00:00:00.000000000 Z
11
+ date: 2014-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '10.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '5.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '5.3'
55
55
  description: A class to handle dateless time values. DatelessTime objects are a lightweight
@@ -59,7 +59,7 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - ".gitignore"
62
+ - .gitignore
63
63
  - Gemfile
64
64
  - LICENSE.txt
65
65
  - README.md
@@ -81,12 +81,12 @@ require_paths:
81
81
  - lib
82
82
  required_ruby_version: !ruby/object:Gem::Requirement
83
83
  requirements:
84
- - - ">="
84
+ - - ! '>='
85
85
  - !ruby/object:Gem::Version
86
86
  version: '0'
87
87
  required_rubygems_version: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - ">="
89
+ - - ! '>='
90
90
  - !ruby/object:Gem::Version
91
91
  version: '0'
92
92
  requirements: []
@@ -100,4 +100,3 @@ test_files:
100
100
  - test/creation_test.rb
101
101
  - test/query_test.rb
102
102
  - test/test_helper.rb
103
- has_rdoc: