fossil 0.4.26 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/fossil.gemspec +8 -11
- data/lib/date_extentions.rb +26 -0
- data/lib/delegate_method.rb +84 -0
- data/lib/fossil.rb +10 -7
- data/lib/hash_extentions.rb +53 -1
- data/lib/models/trip_leg.rb +12 -8
- data/lib/sequel/fos_dates.rb +46 -14
- data/lib/sequel/metaprogramming.rb +25 -6
- data/lib/sequel/model_patch.rb +3 -3
- data/lib/sequel/pervasive_adapter.rb +1 -1
- data/lib/sequel/serializer/json_serializer.rb +20 -27
- data/lib/sequel/serializer/serializer.rb +9 -9
- data/lib/sequel/serializer/xml_serializer.rb +112 -23
- data/spec/helper_methods.rb +6 -6
- data/spec/models/trip_leg_spec.rb +175 -175
- data/spec/models/vendor_document_spec.rb +1 -0
- data/spec/sequel/fos_dates_spec.rb +7 -3
- data/spec/sequel/model_patch_spec.rb +26 -7
- data/spec/sequel/serializer/json_serializer_spec.rb +3 -0
- data/spec/spec_helper.rb +15 -7
- metadata +13 -22
- data/spec/spec.opts +0 -4
@@ -12,7 +12,7 @@ describe "fos_dates" do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
it "Time class to_fos_days converts time to to days since epoch" do
|
15
|
-
DateTime.new(1900,1,10,0,0,0).
|
15
|
+
DateTime.new(1900,1,10,0,0,0).to_datetime.to_fos_days.should == 10
|
16
16
|
end
|
17
17
|
|
18
18
|
it "converts fos date number to a Ruby Date" do
|
@@ -28,17 +28,21 @@ describe "fos_dates" do
|
|
28
28
|
end
|
29
29
|
|
30
30
|
it "converts a Ruby Time to hundredths" do
|
31
|
-
Time.from_fos_time(100).in_hundredths.should ==
|
31
|
+
Time.from_fos_time(100).in_hundredths.should == 1.66
|
32
32
|
end
|
33
33
|
|
34
34
|
it "Date view defaults to y-m-d" do
|
35
35
|
Date.parse('Sept 9, 2009').to_s.should == "2009-09-09"
|
36
36
|
end
|
37
37
|
|
38
|
-
it "Time view defaults to M
|
38
|
+
it "Time view defaults to H:M" do
|
39
39
|
Time.parse('Sept 9, 2009 07:10').to_s.should == "07:10"
|
40
40
|
end
|
41
41
|
|
42
|
+
it "DateTime from fos date time" do
|
43
|
+
DateTime.from_fos_date_time(40209,100).should == DateTime.new(2010,2,1,1,40,0)
|
44
|
+
end
|
45
|
+
|
42
46
|
it "DateTime has long_view method that makes long formatted string" do
|
43
47
|
tl = TripLeg.new(:dept_date_gmt=>40209, :etd_gmt=>100)
|
44
48
|
tl.planned_departure_date_time_gmt__long_view.should == "February 01, 2010 01:40"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../spec_helper'
|
2
2
|
require File.dirname(__FILE__) + '/spec_helper_tables' unless metaclass.class_variable_defined? :@@set_up_demo_tables
|
3
|
-
|
3
|
+
|
4
4
|
describe "Sequel::Model extentions" do
|
5
5
|
|
6
6
|
it "find_children method finds find Sequel::Models" do
|
@@ -8,8 +8,9 @@ describe "Sequel::Model extentions" do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
it "makes fos_id" do
|
11
|
+
set_fos_db([TripLeg])
|
11
12
|
tl = TripLeg.new(:kid_user => 'ME ',:kid_mult => 1,:kid_comm => 2,:kid_date => 3,:kid_time => 4)
|
12
|
-
tl.fos_id.should == "ME
|
13
|
+
tl.fos_id.should == "ME-1-2-3-4"
|
13
14
|
end
|
14
15
|
|
15
16
|
describe "fill_hash method" do
|
@@ -51,6 +52,7 @@ describe "Sequel::Model extentions" do
|
|
51
52
|
end
|
52
53
|
|
53
54
|
it "can update and save" do
|
55
|
+
set_demo_db([TestTable])
|
54
56
|
add_test_table_data({:date_col => 123, :time_col=>60})
|
55
57
|
record = TestTable.first
|
56
58
|
record[:'goofy name col'] = 124
|
@@ -60,6 +62,10 @@ describe "Sequel::Model extentions" do
|
|
60
62
|
|
61
63
|
describe "select_fields method" do
|
62
64
|
|
65
|
+
before :each do
|
66
|
+
set_demo_db([Code,Dude,MyFriend,Horse])
|
67
|
+
end
|
68
|
+
|
63
69
|
it "works on model" do
|
64
70
|
dude = Dude.select_fields(:self => ['kid - date']).first
|
65
71
|
dude[:'kid - date'].should == 1
|
@@ -77,7 +83,8 @@ describe "Sequel::Model extentions" do
|
|
77
83
|
|
78
84
|
it "can select more than one table with columns of the same name" do
|
79
85
|
# dude = Dude.eager_graph(:horses).select(*(Dude.pk_for_select + Horse.pk_for_select(:table=>:horses,:alias=>true) + [:'dudes__name', :'horses__name___horses_name'])).all.first
|
80
|
-
dude = Dude.eager_graph(:horses).
|
86
|
+
dude = Dude.eager_graph(:horses).
|
87
|
+
select_fields(:self => [:name], :horses => [:name]).all.first
|
81
88
|
dude.name.should == "dano"
|
82
89
|
dude.horses.first.name.should == 'pinto'
|
83
90
|
end
|
@@ -85,13 +92,18 @@ describe "Sequel::Model extentions" do
|
|
85
92
|
it "selects column alias from correct table" do
|
86
93
|
Dude.column_alias :doo, :'kid - date'
|
87
94
|
Horse.column_alias :hoo, :'kid - time'
|
88
|
-
dude = Dude.eager_graph(:horses).
|
95
|
+
dude = Dude.eager_graph(:horses).
|
96
|
+
select_fields(:self => [:doo], :horses => [:hoo]).all.first
|
89
97
|
dude.doo.should == 1
|
90
98
|
dude.horses.first.hoo.should == 1
|
91
99
|
end
|
92
100
|
|
93
101
|
it "selects particular columns from joined tables" do
|
94
|
-
dude = Dude.eager_graph(:ranch_code, :my_friend, :horses).
|
102
|
+
dude = Dude.eager_graph(:ranch_code, :my_friend, :horses).
|
103
|
+
select_fields(:self => [:name],
|
104
|
+
:ranch_code => [:code],
|
105
|
+
:my_friend => [:name],
|
106
|
+
:horses => [:name]).all.first
|
95
107
|
dude.ranch_code_code.should == "men"
|
96
108
|
dude.name.should == "dano"
|
97
109
|
dude.horses.first.name.should == 'pinto'
|
@@ -108,6 +120,7 @@ describe "Sequel::Model extentions" do
|
|
108
120
|
end
|
109
121
|
|
110
122
|
before do
|
123
|
+
set_demo_db([TestTable])
|
111
124
|
add_test_table_data({:date_col => 123, :time_col=>60, :price=>1215, :paid=>1})
|
112
125
|
TestTable.column_view :date_col, :date
|
113
126
|
TestTable.column_view :time_col, :time
|
@@ -158,6 +171,7 @@ describe "Sequel::Model extentions" do
|
|
158
171
|
describe "column_alias" do
|
159
172
|
|
160
173
|
before :each do
|
174
|
+
set_demo_db([TestTable])
|
161
175
|
add_test_table_data({:id=>1, :'goofy name col' => 123})
|
162
176
|
end
|
163
177
|
|
@@ -220,6 +234,7 @@ describe "Sequel::Model extentions" do
|
|
220
234
|
describe "column_type" do
|
221
235
|
|
222
236
|
before :each do
|
237
|
+
set_demo_db([TestTable])
|
223
238
|
add_test_table_data({:date_col => 123, :time_col=>60})
|
224
239
|
end
|
225
240
|
|
@@ -238,7 +253,7 @@ describe "Sequel::Model extentions" do
|
|
238
253
|
TestTable.column_type :time_col, :time
|
239
254
|
|
240
255
|
TestTable.first[:time_col].should be_a_kind_of(DateTime)
|
241
|
-
TestTable.first[:time_col].should ==
|
256
|
+
TestTable.first[:time_col].should == DateTime.new(1899,12,31,1,0,0)
|
242
257
|
end
|
243
258
|
|
244
259
|
it "should find rows" do
|
@@ -250,6 +265,7 @@ describe "Sequel::Model extentions" do
|
|
250
265
|
describe "column_def" do
|
251
266
|
|
252
267
|
before do
|
268
|
+
set_demo_db([TestTable])
|
253
269
|
TestTable.column_def_datetime :datetime_col, :date_col, :time_col
|
254
270
|
end
|
255
271
|
|
@@ -316,6 +332,10 @@ describe "Sequel::Model extentions" do
|
|
316
332
|
|
317
333
|
describe "n_to_o" do
|
318
334
|
|
335
|
+
before :each do
|
336
|
+
set_demo_db([Horse,Dude])
|
337
|
+
end
|
338
|
+
|
319
339
|
it "retrieves the association" do
|
320
340
|
Horse.first.dude.name.should == 'dano'
|
321
341
|
end
|
@@ -350,7 +370,6 @@ describe "Sequel::Model extentions" do
|
|
350
370
|
@trip_leg.passenger_list.should == "Mendelson, Victor (lead pax) : Mendelson, Laurans : Irwin, Thomas"
|
351
371
|
end
|
352
372
|
end
|
353
|
-
|
354
373
|
end
|
355
374
|
|
356
375
|
end
|
@@ -4,6 +4,9 @@ require File.dirname(__FILE__) + '/../spec_helper_tables' unless metaclass.class
|
|
4
4
|
describe "Sequel::Serializer" do
|
5
5
|
|
6
6
|
describe "to_fos_json method" do
|
7
|
+
before :each do
|
8
|
+
set_demo_db([TestTable,Dude,Horse])
|
9
|
+
end
|
7
10
|
|
8
11
|
it "adds :only=>[] to the options hash" do
|
9
12
|
data = Trip.new
|
data/spec/spec_helper.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
|
2
|
-
gem "rspec", '1.3.0'
|
3
|
-
require '
|
1
|
+
require_relative '../lib/fossil'
|
2
|
+
#gem "rspec", '1.3.0'
|
3
|
+
require 'rspec'
|
4
4
|
require 'rr'
|
5
|
-
require '
|
5
|
+
require 'logger'
|
6
6
|
|
7
7
|
p RUBY_VERSION
|
8
8
|
|
9
9
|
unless defined?(DB_DEMO)
|
10
|
-
DB_DEMO = Sequel.odbc('demodata')#, :loggers=>[Logger.new($stdout)])
|
10
|
+
DB_DEMO = Sequel.odbc('demodata') #, :loggers=>[Logger.new($stdout)])
|
11
11
|
DB_DEMO.extend(Sequel::Pervasive::DatabaseMethods)
|
12
|
-
|
12
|
+
|
13
13
|
DB_FOS = Sequel.odbc('fos', :loggers=>[Logger.new($stdout)])
|
14
14
|
DB_FOS.extend(Sequel::Pervasive::DatabaseMethods)
|
15
15
|
end
|
@@ -19,12 +19,20 @@ require File.dirname(__FILE__) + "/helper_classes"
|
|
19
19
|
##### custom matchers #####
|
20
20
|
require File.dirname(__FILE__) + "/be_model_with_values_matcher"
|
21
21
|
|
22
|
-
|
22
|
+
RSpec.configure do |config|
|
23
|
+
config.mock_with :rr
|
24
|
+
|
23
25
|
config.include(HelperMethods)
|
24
26
|
config.mock_with :rr
|
25
27
|
config.include(BeModelWithValuesMatcher)
|
26
28
|
end
|
27
29
|
|
30
|
+
RSpec::Matchers.define :equal_xml do |expected|
|
31
|
+
match do |actual|
|
32
|
+
actual.gsub(/\s/, '').should == expected.gsub(/\s/, '')
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
28
36
|
module Sequel::Pervasive::DatabaseMethods
|
29
37
|
|
30
38
|
# turn autocommit offffffffff
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
7
|
+
- 5
|
8
|
+
- 0
|
9
|
+
version: 0.5.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Patrick Lardin, Daniel Sudol
|
@@ -14,13 +14,14 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-10-04 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: sequel
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
24
25
|
requirements:
|
25
26
|
- - "="
|
26
27
|
- !ruby/object:Gem::Version
|
@@ -31,24 +32,11 @@ dependencies:
|
|
31
32
|
version: 3.13.0
|
32
33
|
type: :runtime
|
33
34
|
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: activesupport
|
36
|
-
prerelease: false
|
37
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - "="
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
segments:
|
42
|
-
- 2
|
43
|
-
- 3
|
44
|
-
- 5
|
45
|
-
version: 2.3.5
|
46
|
-
type: :runtime
|
47
|
-
version_requirements: *id002
|
48
35
|
- !ruby/object:Gem::Dependency
|
49
36
|
name: rspec
|
50
37
|
prerelease: false
|
51
|
-
requirement: &
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
52
40
|
requirements:
|
53
41
|
- - ">="
|
54
42
|
- !ruby/object:Gem::Version
|
@@ -56,7 +44,7 @@ dependencies:
|
|
56
44
|
- 0
|
57
45
|
version: "0"
|
58
46
|
type: :development
|
59
|
-
version_requirements: *
|
47
|
+
version_requirements: *id002
|
60
48
|
description: Access FOS/betrieve db with this Sequel based orm wrapper
|
61
49
|
email: plardin@xojet.com
|
62
50
|
executables: []
|
@@ -69,6 +57,8 @@ files:
|
|
69
57
|
- Rakefile
|
70
58
|
- VERSION
|
71
59
|
- fossil.gemspec
|
60
|
+
- lib/date_extentions.rb
|
61
|
+
- lib/delegate_method.rb
|
72
62
|
- lib/fos_schema/FOS_SCHEMA_3.8.22.r3.csv
|
73
63
|
- lib/fos_schema/FOS_SCHEMA_3.8.27.r1.csv
|
74
64
|
- lib/fos_schema/FOS_SCHEMA_3.9.0.csv
|
@@ -199,7 +189,6 @@ files:
|
|
199
189
|
- spec/sequel/serializer/json_serializer_spec.rb
|
200
190
|
- spec/sequel/serializer/xml_serializer_spec.rb
|
201
191
|
- spec/sequel/spec_helper_tables.rb
|
202
|
-
- spec/spec.opts
|
203
192
|
- spec/spec_helper.rb
|
204
193
|
has_rdoc: true
|
205
194
|
homepage: ""
|
@@ -211,6 +200,7 @@ rdoc_options:
|
|
211
200
|
require_paths:
|
212
201
|
- lib
|
213
202
|
required_ruby_version: !ruby/object:Gem::Requirement
|
203
|
+
none: false
|
214
204
|
requirements:
|
215
205
|
- - ">="
|
216
206
|
- !ruby/object:Gem::Version
|
@@ -218,6 +208,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
218
208
|
- 0
|
219
209
|
version: "0"
|
220
210
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
211
|
+
none: false
|
221
212
|
requirements:
|
222
213
|
- - ">="
|
223
214
|
- !ruby/object:Gem::Version
|
@@ -227,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
227
218
|
requirements: []
|
228
219
|
|
229
220
|
rubyforge_project:
|
230
|
-
rubygems_version: 1.3.
|
221
|
+
rubygems_version: 1.3.7
|
231
222
|
signing_key:
|
232
223
|
specification_version: 3
|
233
224
|
summary: Sequel orm wrapper to FOS
|
data/spec/spec.opts
DELETED