home_run 1.0.4 → 1.0.5
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.
- data/CHANGELOG +4 -0
- data/ext/date_ext/datetime.c +8 -1
- data/spec/datetime/constructor_spec.rb +13 -0
- metadata +27 -44
data/CHANGELOG
CHANGED
data/ext/date_ext/datetime.c
CHANGED
@@ -743,6 +743,9 @@ static VALUE rhrdt_s_jd(int argc, VALUE *argv, VALUE klass) {
|
|
743
743
|
minute = NUM2LONG(argv[2]);
|
744
744
|
case 2:
|
745
745
|
hour = NUM2LONG(argv[1]);
|
746
|
+
if (TYPE(argv[0]) == T_FLOAT) {
|
747
|
+
rb_raise(rb_eArgError, "can't use float for first argument if providing multiple arguments");
|
748
|
+
}
|
746
749
|
case 1:
|
747
750
|
dt->jd = NUM2LONG(argv[0]);
|
748
751
|
break;
|
@@ -754,7 +757,11 @@ static VALUE rhrdt_s_jd(int argc, VALUE *argv, VALUE klass) {
|
|
754
757
|
RHR_CHECK_JD(dt)
|
755
758
|
dt->flags = RHR_HAVE_JD;
|
756
759
|
rhrdt__set_time(dt, hour, minute, second, offset);
|
757
|
-
|
760
|
+
if (TYPE(argv[0]) == T_FLOAT) {
|
761
|
+
return rhrdt__add_days(rdt, NUM2DBL(argv[0]) - NUM2LONG(argv[0]));
|
762
|
+
} else {
|
763
|
+
return rdt;
|
764
|
+
}
|
758
765
|
}
|
759
766
|
|
760
767
|
/* call-seq:
|
@@ -72,6 +72,19 @@ describe "DateTime constructors" do
|
|
72
72
|
d.offset.should == 1/24.0
|
73
73
|
end
|
74
74
|
|
75
|
+
it ".jd handles a fractional date as first argument" do
|
76
|
+
d = DateTime.jd(2000.5)
|
77
|
+
d.jd.should == 2000
|
78
|
+
d.hour.should == 12
|
79
|
+
d.min.should == 0
|
80
|
+
d.sec.should == 0
|
81
|
+
d.offset.should == 0
|
82
|
+
end
|
83
|
+
|
84
|
+
it ".jd should raise an error if given a float as first argument and any additional arguments" do
|
85
|
+
proc{DateTime.jd(2000.5, 1)}.should raise_error(ArgumentError)
|
86
|
+
end
|
87
|
+
|
75
88
|
it ".jd should have defaults and an optional sg value" do
|
76
89
|
DateTime.jd.should == DateTime.jd(0, 0, 0, 0, 0)
|
77
90
|
DateTime.jd(0).should == DateTime.jd(0, 0, 0, 0, 0)
|
metadata
CHANGED
@@ -1,39 +1,34 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: home_run
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 4
|
10
|
-
version: 1.0.4
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.5
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Jeremy Evans
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
date: 2011-09-02 00:00:00 -07:00
|
19
|
-
default_executable:
|
12
|
+
date: 2012-02-21 00:00:00.000000000 Z
|
20
13
|
dependencies: []
|
14
|
+
description: ! 'home_run is an implementation of ruby''s Date/DateTime classes in
|
15
|
+
C,
|
21
16
|
|
22
|
-
description: |
|
23
|
-
home_run is an implementation of ruby's Date/DateTime classes in C,
|
24
17
|
with much better performance (20-200x) than the version in the
|
18
|
+
|
25
19
|
standard library, while being almost completely compatible.
|
26
20
|
|
21
|
+
'
|
27
22
|
email: code@jeremyevans.net
|
28
|
-
executables:
|
23
|
+
executables:
|
29
24
|
- home_run
|
30
|
-
extensions:
|
25
|
+
extensions:
|
31
26
|
- ext/date_ext/extconf.rb
|
32
|
-
extra_rdoc_files:
|
27
|
+
extra_rdoc_files:
|
33
28
|
- README.rdoc
|
34
29
|
- CHANGELOG
|
35
30
|
- LICENSE
|
36
|
-
files:
|
31
|
+
files:
|
37
32
|
- LICENSE
|
38
33
|
- CHANGELOG
|
39
34
|
- README.rdoc
|
@@ -120,47 +115,35 @@ files:
|
|
120
115
|
- bench/dt_garbage_bench.rb
|
121
116
|
- bench/cpu_bench_util.rb
|
122
117
|
- bench/parser_bench.rb
|
123
|
-
has_rdoc: true
|
124
118
|
homepage: http://github.com/jeremyevans/home_run
|
125
119
|
licenses: []
|
126
|
-
|
127
120
|
post_install_message:
|
128
|
-
rdoc_options:
|
121
|
+
rdoc_options:
|
129
122
|
- --quiet
|
130
123
|
- --line-numbers
|
131
124
|
- --inline-source
|
132
125
|
- --title
|
133
|
-
-
|
126
|
+
- ! 'home_run: Fast Date/DateTime classes for ruby'
|
134
127
|
- --main
|
135
128
|
- README.rdoc
|
136
|
-
require_paths:
|
129
|
+
require_paths:
|
137
130
|
- lib
|
138
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
131
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
139
132
|
none: false
|
140
|
-
requirements:
|
141
|
-
- -
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
hash: 59
|
144
|
-
segments:
|
145
|
-
- 1
|
146
|
-
- 8
|
147
|
-
- 6
|
133
|
+
requirements:
|
134
|
+
- - ! '>='
|
135
|
+
- !ruby/object:Gem::Version
|
148
136
|
version: 1.8.6
|
149
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
138
|
none: false
|
151
|
-
requirements:
|
152
|
-
- -
|
153
|
-
- !ruby/object:Gem::Version
|
154
|
-
|
155
|
-
segments:
|
156
|
-
- 0
|
157
|
-
version: "0"
|
139
|
+
requirements:
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
158
143
|
requirements: []
|
159
|
-
|
160
144
|
rubyforge_project:
|
161
|
-
rubygems_version: 1.
|
145
|
+
rubygems_version: 1.8.11
|
162
146
|
signing_key:
|
163
147
|
specification_version: 3
|
164
148
|
summary: Fast Date/DateTime classes for ruby
|
165
149
|
test_files: []
|
166
|
-
|