dm-serializer 1.0.0.rc2 → 1.0.0.rc3
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/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
|