veritas-sql-generator 0.0.6 → 0.0.7
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/.travis.yml +10 -4
- data/Gemfile +2 -2
- data/lib/veritas/sql/generator/core_ext/date_time.rb +1 -0
- data/lib/veritas/sql/generator/version.rb +1 -1
- data/spec/rcov.opts +1 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/unit/date_time/iso8601_spec.rb +112 -0
- data/spec/unit/veritas/sql/generator/literal/visit_date_time_spec.rb +10 -16
- data/spec/unit/veritas/sql/generator/literal/visit_time_spec.rb +2 -2
- data/tasks/metrics/ci.rake +2 -2
- data/tasks/metrics/heckle.rake +11 -9
- data/tasks/spec.rake +23 -14
- data/veritas-sql-generator.gemspec +7 -7
- metadata +27 -27
- data/spec/unit/date_time/iso_8601_spec.rb +0 -115
data/.travis.yml
CHANGED
@@ -1,11 +1,17 @@
|
|
1
|
+
language: ruby
|
1
2
|
bundler_args: --without guard metrics
|
2
3
|
script: "bundle exec rake spec"
|
3
4
|
rvm:
|
4
5
|
- 1.8.7
|
5
6
|
- 1.9.2
|
6
7
|
- 1.9.3
|
7
|
-
-
|
8
|
+
- jruby-18mode
|
9
|
+
- jruby-19mode
|
10
|
+
- rbx-18mode
|
11
|
+
- rbx-19mode
|
8
12
|
- ree
|
9
|
-
-
|
10
|
-
-
|
11
|
-
|
13
|
+
- ruby-head
|
14
|
+
- jruby-head
|
15
|
+
notifications:
|
16
|
+
email:
|
17
|
+
- dan.kubb@gmail.com
|
data/Gemfile
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
-
source
|
3
|
+
source 'https://rubygems.org'
|
4
4
|
|
5
|
-
gem 'veritas', '~> 0.0.
|
5
|
+
gem 'veritas', '~> 0.0.7', :git => 'git://github.com/dkubb/veritas.git'
|
6
6
|
|
7
7
|
group :development do
|
8
8
|
gem 'backports', '~> 2.3.0'
|
@@ -3,6 +3,7 @@
|
|
3
3
|
# Extend DateTime with methods available in ruby 1.9
|
4
4
|
class DateTime
|
5
5
|
|
6
|
+
# TODO: remove the rbx guard when fractional seconds are handled properly in 1.9 mode
|
6
7
|
SEC_FRACTION_MULTIPLIER = RUBY_VERSION < '1.9' ? 60 * 60 * 24 : 1
|
7
8
|
|
8
9
|
# Return the DateTime in ISO8601 date-time format
|
data/spec/rcov.opts
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'backports'
|
5
|
-
require 'backports/basic_object'
|
5
|
+
require 'backports/basic_object' unless RUBY_VERSION >= '1.9.2' && (RUBY_PLATFORM.include?('java') || RUBY_ENGINE == 'rbx')
|
6
6
|
require 'veritas-sql-generator'
|
7
7
|
require 'spec'
|
8
8
|
require 'spec/autorun'
|
@@ -0,0 +1,112 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe DateTime, '#iso8601' do
|
6
|
+
|
7
|
+
# ruby 1.9.3 has problems with fractional nanoseconds
|
8
|
+
def self.it_supports_nanoseconds(message = 'returns the expected date-time', &block)
|
9
|
+
if RUBY_VERSION >= '1.9.3'
|
10
|
+
it(message) { pending('Fix rounding error in 1.9.3', &block) }
|
11
|
+
else
|
12
|
+
it(message, &block)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
let(:object) { described_class.new(2010, 12, 31, 23, 59, 59 + nsec_in_seconds) }
|
17
|
+
let(:nsec_in_seconds) { 1 - Rational(1, 10**9) }
|
18
|
+
|
19
|
+
context 'with no arguments' do
|
20
|
+
subject { object.iso8601 }
|
21
|
+
|
22
|
+
context 'when the datetime is frozen' do
|
23
|
+
before do
|
24
|
+
object.freeze
|
25
|
+
end
|
26
|
+
|
27
|
+
it { should respond_to(:to_s) }
|
28
|
+
|
29
|
+
it_supports_nanoseconds do
|
30
|
+
should == '2010-12-31T23:59:59+00:00'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'when the datetime is not frozen' do
|
35
|
+
it { should respond_to(:to_s) }
|
36
|
+
|
37
|
+
it { should == '2010-12-31T23:59:59+00:00' }
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context 'with a time scale of 0' do
|
42
|
+
subject { object.iso8601(time_scale) }
|
43
|
+
|
44
|
+
let(:time_scale) { 0 }
|
45
|
+
|
46
|
+
context 'when the datetime is frozen' do
|
47
|
+
before do
|
48
|
+
object.freeze
|
49
|
+
end
|
50
|
+
|
51
|
+
it { should respond_to(:to_s) }
|
52
|
+
|
53
|
+
it_supports_nanoseconds do
|
54
|
+
should == '2010-12-31T23:59:59+00:00'
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
context 'when the datetime is not frozen' do
|
59
|
+
it { should respond_to(:to_s) }
|
60
|
+
|
61
|
+
it { should == '2010-12-31T23:59:59+00:00' }
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context 'with a time scale of 1' do
|
66
|
+
subject { object.iso8601(time_scale) }
|
67
|
+
|
68
|
+
let(:time_scale) { 1 }
|
69
|
+
|
70
|
+
context 'when the datetime is frozen' do
|
71
|
+
before do
|
72
|
+
object.freeze
|
73
|
+
end
|
74
|
+
|
75
|
+
it { should respond_to(:to_s) }
|
76
|
+
|
77
|
+
it_supports_nanoseconds do
|
78
|
+
should == '2010-12-31T23:59:59.9+00:00'
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
context 'when the datetime is not frozen' do
|
83
|
+
it { should respond_to(:to_s) }
|
84
|
+
|
85
|
+
it { should == '2010-12-31T23:59:59.9+00:00' }
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
context 'with a time scale of 9' do
|
90
|
+
subject { object.iso8601(time_scale) }
|
91
|
+
|
92
|
+
let(:time_scale) { 9 }
|
93
|
+
|
94
|
+
context 'when the datetime is frozen' do
|
95
|
+
before do
|
96
|
+
object.freeze
|
97
|
+
end
|
98
|
+
|
99
|
+
it { should respond_to(:to_s) }
|
100
|
+
|
101
|
+
it_supports_nanoseconds do
|
102
|
+
should == '2010-12-31T23:59:59.999999999+00:00'
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
context 'when the datetime is not frozen' do
|
107
|
+
it { should respond_to(:to_s) }
|
108
|
+
|
109
|
+
it { should == '2010-12-31T23:59:59.999999999+00:00' }
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
@@ -21,16 +21,13 @@ describe SQL::Generator::Literal, '#visit_date_time' do
|
|
21
21
|
its(:to_s) { should eql("'2010-12-31T23:59:59.000000000+00:00'") }
|
22
22
|
end
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
let(:nsec) { 1 }
|
28
|
-
let(:date_time) { DateTime.new(2010, 12, 31, 23, 59, 59 + nsec_in_seconds, offset).freeze }
|
24
|
+
context 'and the nanoseconds are greater than 0' do
|
25
|
+
let(:nsec) { 1 }
|
26
|
+
let(:date_time) { DateTime.new(2010, 12, 31, 23, 59, 59 + nsec_in_seconds, offset).freeze }
|
29
27
|
|
30
|
-
|
28
|
+
it_should_behave_like 'a generated SQL expression'
|
31
29
|
|
32
|
-
|
33
|
-
end
|
30
|
+
its(:to_s) { should eql("'2010-12-31T23:59:59.000000001+00:00'") }
|
34
31
|
end
|
35
32
|
end
|
36
33
|
|
@@ -46,16 +43,13 @@ describe SQL::Generator::Literal, '#visit_date_time' do
|
|
46
43
|
its(:to_s) { should eql("'2010-12-31T23:59:59.000000000+00:00'") }
|
47
44
|
end
|
48
45
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
let(:nsec) { 1 }
|
53
|
-
let(:date_time) { DateTime.new(2010, 12, 31, 15, 59, 59 + nsec_in_seconds, offset).freeze }
|
46
|
+
context 'and the nanoseconds are greater than 0' do
|
47
|
+
let(:nsec) { 1 }
|
48
|
+
let(:date_time) { DateTime.new(2010, 12, 31, 15, 59, 59 + nsec_in_seconds, offset).freeze }
|
54
49
|
|
55
|
-
|
50
|
+
it_should_behave_like 'a generated SQL expression'
|
56
51
|
|
57
|
-
|
58
|
-
end
|
52
|
+
its(:to_s) { should eql("'2010-12-31T23:59:59.000000001+00:00'") }
|
59
53
|
end
|
60
54
|
end
|
61
55
|
end
|
@@ -5,9 +5,9 @@ require 'spec_helper'
|
|
5
5
|
describe SQL::Generator::Literal, '#visit_time' do
|
6
6
|
subject { object.visit_time(time) }
|
7
7
|
|
8
|
-
# Time#iso8601 is currently broken in JRuby 1.
|
8
|
+
# Time#iso8601 is currently broken in JRuby 1.7.0.dev when fractional seconds are not 0
|
9
9
|
def self.time_iso8601_broken?
|
10
|
-
RUBY_PLATFORM.include?('java') && JRUBY_VERSION <= '1.
|
10
|
+
RUBY_PLATFORM.include?('java') && JRUBY_VERSION <= '1.7.0.dev' && RUBY_VERSION >= '1.9.2'
|
11
11
|
end
|
12
12
|
|
13
13
|
let(:described_class) { Class.new(SQL::Generator::Visitor) { include SQL::Generator::Literal } }
|
data/tasks/metrics/ci.rake
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
desc 'Run metrics with Heckle'
|
2
|
-
task :ci => [
|
2
|
+
task :ci => %w[ ci:metrics heckle ]
|
3
3
|
|
4
4
|
namespace :ci do
|
5
5
|
desc 'Run metrics'
|
6
|
-
task :metrics => [
|
6
|
+
task :metrics => %w[ verify_measurements flog flay reek roodi metrics:all ]
|
7
7
|
end
|
data/tasks/metrics/heckle.rake
CHANGED
@@ -6,7 +6,7 @@ $LOAD_PATH.unshift(File.expand_path('../../../lib', __FILE__))
|
|
6
6
|
begin
|
7
7
|
require 'pathname'
|
8
8
|
require 'backports'
|
9
|
-
require 'backports/basic_object'
|
9
|
+
require 'backports/basic_object' unless RUBY_VERSION >= '1.9.2' && (RUBY_PLATFORM.include?('java') || RUBY_ENGINE == 'rbx')
|
10
10
|
require 'active_support/inflector'
|
11
11
|
require 'heckle'
|
12
12
|
require 'mspec'
|
@@ -27,13 +27,16 @@ begin
|
|
27
27
|
end
|
28
28
|
|
29
29
|
desc 'Heckle each module and class'
|
30
|
-
task :heckle => :
|
30
|
+
task :heckle => :rcov do
|
31
31
|
unless Ruby2Ruby::VERSION == '1.2.2'
|
32
32
|
raise "ruby2ruby version #{Ruby2Ruby::VERSION} may not work properly, 1.2.2 *only* is recommended for use with heckle"
|
33
33
|
end
|
34
34
|
|
35
35
|
require 'veritas/sql/generator'
|
36
|
-
|
36
|
+
|
37
|
+
root_module_regexp = Regexp.union(
|
38
|
+
'Veritas::SQL::Generator'
|
39
|
+
)
|
37
40
|
|
38
41
|
spec_dir = Pathname('spec/unit')
|
39
42
|
|
@@ -50,7 +53,7 @@ begin
|
|
50
53
|
unhandled_mutations = 0
|
51
54
|
|
52
55
|
ObjectSpace.each_object(Module) do |mod|
|
53
|
-
next unless mod.name =~ /\A#{
|
56
|
+
next unless mod.name =~ /\A#{root_module_regexp}(?::|\z)/
|
54
57
|
|
55
58
|
spec_prefix = spec_dir.join(mod.name.underscore)
|
56
59
|
|
@@ -135,9 +138,9 @@ begin
|
|
135
138
|
descedant_specs = []
|
136
139
|
|
137
140
|
ObjectSpace.each_object(Module) do |descedant|
|
138
|
-
next unless descedant.name =~ /\A#{
|
141
|
+
next unless descedant.name =~ /\A#{root_module_regexp}(?::|\z)/ && mod >= descedant
|
139
142
|
descedant_spec_prefix = spec_dir.join(descedant.name.underscore)
|
140
|
-
descedant_specs
|
143
|
+
descedant_specs << descedant_spec_prefix
|
141
144
|
|
142
145
|
if method.to_s == 'initialize'
|
143
146
|
descedant_specs.concat(Pathname.glob(descedant_spec_prefix.join('class_methods/new_spec.rb')))
|
@@ -151,9 +154,8 @@ begin
|
|
151
154
|
descedant_specs = []
|
152
155
|
|
153
156
|
ObjectSpace.each_object(Module) do |descedant|
|
154
|
-
next unless descedant.name =~ /\A#{
|
155
|
-
|
156
|
-
descedant_specs.concat(Pathname.glob(descedant_spec_prefix.join('class_methods/*_spec.rb')))
|
157
|
+
next unless descedant.name =~ /\A#{root_module_regexp}(?::|\z)/ && mod >= descedant
|
158
|
+
descedant_specs << spec_dir.join(descedant.name.underscore).join('class_methods')
|
157
159
|
end
|
158
160
|
|
159
161
|
specs << [ ".#{method}", descedant_specs ]
|
data/tasks/spec.rake
CHANGED
@@ -1,37 +1,46 @@
|
|
1
1
|
spec_defaults = lambda do |spec|
|
2
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
3
|
-
spec.libs << 'lib' << 'spec'
|
4
2
|
spec.spec_opts << '--options' << 'spec/spec.opts'
|
5
3
|
end
|
6
4
|
|
7
5
|
begin
|
8
6
|
require 'spec/rake/spectask'
|
9
7
|
|
10
|
-
|
8
|
+
desc 'Run all specs'
|
9
|
+
task :spec => %w[ spec:unit spec:integration ]
|
10
|
+
|
11
|
+
namespace :spec do
|
12
|
+
desc 'Run unit specs'
|
13
|
+
Spec::Rake::SpecTask.new(:unit) do |unit|
|
14
|
+
spec_defaults.call(unit)
|
15
|
+
unit.pattern = 'spec/unit/**/*_spec.rb'
|
16
|
+
end
|
17
|
+
|
18
|
+
desc 'Run integration specs'
|
19
|
+
Spec::Rake::SpecTask.new(:integration) do |integration|
|
20
|
+
spec_defaults.call(integration)
|
21
|
+
integration.pattern = 'spec/integration/**/*_spec.rb'
|
22
|
+
end
|
23
|
+
end
|
11
24
|
rescue LoadError
|
12
|
-
|
13
|
-
|
25
|
+
%w[ spec spec:unit spec:integration ].each do |name|
|
26
|
+
task name do
|
27
|
+
abort "rspec is not available. In order to run #{name}, you must: gem install rspec"
|
28
|
+
end
|
14
29
|
end
|
15
30
|
end
|
16
31
|
|
17
32
|
begin
|
18
33
|
require 'rcov'
|
19
|
-
require 'spec/rake/verify_rcov'
|
20
34
|
|
21
35
|
Spec::Rake::SpecTask.new(:rcov) do |rcov|
|
22
36
|
spec_defaults.call(rcov)
|
23
37
|
rcov.rcov = true
|
38
|
+
rcov.pattern = 'spec/unit/**/*_spec.rb'
|
24
39
|
rcov.rcov_opts = File.read('spec/rcov.opts').split(/\s+/)
|
25
40
|
end
|
26
|
-
|
27
|
-
RCov::VerifyTask.new(:verify_rcov => :rcov) do |rcov|
|
28
|
-
rcov.threshold = 100
|
29
|
-
end
|
30
41
|
rescue LoadError
|
31
|
-
|
32
|
-
|
33
|
-
abort "rcov is not available. In order to run #{name}, you must: gem install rcov"
|
34
|
-
end
|
42
|
+
task :rcov do
|
43
|
+
abort 'rcov is not available. In order to run rcov, you must: gem install rcov'
|
35
44
|
end
|
36
45
|
end
|
37
46
|
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "veritas-sql-generator"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.7"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Dan Kubb"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2012-03-08"
|
13
13
|
s.description = "Generate SQL from a veritas relation"
|
14
14
|
s.email = "dan.kubb@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -61,7 +61,7 @@ Gem::Specification.new do |s|
|
|
61
61
|
"spec/spec.opts",
|
62
62
|
"spec/spec_helper.rb",
|
63
63
|
"spec/unit/date/iso8601_spec.rb",
|
64
|
-
"spec/unit/date_time/
|
64
|
+
"spec/unit/date_time/iso8601_spec.rb",
|
65
65
|
"spec/unit/veritas/sql/generator/attribute/visit_veritas_attribute_spec.rb",
|
66
66
|
"spec/unit/veritas/sql/generator/class_methods/parenthesize_spec.rb",
|
67
67
|
"spec/unit/veritas/sql/generator/direction/visit_veritas_relation_operation_order_ascending_spec.rb",
|
@@ -157,21 +157,21 @@ Gem::Specification.new do |s|
|
|
157
157
|
]
|
158
158
|
s.homepage = "https://github.com/dkubb/veritas-sql-generator"
|
159
159
|
s.require_paths = ["lib"]
|
160
|
-
s.rubygems_version = "1.8.
|
160
|
+
s.rubygems_version = "1.8.16"
|
161
161
|
s.summary = "Relational algebra SQL generator"
|
162
162
|
|
163
163
|
if s.respond_to? :specification_version then
|
164
164
|
s.specification_version = 3
|
165
165
|
|
166
166
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
167
|
-
s.add_runtime_dependency(%q<veritas>, ["~> 0.0.
|
167
|
+
s.add_runtime_dependency(%q<veritas>, ["~> 0.0.7"])
|
168
168
|
s.add_development_dependency(%q<backports>, ["~> 2.3.0"])
|
169
169
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
170
170
|
s.add_development_dependency(%q<rake>, ["~> 0.9.2"])
|
171
171
|
s.add_development_dependency(%q<rspec>, ["~> 1.3.2"])
|
172
172
|
s.add_development_dependency(%q<yard>, ["~> 0.7.2"])
|
173
173
|
else
|
174
|
-
s.add_dependency(%q<veritas>, ["~> 0.0.
|
174
|
+
s.add_dependency(%q<veritas>, ["~> 0.0.7"])
|
175
175
|
s.add_dependency(%q<backports>, ["~> 2.3.0"])
|
176
176
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
177
177
|
s.add_dependency(%q<rake>, ["~> 0.9.2"])
|
@@ -179,7 +179,7 @@ Gem::Specification.new do |s|
|
|
179
179
|
s.add_dependency(%q<yard>, ["~> 0.7.2"])
|
180
180
|
end
|
181
181
|
else
|
182
|
-
s.add_dependency(%q<veritas>, ["~> 0.0.
|
182
|
+
s.add_dependency(%q<veritas>, ["~> 0.0.7"])
|
183
183
|
s.add_dependency(%q<backports>, ["~> 2.3.0"])
|
184
184
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
185
185
|
s.add_dependency(%q<rake>, ["~> 0.9.2"])
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: veritas-sql-generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 7
|
10
|
+
version: 0.0.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Dan Kubb
|
@@ -15,28 +15,27 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2012-03-08 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
type: :runtime
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
22
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
23
|
none: false
|
25
24
|
requirements:
|
26
25
|
- - ~>
|
27
26
|
- !ruby/object:Gem::Version
|
28
|
-
hash:
|
27
|
+
hash: 17
|
29
28
|
segments:
|
30
29
|
- 0
|
31
30
|
- 0
|
32
|
-
-
|
33
|
-
version: 0.0.
|
34
|
-
|
31
|
+
- 7
|
32
|
+
version: 0.0.7
|
33
|
+
prerelease: false
|
34
|
+
requirement: *id001
|
35
35
|
name: veritas
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
type: :development
|
38
|
-
|
39
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
40
39
|
none: false
|
41
40
|
requirements:
|
42
41
|
- - ~>
|
@@ -47,12 +46,12 @@ dependencies:
|
|
47
46
|
- 3
|
48
47
|
- 0
|
49
48
|
version: 2.3.0
|
50
|
-
|
49
|
+
prerelease: false
|
50
|
+
requirement: *id002
|
51
51
|
name: backports
|
52
52
|
- !ruby/object:Gem::Dependency
|
53
53
|
type: :development
|
54
|
-
|
55
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
56
55
|
none: false
|
57
56
|
requirements:
|
58
57
|
- - ~>
|
@@ -63,12 +62,12 @@ dependencies:
|
|
63
62
|
- 6
|
64
63
|
- 4
|
65
64
|
version: 1.6.4
|
66
|
-
|
65
|
+
prerelease: false
|
66
|
+
requirement: *id003
|
67
67
|
name: jeweler
|
68
68
|
- !ruby/object:Gem::Dependency
|
69
69
|
type: :development
|
70
|
-
|
71
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
70
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
72
71
|
none: false
|
73
72
|
requirements:
|
74
73
|
- - ~>
|
@@ -79,12 +78,12 @@ dependencies:
|
|
79
78
|
- 9
|
80
79
|
- 2
|
81
80
|
version: 0.9.2
|
82
|
-
|
81
|
+
prerelease: false
|
82
|
+
requirement: *id004
|
83
83
|
name: rake
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
type: :development
|
86
|
-
|
87
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
86
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
88
87
|
none: false
|
89
88
|
requirements:
|
90
89
|
- - ~>
|
@@ -95,12 +94,12 @@ dependencies:
|
|
95
94
|
- 3
|
96
95
|
- 2
|
97
96
|
version: 1.3.2
|
98
|
-
|
97
|
+
prerelease: false
|
98
|
+
requirement: *id005
|
99
99
|
name: rspec
|
100
100
|
- !ruby/object:Gem::Dependency
|
101
101
|
type: :development
|
102
|
-
|
103
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
102
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
104
103
|
none: false
|
105
104
|
requirements:
|
106
105
|
- - ~>
|
@@ -111,7 +110,8 @@ dependencies:
|
|
111
110
|
- 7
|
112
111
|
- 2
|
113
112
|
version: 0.7.2
|
114
|
-
|
113
|
+
prerelease: false
|
114
|
+
requirement: *id006
|
115
115
|
name: yard
|
116
116
|
description: Generate SQL from a veritas relation
|
117
117
|
email: dan.kubb@gmail.com
|
@@ -167,7 +167,7 @@ files:
|
|
167
167
|
- spec/spec.opts
|
168
168
|
- spec/spec_helper.rb
|
169
169
|
- spec/unit/date/iso8601_spec.rb
|
170
|
-
- spec/unit/date_time/
|
170
|
+
- spec/unit/date_time/iso8601_spec.rb
|
171
171
|
- spec/unit/veritas/sql/generator/attribute/visit_veritas_attribute_spec.rb
|
172
172
|
- spec/unit/veritas/sql/generator/class_methods/parenthesize_spec.rb
|
173
173
|
- spec/unit/veritas/sql/generator/direction/visit_veritas_relation_operation_order_ascending_spec.rb
|
@@ -289,7 +289,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
289
289
|
requirements: []
|
290
290
|
|
291
291
|
rubyforge_project:
|
292
|
-
rubygems_version: 1.8.
|
292
|
+
rubygems_version: 1.8.16
|
293
293
|
signing_key:
|
294
294
|
specification_version: 3
|
295
295
|
summary: Relational algebra SQL generator
|
@@ -1,115 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe DateTime, '#iso8601' do
|
6
|
-
|
7
|
-
# ruby 1.9.3 has problems with fractional nanoseconds
|
8
|
-
def self.it_supports_nanoseconds(message = 'returns the expected date-time', &block)
|
9
|
-
if RUBY_VERSION >= '1.9.3'
|
10
|
-
it(message) { pending('Fix rounding error in 1.9.3', &block) }
|
11
|
-
else
|
12
|
-
it(message, &block)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
let(:object) { described_class.new(2010, 12, 31, 23, 59, 59 + nsec_in_seconds) }
|
17
|
-
let(:nsec_in_seconds) { 1 - Rational(1, 10**9) }
|
18
|
-
|
19
|
-
# rubinius 1.2.3 has problems with fractional seconds above 59
|
20
|
-
unless defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx' && Rubinius::VERSION <= '1.2.3'
|
21
|
-
context 'with no arguments' do
|
22
|
-
subject { object.iso8601 }
|
23
|
-
|
24
|
-
context 'when the datetime is frozen' do
|
25
|
-
before do
|
26
|
-
object.freeze
|
27
|
-
end
|
28
|
-
|
29
|
-
it { should respond_to(:to_s) }
|
30
|
-
|
31
|
-
it_supports_nanoseconds do
|
32
|
-
should == '2010-12-31T23:59:59+00:00'
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
context 'when the datetime is not frozen' do
|
37
|
-
it { should respond_to(:to_s) }
|
38
|
-
|
39
|
-
it { should == '2010-12-31T23:59:59+00:00' }
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
context 'with a time scale of 0' do
|
44
|
-
subject { object.iso8601(time_scale) }
|
45
|
-
|
46
|
-
let(:time_scale) { 0 }
|
47
|
-
|
48
|
-
context 'when the datetime is frozen' do
|
49
|
-
before do
|
50
|
-
object.freeze
|
51
|
-
end
|
52
|
-
|
53
|
-
it { should respond_to(:to_s) }
|
54
|
-
|
55
|
-
it_supports_nanoseconds do
|
56
|
-
should == '2010-12-31T23:59:59+00:00'
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
context 'when the datetime is not frozen' do
|
61
|
-
it { should respond_to(:to_s) }
|
62
|
-
|
63
|
-
it { should == '2010-12-31T23:59:59+00:00' }
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
context 'with a time scale of 1' do
|
68
|
-
subject { object.iso8601(time_scale) }
|
69
|
-
|
70
|
-
let(:time_scale) { 1 }
|
71
|
-
|
72
|
-
context 'when the datetime is frozen' do
|
73
|
-
before do
|
74
|
-
object.freeze
|
75
|
-
end
|
76
|
-
|
77
|
-
it { should respond_to(:to_s) }
|
78
|
-
|
79
|
-
it_supports_nanoseconds do
|
80
|
-
should == '2010-12-31T23:59:59.9+00:00'
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
context 'when the datetime is not frozen' do
|
85
|
-
it { should respond_to(:to_s) }
|
86
|
-
|
87
|
-
it { should == '2010-12-31T23:59:59.9+00:00' }
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
context 'with a time scale of 9' do
|
92
|
-
subject { object.iso8601(time_scale) }
|
93
|
-
|
94
|
-
let(:time_scale) { 9 }
|
95
|
-
|
96
|
-
context 'when the datetime is frozen' do
|
97
|
-
before do
|
98
|
-
object.freeze
|
99
|
-
end
|
100
|
-
|
101
|
-
it { should respond_to(:to_s) }
|
102
|
-
|
103
|
-
it_supports_nanoseconds do
|
104
|
-
should == '2010-12-31T23:59:59.999999999+00:00'
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
context 'when the datetime is not frozen' do
|
109
|
-
it { should respond_to(:to_s) }
|
110
|
-
|
111
|
-
it { should == '2010-12-31T23:59:59.999999999+00:00' }
|
112
|
-
end
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|