fossil 0.4.5 → 0.4.6
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/fossil.gemspec +2 -3
- data/lib/fossil.rb +0 -1
- data/lib/sequel/serializer/json_serializer.rb +2 -1
- data/lib/sequel/serializer/serializer.rb +1 -1
- data/lib/sequel/serializer/xml_serializer.rb +6 -5
- data/spec/sequel/model_patch_spec.rb +8 -34
- data/spec/sequel/pervasive_adapter_spec.rb +1 -1
- data/spec/sequel/serializer/json_serializer_spec.rb +22 -10
- data/spec/sequel/serializer/xml_serializer_spec.rb +16 -5
- metadata +3 -4
- data/lib/serial_number.rb +0 -14
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.6
|
data/fossil.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{fossil}
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Patrick Lardin, Daniel Sudol"]
|
12
|
-
s.date = %q{2010-06-
|
12
|
+
s.date = %q{2010-06-28}
|
13
13
|
s.description = %q{Access FOS/betrieve db with this Sequel based orm wrapper}
|
14
14
|
s.email = %q{plardin@xojet.com}
|
15
15
|
s.files = [
|
@@ -127,7 +127,6 @@ Gem::Specification.new do |s|
|
|
127
127
|
"lib/sequel/serializer/serializer.rb",
|
128
128
|
"lib/sequel/serializer/xml_serializer.rb",
|
129
129
|
"lib/sequel/sqlite_pervasive_adapter.rb",
|
130
|
-
"lib/serial_number.rb",
|
131
130
|
"spec/be_model_with_values_matcher.rb",
|
132
131
|
"spec/be_model_with_values_matcher_spec.rb",
|
133
132
|
"spec/hash_extentions_spec.rb",
|
data/lib/fossil.rb
CHANGED
@@ -18,7 +18,6 @@ end
|
|
18
18
|
dir = File.dirname(__FILE__)
|
19
19
|
files = [File.join(dir,'number_helper.rb')] +
|
20
20
|
[File.join(dir,'hash_extentions.rb')] +
|
21
|
-
[File.join(dir,'serial_number.rb')] +
|
22
21
|
[File.join(dir,'sequel','serializer','serializer.rb')] +
|
23
22
|
Dir.glob(File.join(dir,'sequel','*.rb')) +
|
24
23
|
Dir.glob(File.join(dir,'models','*.rb'))
|
@@ -84,7 +84,8 @@ module Sequel
|
|
84
84
|
# to_json ignores the special __ delegator methods ( like 'leg_status__downcase' )
|
85
85
|
# that we use in orm.
|
86
86
|
def to_fos_json(options = {})
|
87
|
-
|
87
|
+
options = {:only=>[]}.merge(options)
|
88
|
+
to_json(options)
|
88
89
|
end
|
89
90
|
|
90
91
|
def from_json(json)
|
@@ -31,7 +31,7 @@ module Sequel
|
|
31
31
|
|
32
32
|
def serializable_method_names
|
33
33
|
Array(options[:methods]).inject([]) do |method_attributes, name|
|
34
|
-
method_attributes << name if !name.blank? and @record.respond_to?(name.to_s)
|
34
|
+
method_attributes << name if !name.blank? #and @record.respond_to?(name.to_s)
|
35
35
|
method_attributes
|
36
36
|
end
|
37
37
|
end
|
@@ -151,8 +151,8 @@ module Sequel #:nodoc:
|
|
151
151
|
# end
|
152
152
|
# end
|
153
153
|
# end
|
154
|
-
def to_fos_xml(options ={}, &block)
|
155
|
-
options = {:skip_instruct=>true, :dasherize=>false, :only=>[]}.merge(options)
|
154
|
+
def to_fos_xml(options ={}, &block)
|
155
|
+
options = {:skip_instruct=>true, :skip_types=>true, :dasherize=>false, :only=>[]}.merge(options)
|
156
156
|
to_xml(options, &block)
|
157
157
|
end
|
158
158
|
|
@@ -209,7 +209,7 @@ module Sequel #:nodoc:
|
|
209
209
|
|
210
210
|
def serializable_method_attributes
|
211
211
|
Array(options[:methods]).inject([]) do |method_attributes, name|
|
212
|
-
method_attributes << MethodAttribute.new(name.to_s, @record) if @record.respond_to?(name.to_s)
|
212
|
+
method_attributes << MethodAttribute.new(name.to_s, @record) #if @record.respond_to?(name.to_s)
|
213
213
|
method_attributes
|
214
214
|
end
|
215
215
|
end
|
@@ -229,6 +229,7 @@ module Sequel #:nodoc:
|
|
229
229
|
end
|
230
230
|
|
231
231
|
def add_tag(attribute)
|
232
|
+
# p "add_tag #{attribute} attribute.name=#{attribute.name} options=#{options} options[:skip_types]=#{options[:skip_types]}"
|
232
233
|
builder.tag!(
|
233
234
|
reformat_name(attribute.name),
|
234
235
|
attribute.value.to_s,
|
@@ -373,7 +374,7 @@ module ActiveSupport #:nodoc:
|
|
373
374
|
module Array #:nodoc:
|
374
375
|
module Conversions
|
375
376
|
def to_fos_xml(options = {})
|
376
|
-
to_xml({:skip_instruct=>true, :dasherize=>false, :only=>[]}.merge(options))
|
377
|
+
to_xml({:skip_instruct=>true, :skip_types=>true, :dasherize=>false, :only=>[]}.merge(options))
|
377
378
|
end
|
378
379
|
end
|
379
380
|
end
|
@@ -385,7 +386,7 @@ module ActiveSupport #:nodoc:
|
|
385
386
|
module Hash #:nodoc:
|
386
387
|
module Conversions
|
387
388
|
def to_fos_xml(options = {})
|
388
|
-
to_xml({:dasherize=>false, :only=>[]}.merge(options))
|
389
|
+
to_xml({:skip_instruct=>true, :skip_types=>true, :dasherize=>false, :only=>[]}.merge(options))
|
389
390
|
end
|
390
391
|
end
|
391
392
|
end
|
@@ -15,11 +15,11 @@ describe "Sequel::Model extentions" do
|
|
15
15
|
Dude.first.fill_hash([:doo]).should == {:doo=>1}
|
16
16
|
end
|
17
17
|
|
18
|
-
describe "recognizes __ in method name and creates delegators only once" do
|
18
|
+
describe "method missing recognizes __ in method name and creates delegators only once" do
|
19
19
|
it "for one level deep" do
|
20
20
|
mock.proxy(Dude).delegate(:name, :to => :my_friend, :prefix => true, :allow_nil => true)
|
21
21
|
Dude.first.fill_hash([:my_friend__name,:my_friend__name]).should == {:my_friend_name=>'dans buddy'}
|
22
|
-
Dude.
|
22
|
+
Dude.send(:remove_method, :my_friend_name)
|
23
23
|
end
|
24
24
|
|
25
25
|
it "for two levels deep" do
|
@@ -27,41 +27,15 @@ describe "Sequel::Model extentions" do
|
|
27
27
|
mock.proxy(Horse).delegate(:my_friend, :to => :dude, :prefix => true, :allow_nil => true)
|
28
28
|
mock.proxy(Horse).delegate(:name, :to => :dude_my_friend, :prefix => true, :allow_nil => true)
|
29
29
|
mock.proxy(Horse).delegate(:kid_date, :to => :dude_my_friend, :prefix => true, :allow_nil => true)
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
# class Horse; remove_method :dude_my_friend; remove_method :dude_my_friend_name; remove_method :dude_my_friend_kid_date; end
|
30
|
+
Horse.first
|
31
|
+
Horse.first.fill_hash([:dude__my_friend__kid_date,:dude__my_friend__name]).should == {:dude_my_friend_name=>'dans buddy',:dude_my_friend_kid_date=>1}
|
32
|
+
Horse.send(:remove_method,:dude_my_friend)
|
33
|
+
Horse.send(:remove_method,:dude_my_friend_name)
|
34
|
+
Horse.send(:remove_method,:dude_my_friend_kid_date)
|
36
35
|
end
|
37
36
|
end
|
38
37
|
end
|
39
38
|
|
40
|
-
describe "method missing recognizes __ in method name and creates delegators only once" do
|
41
|
-
it "for one level deep" do
|
42
|
-
mock.proxy(Dude).delegate(:name, :to => :my_friend, :prefix => true, :allow_nil => true)
|
43
|
-
Dude.first.send(:my_friend__name) == 'dans buddy'
|
44
|
-
Dude.first.respond_to? :my_friend_name
|
45
|
-
Dude.first.send(:my_friend__name) == 'dans buddy'
|
46
|
-
# class Dude; remove_method :my_friend_name; end
|
47
|
-
Dude.first.method(:my_friend_name).unbind
|
48
|
-
end
|
49
|
-
|
50
|
-
it "for two levels deep" do
|
51
|
-
MyFriend.column_alias :kid_date, :'kid - date'
|
52
|
-
mock.proxy(Horse).delegate(:my_friend, :to => :dude, :prefix => true, :allow_nil => true)
|
53
|
-
mock.proxy(Horse).delegate(:name, :to => :dude_my_friend, :prefix => true, :allow_nil => true)
|
54
|
-
mock.proxy(Horse).delegate(:kid_date, :to => :dude_my_friend, :prefix => true, :allow_nil => true)
|
55
|
-
h = Horse.first
|
56
|
-
h.send(:dude__my_friend__name).should == 'dans buddy'
|
57
|
-
h.send(:dude__my_friend__kid_date).should == 1
|
58
|
-
h.method(:dude_my_friend).unbind
|
59
|
-
h.method(:dude_my_friend_name).unbind
|
60
|
-
h.method(:dude_my_friend_kid_date).unbind
|
61
|
-
# class Horse; remove_method :dude_my_friend; remove_method :dude_my_friend_name; remove_method :dude_my_friend_kid_date; end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
39
|
it "can update and save" do
|
66
40
|
add_test_table_data({:date_col => 123, :time_col=>60})
|
67
41
|
record = TestTable.first
|
@@ -148,7 +122,7 @@ describe "Sequel::Model extentions" do
|
|
148
122
|
@record.date_col_date_view_mdy.should == "05/03/1900"
|
149
123
|
# ruby 1.9.1 not making date as 5/3/1900, so this just makes it
|
150
124
|
# pass .. but eventually we drop that ipc method anyway, so I dont care.
|
151
|
-
@record.date_col_date_view_mdy_ipc.should =~ /[0]
|
125
|
+
@record.date_col_date_view_mdy_ipc.should =~ /[0]*5\/[0]*3\/1900/
|
152
126
|
end
|
153
127
|
|
154
128
|
it "shows correct time view" do
|
@@ -2,21 +2,33 @@ 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::Serializer" do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
|
6
|
+
describe "to_fos_json method" do
|
7
|
+
|
8
|
+
it "adds :only=>[] to the options hash" do
|
9
|
+
data = Trip.new
|
10
|
+
mock(data).to_json({:only=>[], :methods=>[]})
|
10
11
|
data.to_fos_json(:methods=>[])
|
11
12
|
end
|
12
13
|
|
13
|
-
it "
|
14
|
-
add_test_table_data({:id=>1
|
14
|
+
it "handles single sequel model" do
|
15
|
+
add_test_table_data({:id=>1, :'goofy name col' => 123})
|
15
16
|
data = TestTable.first
|
16
|
-
|
17
|
-
|
18
|
-
|
17
|
+
data.to_fos_json(:methods=>[:'goofy name col']).should == "{\"goofy name col\":123}"
|
18
|
+
end
|
19
|
+
|
20
|
+
it "handles an array of sequel models" do
|
21
|
+
add_test_table_data({:id=>1, :'goofy name col' => 123})
|
22
|
+
array = [TestTable.first]
|
23
|
+
array.to_fos_json(:methods=>[:'goofy name col']).should==["{\"goofy name col\":123}"]
|
24
|
+
end
|
25
|
+
|
26
|
+
it "shows methods which are dynamically delegated" do
|
27
|
+
add_test_table_data({:id=>1, :'date_col' => 123})
|
28
|
+
data = TestTable.first
|
29
|
+
data.to_fos_json(:methods=>[:date_col__round]).should == "{\"date_col__round\":123}"
|
19
30
|
end
|
20
31
|
|
21
32
|
end
|
33
|
+
|
22
34
|
end
|
@@ -1,6 +1,5 @@
|
|
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
|
-
#require 'active_resource'
|
4
3
|
|
5
4
|
describe "Sequel::Serializer" do
|
6
5
|
|
@@ -8,14 +7,14 @@ describe "Sequel::Serializer" do
|
|
8
7
|
it "single sequel model" do
|
9
8
|
add_test_table_data({:id=>1,:'goofy name col' => 123})
|
10
9
|
data = TestTable.first
|
11
|
-
mock(data).to_xml({:
|
10
|
+
mock(data).to_xml({:skip_instruct=>true, :skip_types=>true, :dasherize=>false, :only=>[]})
|
12
11
|
data.to_fos_xml
|
13
12
|
end
|
14
13
|
|
15
14
|
it "an array of sequel models" do
|
16
15
|
add_test_table_data({:id=>1,:'goofy name col' => 123})
|
17
16
|
data = [TestTable.first]
|
18
|
-
mock(data).to_xml({:
|
17
|
+
mock(data).to_xml({:skip_instruct=>true, :skip_types=>true, :dasherize=>false, :only=>[]})
|
19
18
|
data.to_fos_xml
|
20
19
|
end
|
21
20
|
end
|
@@ -32,13 +31,25 @@ describe "Sequel::Serializer" do
|
|
32
31
|
} )
|
33
32
|
end
|
34
33
|
|
34
|
+
it "to_xml works with references to dynamic delegated columns" do
|
35
|
+
add_test_table_data({:id=>1,:'date_col' => 123})
|
36
|
+
TestTable.column_alias :'date_col', :date_col
|
37
|
+
|
38
|
+
TestTable.first.to_fos_xml(:methods => :date_col__round).should equal_xml(
|
39
|
+
%{
|
40
|
+
<test_table>
|
41
|
+
<date_col__round>123</date_col__round>
|
42
|
+
</test_table>
|
43
|
+
} )
|
44
|
+
end
|
45
|
+
|
35
46
|
it "to_fos_xml with many to one assoc" do
|
36
47
|
Dude.o_to_n :horses, :class=>:Horse, :prefix => 'dude'
|
37
48
|
|
38
49
|
Dude.first.to_fos_xml(:only=> :name, :include=> :horses).should equal_xml(
|
39
50
|
%{ <dude>
|
40
51
|
<name>dano</name>
|
41
|
-
<horses
|
52
|
+
<horses>
|
42
53
|
<horse> <name>pinto</name> </horse>
|
43
54
|
<horse> <name>silver</name> </horse>
|
44
55
|
</horses>
|
@@ -62,7 +73,7 @@ describe "Sequel::Serializer" do
|
|
62
73
|
Horse.n_to_o :dude, :class=>:Dude, :prefix=>'dude'
|
63
74
|
|
64
75
|
Horse.all.to_fos_xml(:only=> [:name], :include=> :dude).should equal_xml(
|
65
|
-
%{ <horses
|
76
|
+
%{ <horses>
|
66
77
|
<horse> <name>pinto</name>
|
67
78
|
<dude> <name>dano</name> </dude>
|
68
79
|
</horse>
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 4
|
8
|
-
-
|
9
|
-
version: 0.4.
|
8
|
+
- 6
|
9
|
+
version: 0.4.6
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Patrick Lardin, Daniel Sudol
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-06-
|
17
|
+
date: 2010-06-28 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -180,7 +180,6 @@ files:
|
|
180
180
|
- lib/sequel/serializer/serializer.rb
|
181
181
|
- lib/sequel/serializer/xml_serializer.rb
|
182
182
|
- lib/sequel/sqlite_pervasive_adapter.rb
|
183
|
-
- lib/serial_number.rb
|
184
183
|
- spec/be_model_with_values_matcher.rb
|
185
184
|
- spec/be_model_with_values_matcher_spec.rb
|
186
185
|
- spec/hash_extentions_spec.rb
|