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 CHANGED
@@ -71,7 +71,7 @@
71
71
  source 'http://rubygems.org'
72
72
 
73
73
  DATAMAPPER = 'git://github.com/datamapper'
74
- DM_VERSION = '~> 1.0.0.rc2'
74
+ DM_VERSION = '~> 1.0.0.rc3'
75
75
 
76
76
  group :runtime do # Runtime dependencies (as in the gemspec)
77
77
 
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009 Guy van den Berg
1
+ Copyright (c) 2010 Guy van den Berg
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
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/dm-serializer'
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.rc2'
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.rc2
1
+ 1.0.0.rc3
@@ -2,7 +2,7 @@ require "rubygems"
2
2
  require 'pathname'
3
3
  require 'better-benchmark'
4
4
 
5
- gem 'dm-core', '1.0.0.rc2'
5
+ gem 'dm-core', '1.0.0.rc3'
6
6
  require 'dm-core'
7
7
 
8
8
  spec_dir_path = Pathname(__FILE__).dirname.expand_path
@@ -1,7 +1,7 @@
1
1
  require "rubygems"
2
2
  require 'pathname'
3
3
 
4
- gem 'dm-core', '1.0.0.rc2'
4
+ gem 'dm-core', '1.0.0.rc3'
5
5
  require 'dm-core'
6
6
 
7
7
  spec_dir_path = Pathname(__FILE__).dirname.expand_path
@@ -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.rc2"
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-19}
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.rc2"])
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.rc2"])
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.rc2"])
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
- propset = properties_to_serialize(options)
16
-
17
- propset.each do |property|
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] || []).each do |meth|
23
- if self.respond_to?(meth)
24
- result[meth] = __send__(meth)
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 |rel,opts|
33
- if self.respond_to?(rel)
34
- result[rel] = send(rel).to_json(opts.merge(:to_json => false))
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.all.destroy! }
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.all.destroy! }
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.all.destroy!
242
+ QuanTum::Cat.destroy!
245
243
  end
246
244
  end
247
245
  end
@@ -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.all.destroy!
55
+ QuanTum::Cat.destroy!
54
56
  end
55
57
  end
56
58
  end
@@ -6,6 +6,7 @@ describe DataMapper::Serialize, '#to_json' do
6
6
  #
7
7
 
8
8
  before(:all) do
9
+ DataMapper.finalize
9
10
  DataMapper.auto_migrate!
10
11
  query = DataMapper::Query.new(DataMapper::repository(:default), Cow)
11
12
 
@@ -18,6 +18,7 @@ require 'spec_helper'
18
18
  #
19
19
 
20
20
  before(:all) do
21
+ DataMapper.finalize
21
22
  @harness = Class.new(SerializerTestHarness) do
22
23
  def method_name
23
24
  :to_xml
@@ -6,6 +6,7 @@ describe DataMapper::Serialize, '#to_yaml' do
6
6
  #
7
7
 
8
8
  before(:all) do
9
+ DataMapper.finalize
9
10
  @harness = Class.new(SerializerTestHarness) do
10
11
  def method_name
11
12
  :to_yaml
@@ -1,4 +1,4 @@
1
- --exclude "spec"
1
+ --exclude "spec,^/"
2
2
  --sort coverage
3
3
  --callsites
4
4
  --xrefs
@@ -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
@@ -35,4 +35,7 @@ rescue LoadError
35
35
  end
36
36
  end
37
37
 
38
+ task :spec => :check_dependencies
39
+ task :rcov => :check_dependencies
40
+
38
41
  task :default => :spec
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: 977940575
4
+ hash: 977940572
5
5
  prerelease: true
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
9
  - 0
10
- - rc2
11
- version: 1.0.0.rc2
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 00:00:00 -07:00
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: 977940575
30
+ hash: 977940572
31
31
  segments:
32
32
  - 1
33
33
  - 0
34
34
  - 0
35
- - rc2
36
- version: 1.0.0.rc2
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: dm-validations
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: 977940575
79
+ hash: 9
80
80
  segments:
81
81
  - 1
82
- - 0
83
- - 0
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: nokogiri
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: 5
94
+ hash: 977940572
97
95
  segments:
98
96
  - 1
99
- - 4
100
- - 1
101
- version: 1.4.1
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: rspec
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: 9
111
+ hash: 5
113
112
  segments:
114
113
  - 1
115
- - 3
116
- version: "1.3"
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