dm-serializer 1.0.0.rc2 → 1.0.0.rc3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -1
- data/LICENSE +1 -1
- data/Rakefile +5 -5
- data/VERSION +1 -1
- data/benchmarks/to_json.rb +1 -1
- data/benchmarks/to_xml.rb +1 -1
- data/dm-serializer.gemspec +11 -11
- data/lib/dm-serializer/to_json.rb +10 -12
- data/spec/lib/serialization_method_shared_spec.rb +3 -5
- data/spec/public/to_csv_spec.rb +3 -1
- data/spec/public/to_json_spec.rb +1 -0
- data/spec/public/to_xml_spec.rb +1 -0
- data/spec/public/to_yaml_spec.rb +1 -0
- data/spec/rcov.opts +1 -1
- data/spec/spec_helper.rb +1 -1
- data/tasks/spec.rake +3 -0
- metadata +22 -22
data/Gemfile
CHANGED
data/LICENSE
CHANGED
data/Rakefile
CHANGED
@@ -10,19 +10,19 @@ begin
|
|
10
10
|
gem.summary = 'DataMapper plugin for serializing Resources and Collections'
|
11
11
|
gem.description = gem.summary
|
12
12
|
gem.email = 'vandenberg.guy [a] gmail [d] com'
|
13
|
-
gem.homepage = 'http://github.com/datamapper
|
13
|
+
gem.homepage = 'http://github.com/datamapper/%s' % gem.name
|
14
14
|
gem.authors = [ 'Guy van den Berg' ]
|
15
15
|
|
16
16
|
gem.rubyforge_project = 'datamapper'
|
17
17
|
|
18
|
-
gem.add_dependency 'dm-core', '~> 1.0.0.
|
18
|
+
gem.add_dependency 'dm-core', '~> 1.0.0.rc3'
|
19
19
|
gem.add_dependency 'fastercsv', '~> 1.5.3'
|
20
20
|
gem.add_dependency 'json_pure', '~> 1.4.3'
|
21
21
|
|
22
|
-
# gem.add_development_dependency 'libxml-ruby', '~> 1.1.4' # not available on JRuby
|
23
|
-
gem.add_development_dependency 'dm-validations', '~> 1.0.0.rc2'
|
24
|
-
gem.add_development_dependency 'nokogiri', '~> 1.4.1'
|
25
22
|
gem.add_development_dependency 'rspec', '~> 1.3'
|
23
|
+
gem.add_development_dependency 'dm-validations', '~> 1.0.0.rc3'
|
24
|
+
gem.add_development_dependency 'nokogiri', '~> 1.4.1'
|
25
|
+
# gem.add_development_dependency 'libxml-ruby', '~> 1.1.4' # not available on JRuby
|
26
26
|
end
|
27
27
|
|
28
28
|
Jeweler::GemcutterTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.0.
|
1
|
+
1.0.0.rc3
|
data/benchmarks/to_json.rb
CHANGED
data/benchmarks/to_xml.rb
CHANGED
data/dm-serializer.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{dm-serializer}
|
8
|
-
s.version = "1.0.0.
|
8
|
+
s.version = "1.0.0.rc3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Guy van den Berg"]
|
12
|
-
s.date = %q{2010-05-
|
12
|
+
s.date = %q{2010-05-27}
|
13
13
|
s.description = %q{DataMapper plugin for serializing Resources and Collections}
|
14
14
|
s.email = %q{vandenberg.guy [a] gmail [d] com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -81,27 +81,27 @@ Gem::Specification.new do |s|
|
|
81
81
|
s.specification_version = 3
|
82
82
|
|
83
83
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
84
|
-
s.add_runtime_dependency(%q<dm-core>, ["~> 1.0.0.
|
84
|
+
s.add_runtime_dependency(%q<dm-core>, ["~> 1.0.0.rc3"])
|
85
85
|
s.add_runtime_dependency(%q<fastercsv>, ["~> 1.5.3"])
|
86
86
|
s.add_runtime_dependency(%q<json_pure>, ["~> 1.4.3"])
|
87
|
-
s.add_development_dependency(%q<dm-validations>, ["~> 1.0.0.rc2"])
|
88
|
-
s.add_development_dependency(%q<nokogiri>, ["~> 1.4.1"])
|
89
87
|
s.add_development_dependency(%q<rspec>, ["~> 1.3"])
|
88
|
+
s.add_development_dependency(%q<dm-validations>, ["~> 1.0.0.rc3"])
|
89
|
+
s.add_development_dependency(%q<nokogiri>, ["~> 1.4.1"])
|
90
90
|
else
|
91
|
-
s.add_dependency(%q<dm-core>, ["~> 1.0.0.
|
91
|
+
s.add_dependency(%q<dm-core>, ["~> 1.0.0.rc3"])
|
92
92
|
s.add_dependency(%q<fastercsv>, ["~> 1.5.3"])
|
93
93
|
s.add_dependency(%q<json_pure>, ["~> 1.4.3"])
|
94
|
-
s.add_dependency(%q<dm-validations>, ["~> 1.0.0.rc2"])
|
95
|
-
s.add_dependency(%q<nokogiri>, ["~> 1.4.1"])
|
96
94
|
s.add_dependency(%q<rspec>, ["~> 1.3"])
|
95
|
+
s.add_dependency(%q<dm-validations>, ["~> 1.0.0.rc3"])
|
96
|
+
s.add_dependency(%q<nokogiri>, ["~> 1.4.1"])
|
97
97
|
end
|
98
98
|
else
|
99
|
-
s.add_dependency(%q<dm-core>, ["~> 1.0.0.
|
99
|
+
s.add_dependency(%q<dm-core>, ["~> 1.0.0.rc3"])
|
100
100
|
s.add_dependency(%q<fastercsv>, ["~> 1.5.3"])
|
101
101
|
s.add_dependency(%q<json_pure>, ["~> 1.4.3"])
|
102
|
-
s.add_dependency(%q<dm-validations>, ["~> 1.0.0.rc2"])
|
103
|
-
s.add_dependency(%q<nokogiri>, ["~> 1.4.1"])
|
104
102
|
s.add_dependency(%q<rspec>, ["~> 1.3"])
|
103
|
+
s.add_dependency(%q<dm-validations>, ["~> 1.0.0.rc3"])
|
104
|
+
s.add_dependency(%q<nokogiri>, ["~> 1.4.1"])
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
@@ -9,30 +9,28 @@ module DataMapper
|
|
9
9
|
# @return <String> a JSON representation of the Resource
|
10
10
|
def to_json(*args)
|
11
11
|
options = args.first || {}
|
12
|
+
options = options.to_h if options.respond_to?(:to_h)
|
12
13
|
|
13
14
|
result = {}
|
14
15
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
result[property.name] = __send__(property.name)
|
16
|
+
properties_to_serialize(options).each do |property|
|
17
|
+
property_name = property.name
|
18
|
+
result[property_name] = __send__(property_name)
|
19
19
|
end
|
20
20
|
|
21
21
|
# add methods
|
22
|
-
(options[:methods]
|
23
|
-
|
24
|
-
|
25
|
-
end
|
22
|
+
Array(options[:methods]).each do |method|
|
23
|
+
next unless respond_to?(method)
|
24
|
+
result[method] = __send__(method)
|
26
25
|
end
|
27
26
|
|
28
27
|
# Note: if you want to include a whole other model via relation, use :methods
|
29
28
|
# comments.to_json(:relationships=>{:user=>{:include=>[:first_name],:methods=>[:age]}})
|
30
29
|
# add relationships
|
31
30
|
# TODO: This needs tests and also needs to be ported to #to_xml and #to_yaml
|
32
|
-
(options[:relationships] || {}).each do |
|
33
|
-
|
34
|
-
|
35
|
-
end
|
31
|
+
(options[:relationships] || {}).each do |relationship_name, opts|
|
32
|
+
next unless respond_to?(relationship_name)
|
33
|
+
result[relationship_name] = __send__(relationship_name).to_json(opts.merge(:to_json => false))
|
36
34
|
end
|
37
35
|
|
38
36
|
# default to making JSON
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
1
|
share_examples_for 'A serialization method that also serializes core classes' do
|
4
2
|
# This spec ensures that we don't break any serialization methods attached
|
5
3
|
# to core classes, such as Array
|
@@ -12,7 +10,7 @@ share_examples_for 'A serialization method that also serializes core classes' do
|
|
12
10
|
end
|
13
11
|
|
14
12
|
before(:each) do
|
15
|
-
DataMapper::Model.descendants.each { |model| model.
|
13
|
+
DataMapper::Model.descendants.each { |model| model.destroy! }
|
16
14
|
end
|
17
15
|
|
18
16
|
it 'serializes an array of extended objects' do
|
@@ -55,7 +53,7 @@ share_examples_for 'A serialization method' do
|
|
55
53
|
end
|
56
54
|
|
57
55
|
before(:each) do
|
58
|
-
DataMapper::Model.descendants.each { |model| model.
|
56
|
+
DataMapper::Model.descendants.each { |model| model.destroy! }
|
59
57
|
end
|
60
58
|
|
61
59
|
describe '(serializing single resources)' do
|
@@ -241,7 +239,7 @@ share_examples_for 'A serialization method' do
|
|
241
239
|
[ :default, :alternate ].each do |repository_name|
|
242
240
|
DataMapper.repository(repository_name) do
|
243
241
|
QuanTum::Cat.auto_migrate!
|
244
|
-
QuanTum::Cat.
|
242
|
+
QuanTum::Cat.destroy!
|
245
243
|
end
|
246
244
|
end
|
247
245
|
end
|
data/spec/public/to_csv_spec.rb
CHANGED
@@ -7,6 +7,7 @@ if defined?(::CSV)
|
|
7
7
|
#
|
8
8
|
|
9
9
|
before(:all) do
|
10
|
+
DataMapper.finalize
|
10
11
|
query = DataMapper::Query.new(DataMapper::repository(:default), Cow)
|
11
12
|
|
12
13
|
resources = [
|
@@ -49,8 +50,9 @@ if defined?(::CSV)
|
|
49
50
|
before(:all) do
|
50
51
|
[ :default, :alternate ].each do |repository_name|
|
51
52
|
DataMapper.repository(repository_name) do
|
53
|
+
DataMapper.finalize
|
52
54
|
QuanTum::Cat.auto_migrate!
|
53
|
-
QuanTum::Cat.
|
55
|
+
QuanTum::Cat.destroy!
|
54
56
|
end
|
55
57
|
end
|
56
58
|
end
|
data/spec/public/to_json_spec.rb
CHANGED
data/spec/public/to_xml_spec.rb
CHANGED
data/spec/public/to_yaml_spec.rb
CHANGED
data/spec/rcov.opts
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -5,7 +5,7 @@ require 'dm-validations' # FIXME: must be required before dm-serializer
|
|
5
5
|
require 'dm-serializer'
|
6
6
|
require 'dm-migrations'
|
7
7
|
|
8
|
-
require 'spec/lib/serialization_method_shared_spec'
|
8
|
+
require File.expand_path('spec/lib/serialization_method_shared_spec')
|
9
9
|
|
10
10
|
# require fixture resources
|
11
11
|
SPEC_ROOT = Pathname(__FILE__).dirname.expand_path
|
data/tasks/spec.rake
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dm-serializer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 977940572
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
9
|
- 0
|
10
|
-
-
|
11
|
-
version: 1.0.0.
|
10
|
+
- rc3
|
11
|
+
version: 1.0.0.rc3
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- Guy van den Berg
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-05-
|
19
|
+
date: 2010-05-27 00:00:00 -07:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -27,13 +27,13 @@ dependencies:
|
|
27
27
|
requirements:
|
28
28
|
- - ~>
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
hash:
|
30
|
+
hash: 977940572
|
31
31
|
segments:
|
32
32
|
- 1
|
33
33
|
- 0
|
34
34
|
- 0
|
35
|
-
-
|
36
|
-
version: 1.0.0.
|
35
|
+
- rc3
|
36
|
+
version: 1.0.0.rc3
|
37
37
|
type: :runtime
|
38
38
|
version_requirements: *id001
|
39
39
|
- !ruby/object:Gem::Dependency
|
@@ -69,51 +69,51 @@ dependencies:
|
|
69
69
|
type: :runtime
|
70
70
|
version_requirements: *id003
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
|
-
name:
|
72
|
+
name: rspec
|
73
73
|
prerelease: false
|
74
74
|
requirement: &id004 !ruby/object:Gem::Requirement
|
75
75
|
none: false
|
76
76
|
requirements:
|
77
77
|
- - ~>
|
78
78
|
- !ruby/object:Gem::Version
|
79
|
-
hash:
|
79
|
+
hash: 9
|
80
80
|
segments:
|
81
81
|
- 1
|
82
|
-
-
|
83
|
-
|
84
|
-
- rc2
|
85
|
-
version: 1.0.0.rc2
|
82
|
+
- 3
|
83
|
+
version: "1.3"
|
86
84
|
type: :development
|
87
85
|
version_requirements: *id004
|
88
86
|
- !ruby/object:Gem::Dependency
|
89
|
-
name:
|
87
|
+
name: dm-validations
|
90
88
|
prerelease: false
|
91
89
|
requirement: &id005 !ruby/object:Gem::Requirement
|
92
90
|
none: false
|
93
91
|
requirements:
|
94
92
|
- - ~>
|
95
93
|
- !ruby/object:Gem::Version
|
96
|
-
hash:
|
94
|
+
hash: 977940572
|
97
95
|
segments:
|
98
96
|
- 1
|
99
|
-
-
|
100
|
-
-
|
101
|
-
|
97
|
+
- 0
|
98
|
+
- 0
|
99
|
+
- rc3
|
100
|
+
version: 1.0.0.rc3
|
102
101
|
type: :development
|
103
102
|
version_requirements: *id005
|
104
103
|
- !ruby/object:Gem::Dependency
|
105
|
-
name:
|
104
|
+
name: nokogiri
|
106
105
|
prerelease: false
|
107
106
|
requirement: &id006 !ruby/object:Gem::Requirement
|
108
107
|
none: false
|
109
108
|
requirements:
|
110
109
|
- - ~>
|
111
110
|
- !ruby/object:Gem::Version
|
112
|
-
hash:
|
111
|
+
hash: 5
|
113
112
|
segments:
|
114
113
|
- 1
|
115
|
-
-
|
116
|
-
|
114
|
+
- 4
|
115
|
+
- 1
|
116
|
+
version: 1.4.1
|
117
117
|
type: :development
|
118
118
|
version_requirements: *id006
|
119
119
|
description: DataMapper plugin for serializing Resources and Collections
|