activerecord-time 0.0.1 → 0.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 +7 -0
- data/.gitignore +2 -0
- data/Rakefile +8 -1
- data/activerecord-time.gemspec +7 -5
- data/lib/activerecord-time/version.rb +1 -1
- data/lib/time_of_day.rb +7 -2
- data/test/database.yml +1 -1
- data/test/rails_time_test.rb +1 -36
- data/test/test_helper.rb +6 -8
- data/test/time_of_day_test.rb +23 -0
- metadata +44 -49
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9191c5f543363446595ac56995e20183695cc689
|
4
|
+
data.tar.gz: 2a9480f6e1ef46a9df53ecb51b1d09f7cb7531c3
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b8190c77ed345a716ca0f9426d1f3d6b57488c9c757a6e5d3ffa966f4cc41f6c9a56de71b36a2c5aa9f09d50bf9a2cb9c9a902a1d6c45d5981420382aa721299
|
7
|
+
data.tar.gz: 6fad7c2cc20029685ad15ff4fccfdb8e490fe6c63ec65a7223bd7aa4630a7b3948f6ecef0a0fc2514ebe12b104c50542119e985371765f9b14b32f59765993f0
|
data/Rakefile
CHANGED
data/activerecord-time.gemspec
CHANGED
@@ -4,16 +4,18 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'activerecord-time/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |gem|
|
7
|
-
gem.name =
|
7
|
+
gem.name = 'activerecord-time'
|
8
8
|
gem.version = Activerecord::Time::VERSION
|
9
|
-
gem.authors = [
|
10
|
-
gem.email =
|
9
|
+
gem.authors = ['Uwe Kubosch']
|
10
|
+
gem.email = %w(uwe@kubosch.no)
|
11
11
|
gem.description = %q{A handler for storing TimeOfDay objects in ActiveRecord objects as sql time values.}
|
12
12
|
gem.summary = %q{A handler for storing TimeOfDay objects in ActiveRecord objects as sql time values.}
|
13
|
-
gem.homepage =
|
13
|
+
gem.homepage = 'https://github.com/donv/activerecord-time'
|
14
14
|
|
15
15
|
gem.files = `git ls-files`.split($/)
|
16
16
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
-
gem.require_paths =
|
18
|
+
gem.require_paths = %w(lib)
|
19
|
+
|
20
|
+
gem.add_development_dependency 'activerecord-jdbcsqlite3-adapter'
|
19
21
|
end
|
data/lib/time_of_day.rb
CHANGED
@@ -38,13 +38,18 @@ class TimeOfDay
|
|
38
38
|
Time.local(date.year, date.month, date.day, hour, minute, second)
|
39
39
|
end
|
40
40
|
|
41
|
-
def
|
41
|
+
def +(seconds)
|
42
42
|
raise "Illegal argument: #{seconds.inspect}" unless seconds.is_a? Numeric
|
43
43
|
t = Time.local(0, 1, 1, hour, minute, second)
|
44
|
-
t
|
44
|
+
t += seconds
|
45
45
|
self.class.new(t.hour, t.min, t.sec)
|
46
46
|
end
|
47
47
|
|
48
|
+
def -(seconds)
|
49
|
+
raise "Illegal argument: #{seconds.inspect}" unless seconds.is_a? Numeric
|
50
|
+
self.+(-seconds)
|
51
|
+
end
|
52
|
+
|
48
53
|
def <=>(other)
|
49
54
|
[@hour, @minute, @second] <=> [other.hour, other.minute, other.second]
|
50
55
|
end
|
data/test/database.yml
CHANGED
data/test/rails_time_test.rb
CHANGED
@@ -4,7 +4,7 @@ class Thing < ActiveRecord::Base
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def thing
|
7
|
-
Thing.new(:name =>
|
7
|
+
Thing.new(:name => 'Thing One',:price_in_cents=> 125)
|
8
8
|
end
|
9
9
|
|
10
10
|
class RailsMoneyTest < Test::Unit::TestCase
|
@@ -84,39 +84,4 @@ class MoneyTest < Test::Unit::TestCase
|
|
84
84
|
assert Money.new(0) == Money.new(0)
|
85
85
|
end
|
86
86
|
|
87
|
-
def test_should_add_money
|
88
|
-
assert_equal Money.new(20.95), Money.new(10) + Money.new(10.95)
|
89
|
-
assert_equal Money.new(2000), Money.new(1000) + 1000
|
90
|
-
assert_equal Money.new(20.06), Money.new(10.00) + 10.056
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_should_subtract_money
|
94
|
-
assert_equal Money.new(500), Money.new(1000) - Money.new(500)
|
95
|
-
assert_equal Money.new(500), Money.new(1000) - 500
|
96
|
-
assert_equal Money.new(4.60), Money.new(10) - 5.40
|
97
|
-
end
|
98
|
-
|
99
|
-
def test_should_multiply_money
|
100
|
-
assert_equal Money.new(500), Money.new(100) * 5
|
101
|
-
assert_equal Money.new(9.99), Money.new(3.33) * 3
|
102
|
-
assert_equal Money.new(11.99), Money.new(3.33) * 3.6 # 1198.9
|
103
|
-
end
|
104
|
-
|
105
|
-
def test_should_divide_money_and_retur_array_of_monies
|
106
|
-
money_array = [Money.new(3.34), Money.new(3.33), Money.new(3.33)]
|
107
|
-
assert_equal money_array, Money.new(10.00) / 3
|
108
|
-
assert_equal [Money.new(2.00), Money.new(2.00)], Money.new(4.00) / 2
|
109
|
-
assert_raises(MoneyError) { Money.new(4.00) / 2.2 }
|
110
|
-
end
|
111
|
-
|
112
|
-
def test_should_implement_to_money
|
113
|
-
assert_equal Money.new(10), Money.new(10).to_money
|
114
|
-
assert_equal Money.new(100.00), 100.00.to_money
|
115
|
-
assert_equal Money.new(100.96), 100.956.to_money
|
116
|
-
end
|
117
|
-
|
118
|
-
def test_should_create_from_cents
|
119
|
-
assert_equal Money.new(1.50), Money.create_from_cents(150)
|
120
|
-
end
|
121
|
-
|
122
87
|
end
|
data/test/test_helper.rb
CHANGED
@@ -4,14 +4,12 @@ RAILS_ROOT = File.dirname(__FILE__)
|
|
4
4
|
require 'rubygems'
|
5
5
|
require 'test/unit'
|
6
6
|
require 'active_record'
|
7
|
-
require
|
7
|
+
require 'activerecord-time'
|
8
|
+
require 'logger'
|
9
|
+
require 'fileutils'
|
8
10
|
|
11
|
+
FileUtils.rm_rf File.expand_path(':memory:', File.dirname(__FILE__))
|
9
12
|
config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
|
10
|
-
ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) +
|
13
|
+
ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + '/debug.log')
|
11
14
|
ActiveRecord::Base.establish_connection(config[ENV['DB'] || 'sqlite3'])
|
12
|
-
|
13
|
-
load(File.dirname(__FILE__) + "/schema.rb") if File.exist?(File.dirname(__FILE__) + "/schema.rb")
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
load(File.dirname(__FILE__) + '/schema.rb') if File.exist?(File.dirname(__FILE__) + '/schema.rb')
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require File.expand_path('test_helper', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
class TimeOfDayTest < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@twelve_o_clock = TimeOfDay.parse '12:00:00'
|
6
|
+
end
|
7
|
+
|
8
|
+
def teardown
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_parse_full
|
12
|
+
assert_equal @twelve_o_clock, TimeOfDay.parse('12:00:00')
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_parse_hour_and_minute
|
16
|
+
assert_equal @twelve_o_clock, TimeOfDay.parse('12:00')
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_parse_hour_only
|
20
|
+
assert_equal @twelve_o_clock, TimeOfDay.parse('12')
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
metadata
CHANGED
@@ -1,33 +1,36 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-time
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 1
|
10
|
-
version: 0.0.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Uwe Kubosch
|
14
|
-
autorequire:
|
8
|
+
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
11
|
+
date: 2013-10-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activerecord-jdbcsqlite3-adapter
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
requirement: !ruby/object:Gem::Requirement
|
21
|
+
requirements:
|
22
|
+
- - '>='
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: '0'
|
25
|
+
prerelease: false
|
26
|
+
type: :development
|
21
27
|
description: A handler for storing TimeOfDay objects in ActiveRecord objects as sql time values.
|
22
|
-
email:
|
28
|
+
email:
|
23
29
|
- uwe@kubosch.no
|
24
30
|
executables: []
|
25
|
-
|
26
31
|
extensions: []
|
27
|
-
|
28
32
|
extra_rdoc_files: []
|
29
|
-
|
30
|
-
files:
|
33
|
+
files:
|
31
34
|
- .gitignore
|
32
35
|
- Gemfile
|
33
36
|
- LICENSE.txt
|
@@ -42,41 +45,33 @@ files:
|
|
42
45
|
- test/rails_time_test.rb
|
43
46
|
- test/schema.rb
|
44
47
|
- test/test_helper.rb
|
45
|
-
|
48
|
+
- test/time_of_day_test.rb
|
49
|
+
homepage: https://github.com/donv/activerecord-time
|
46
50
|
licenses: []
|
47
|
-
|
48
|
-
post_install_message:
|
51
|
+
metadata: {}
|
52
|
+
post_install_message:
|
49
53
|
rdoc_options: []
|
50
|
-
|
51
|
-
require_paths:
|
54
|
+
require_paths:
|
52
55
|
- lib
|
53
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
none: false
|
64
|
-
requirements:
|
65
|
-
- - ">="
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
hash: 3
|
68
|
-
segments:
|
69
|
-
- 0
|
70
|
-
version: "0"
|
56
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - '>='
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
63
|
+
- - '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
71
66
|
requirements: []
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
specification_version: 3
|
67
|
+
rubyforge_project:
|
68
|
+
rubygems_version: 2.1.9
|
69
|
+
signing_key:
|
70
|
+
specification_version: 4
|
77
71
|
summary: A handler for storing TimeOfDay objects in ActiveRecord objects as sql time values.
|
78
|
-
test_files:
|
72
|
+
test_files:
|
79
73
|
- test/database.yml
|
80
74
|
- test/rails_time_test.rb
|
81
75
|
- test/schema.rb
|
82
76
|
- test/test_helper.rb
|
77
|
+
- test/time_of_day_test.rb
|