dm-serializer 0.9.2 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +1 -0
- data/Manifest.txt +20 -0
- data/{README → README.txt} +1 -2
- data/Rakefile +21 -28
- data/autotest/discover.rb +3 -0
- data/autotest/dmserializer_rspec.rb +108 -0
- data/lib/dm-serializer/version.rb +5 -0
- data/lib/dm-serializer.rb +34 -20
- data/spec/fixtures/cow.rb +4 -0
- data/spec/fixtures/quatum_cat.rb +11 -0
- data/spec/spec_helper.rb +3 -2
- data/spec/unit/to_csv_spec.rb +14 -0
- data/spec/unit/to_json_spec.rb +22 -1
- data/spec/unit/to_xml_spec.rb +34 -3
- data/spec/unit/to_yaml_spec.rb +14 -0
- metadata +33 -14
data/History.txt
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
|
data/Manifest.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
History.txt
|
2
|
+
LICENSE
|
3
|
+
Manifest.txt
|
4
|
+
README.txt
|
5
|
+
Rakefile
|
6
|
+
TODO
|
7
|
+
autotest/discover.rb
|
8
|
+
autotest/dmserializer_rspec.rb
|
9
|
+
lib/dm-serializer.rb
|
10
|
+
lib/dm-serializer/version.rb
|
11
|
+
spec/fixtures/cow.rb
|
12
|
+
spec/fixtures/planet.rb
|
13
|
+
spec/fixtures/quatum_cat.rb
|
14
|
+
spec/spec.opts
|
15
|
+
spec/spec_helper.rb
|
16
|
+
spec/unit/serializer_spec.rb
|
17
|
+
spec/unit/to_csv_spec.rb
|
18
|
+
spec/unit/to_json_spec.rb
|
19
|
+
spec/unit/to_xml_spec.rb
|
20
|
+
spec/unit/to_yaml_spec.rb
|
data/{README → README.txt}
RENAMED
data/Rakefile
CHANGED
@@ -1,51 +1,44 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'spec'
|
3
|
-
require 'rake/clean'
|
4
|
-
require 'rake/gempackagetask'
|
5
3
|
require 'spec/rake/spectask'
|
6
4
|
require 'pathname'
|
7
5
|
|
8
|
-
|
6
|
+
ROOT = Pathname(__FILE__).dirname.expand_path
|
7
|
+
require ROOT + 'lib/dm-serializer/version'
|
9
8
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
s.add_dependency('dm-core', "=#{s.version}")
|
24
|
-
end
|
9
|
+
AUTHOR = "Guy van den Berg"
|
10
|
+
EMAIL = "vandenberg.guy@gmail.com"
|
11
|
+
GEM_NAME = "dm-serializer"
|
12
|
+
GEM_VERSION = DataMapper::Serializer::VERSION
|
13
|
+
GEM_DEPENDENCIES = [["dm-core", GEM_VERSION]]
|
14
|
+
GEM_CLEAN = ["log", "pkg", "coverage"]
|
15
|
+
GEM_EXTRAS = { :has_rdoc => true, :extra_rdoc_files => %w[ README.txt LICENSE TODO ] }
|
16
|
+
|
17
|
+
PROJECT_NAME = "datamapper"
|
18
|
+
PROJECT_URL = "http://github.com/sam/dm-more/tree/master/dm-serializer"
|
19
|
+
PROJECT_DESCRIPTION = PROJECT_SUMMARY = "DataMapper plugin for serializing DataMapper objects"
|
20
|
+
|
21
|
+
require ROOT.parent + 'tasks/hoe'
|
25
22
|
|
26
23
|
task :default => [ :spec ]
|
27
24
|
|
28
25
|
WIN32 = (RUBY_PLATFORM =~ /win32|mingw|cygwin/) rescue nil
|
29
26
|
SUDO = WIN32 ? '' : ('sudo' unless ENV['SUDOLESS'])
|
30
27
|
|
31
|
-
|
32
|
-
pkg.gem_spec = spec
|
33
|
-
end
|
34
|
-
|
35
|
-
desc "Install #{spec.name} #{spec.version} (default ruby)"
|
28
|
+
desc "Install #{GEM_NAME} #{GEM_VERSION} (default ruby)"
|
36
29
|
task :install => [ :package ] do
|
37
|
-
sh "#{SUDO} gem install --local pkg/#{
|
30
|
+
sh "#{SUDO} gem install --local pkg/#{GEM_NAME}-#{GEM_VERSION} --no-update-sources", :verbose => false
|
38
31
|
end
|
39
32
|
|
40
|
-
desc "Uninstall #{
|
33
|
+
desc "Uninstall #{GEM_NAME} #{GEM_VERSION} (default ruby)"
|
41
34
|
task :uninstall => [ :clobber ] do
|
42
|
-
sh "#{SUDO} gem uninstall #{
|
35
|
+
sh "#{SUDO} gem uninstall #{GEM_NAME} -v#{GEM_VERSION} -I -x", :verbose => false
|
43
36
|
end
|
44
37
|
|
45
38
|
namespace :jruby do
|
46
|
-
desc "Install #{
|
39
|
+
desc "Install #{GEM_NAME} #{GEM_VERSION} with JRuby"
|
47
40
|
task :install => [ :package ] do
|
48
|
-
sh %{#{SUDO} jruby -S gem install --local pkg/#{
|
41
|
+
sh %{#{SUDO} jruby -S gem install --local pkg/#{GEM_NAME}-#{GEM_VERSION} --no-update-sources}, :verbose => false
|
49
42
|
end
|
50
43
|
end
|
51
44
|
|
@@ -0,0 +1,108 @@
|
|
1
|
+
require 'autotest'
|
2
|
+
|
3
|
+
$VERBOSE = false
|
4
|
+
|
5
|
+
class RspecCommandError < StandardError; end
|
6
|
+
|
7
|
+
# Autotest has no full-blown snake_case to CamelCase
|
8
|
+
class Autotest::DmserializerRspec < Autotest
|
9
|
+
WHOLE_SUITE_REGEXP = %r{^spec/(unit|integration)/.*_spec\.rb}
|
10
|
+
|
11
|
+
Autotest.add_hook :initialize do |at|
|
12
|
+
at.clear_mappings
|
13
|
+
at.add_exception(/\.git|TAGS/)
|
14
|
+
|
15
|
+
# Updating a spec runs that spec.
|
16
|
+
at.add_mapping(%r{^spec/.*_spec\.rb$}) do |filename, _|
|
17
|
+
filename
|
18
|
+
end
|
19
|
+
|
20
|
+
# Updating spec helper runs the whole suite.
|
21
|
+
at.add_mapping(%r{^spec/spec_helper\.rb}) do |_, m|
|
22
|
+
at.files_matching WHOLE_SUITE_REGEXP
|
23
|
+
end
|
24
|
+
|
25
|
+
# Updating of library file runs the whole suite.
|
26
|
+
at.add_mapping(%r{^lib/.*\.rb}) do |_, m|
|
27
|
+
at.files_matching WHOLE_SUITE_REGEXP
|
28
|
+
end
|
29
|
+
|
30
|
+
# Updating of fixture resources runs the whole suite.
|
31
|
+
at.add_mapping(%r{^spec/fixtures/.*\.rb}) do |_, m|
|
32
|
+
at.files_matching WHOLE_SUITE_REGEXP
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
def initialize(kernel = Kernel, separator = File::SEPARATOR, alt_separator = File::ALT_SEPARATOR) # :nodoc:
|
38
|
+
super() # need parens so that Ruby doesn't pass our args
|
39
|
+
# to the superclass version which takes none..
|
40
|
+
|
41
|
+
@kernel, @separator, @alt_separator = kernel, separator, alt_separator
|
42
|
+
@spec_command = spec_command
|
43
|
+
end
|
44
|
+
|
45
|
+
attr_accessor :failures
|
46
|
+
|
47
|
+
def failed_results(results)
|
48
|
+
results.scan(/^\d+\)\n(?:\e\[\d*m)?(?:.*?Error in )?'([^\n]*)'(?: FAILED)?(?:\e\[\d*m)?\n(.*?)\n\n/m)
|
49
|
+
end
|
50
|
+
|
51
|
+
def handle_results(results)
|
52
|
+
@failures = failed_results(results)
|
53
|
+
@files_to_test = consolidate_failures @failures
|
54
|
+
unless $TESTING
|
55
|
+
if @files_to_test.empty?
|
56
|
+
hook :green
|
57
|
+
else
|
58
|
+
hook :red
|
59
|
+
end
|
60
|
+
end
|
61
|
+
@tainted = true unless @files_to_test.empty?
|
62
|
+
end
|
63
|
+
|
64
|
+
def consolidate_failures(failed)
|
65
|
+
filters = Hash.new { |h,k| h[k] = [] }
|
66
|
+
failed.each do |spec, failed_trace|
|
67
|
+
find_files.keys.select { |f| f =~ /spec\// }.each do |f|
|
68
|
+
if failed_trace =~ Regexp.new(f)
|
69
|
+
filters[f] << spec
|
70
|
+
break
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
filters
|
75
|
+
end
|
76
|
+
|
77
|
+
def make_test_cmd(files_to_test)
|
78
|
+
"#{ruby} -S #{@spec_command} #{test_cmd_options} #{files_to_test.keys.flatten.join(' ')}"
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_cmd_options
|
82
|
+
# '-O specs/spec.opts' if File.exist?('specs/spec.opts')
|
83
|
+
end
|
84
|
+
|
85
|
+
# Finds the proper spec command to use. Precendence is set in the
|
86
|
+
# lazily-evaluated method spec_commands. Alias + Override that in
|
87
|
+
# ~/.autotest to provide a different spec command then the default
|
88
|
+
# paths provided.
|
89
|
+
def spec_command(separator=File::ALT_SEPARATOR)
|
90
|
+
unless defined?(@spec_command)
|
91
|
+
@spec_command = spec_commands.find { |cmd| File.exists?(cmd) }
|
92
|
+
|
93
|
+
raise RspecCommandError, "No spec command could be found" unless @spec_command
|
94
|
+
|
95
|
+
@spec_command.gsub!(File::SEPARATOR, separator) if separator
|
96
|
+
end
|
97
|
+
@spec_command
|
98
|
+
end
|
99
|
+
|
100
|
+
# Autotest will look for spec commands in the following
|
101
|
+
# locations, in this order:
|
102
|
+
#
|
103
|
+
# * default spec bin/loader installed in Rubygems
|
104
|
+
# * any spec command found in PATH
|
105
|
+
def spec_commands
|
106
|
+
[File.join(Config::CONFIG['bindir'], 'spec'), 'spec']
|
107
|
+
end
|
108
|
+
end
|
data/lib/dm-serializer.rb
CHANGED
@@ -23,20 +23,22 @@ module DataMapper
|
|
23
23
|
fields = []
|
24
24
|
|
25
25
|
# FIXME: this should go into bunch of protected methods shared with other serialization methods
|
26
|
-
only_properties = options[:only]
|
27
|
-
excluded_properties = options[:exclude]
|
26
|
+
only_properties = Array(options[:only])
|
27
|
+
excluded_properties = Array(options[:exclude])
|
28
28
|
exclude_read_only = options[:without_read_only_attributes] || false
|
29
29
|
|
30
|
-
propset = self.class.properties(repository.name)
|
30
|
+
propset = self.class.properties(repository.name).reject do |p|
|
31
|
+
next if only_properties.include? p.name
|
32
|
+
excluded_properties.include?(p.name) || !(only_properties.empty? || only_properties.include?(p.name))
|
33
|
+
end
|
31
34
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
fields << "#{property.name.to_json}: #{send(property.getter).to_json}" unless excluded_properties.include?(property.name.to_sym)
|
35
|
+
fields += propset.map do |property|
|
36
|
+
"#{property.name.to_json}: #{send(property.getter).to_json}"
|
37
|
+
end
|
38
|
+
|
39
|
+
if self.respond_to?(:serialize_properties)
|
40
|
+
self.serialize_properties.each do |k,v|
|
41
|
+
fields << "#{k.to_json}: #{v.to_json}"
|
40
42
|
end
|
41
43
|
end
|
42
44
|
|
@@ -75,6 +77,7 @@ module DataMapper
|
|
75
77
|
#
|
76
78
|
# @return <REXML::Document> an XML representation of this Resource
|
77
79
|
def to_xml(opts = {})
|
80
|
+
|
78
81
|
to_xml_document(opts).to_s
|
79
82
|
end
|
80
83
|
|
@@ -108,8 +111,8 @@ module DataMapper
|
|
108
111
|
# Return a REXML::Document representing this Resource
|
109
112
|
#
|
110
113
|
# @return <REXML::Document> an XML representation of this Resource
|
111
|
-
def to_xml_document(opts={})
|
112
|
-
doc
|
114
|
+
def to_xml_document(opts={}, doc=nil)
|
115
|
+
doc ||= REXML::Document.new
|
113
116
|
root = doc.add_element(xml_element_name)
|
114
117
|
|
115
118
|
#TODO old code base was converting single quote to double quote on attribs
|
@@ -117,7 +120,7 @@ module DataMapper
|
|
117
120
|
self.class.properties(repository.name).each do |property|
|
118
121
|
value = send(property.name)
|
119
122
|
node = root.add_element(property.name.to_s)
|
120
|
-
|
123
|
+
unless property.type == String
|
121
124
|
node.attributes["type"] = property.type.to_s.downcase
|
122
125
|
end
|
123
126
|
node << REXML::Text.new(value.to_s) unless value.nil?
|
@@ -140,12 +143,8 @@ module DataMapper
|
|
140
143
|
"[" << map {|e| e.to_json(opts)}.join(",") << "]"
|
141
144
|
end
|
142
145
|
|
143
|
-
def to_xml
|
144
|
-
|
145
|
-
each do |item|
|
146
|
-
result << item.to_xml + "\n"
|
147
|
-
end
|
148
|
-
result
|
146
|
+
def to_xml(opts = {})
|
147
|
+
to_xml_document(opts).to_s
|
149
148
|
end
|
150
149
|
|
151
150
|
def to_csv
|
@@ -155,6 +154,21 @@ module DataMapper
|
|
155
154
|
end
|
156
155
|
result
|
157
156
|
end
|
157
|
+
|
158
|
+
protected
|
159
|
+
def xml_element_name
|
160
|
+
Extlib::Inflection.tableize(self.model.to_s)
|
161
|
+
end
|
162
|
+
|
163
|
+
def to_xml_document(opts={})
|
164
|
+
doc = REXML::Document.new
|
165
|
+
root = doc.add_element(xml_element_name)
|
166
|
+
root.attributes["type"] = 'array'
|
167
|
+
each do |item|
|
168
|
+
item.send(:to_xml_document, opts, root)
|
169
|
+
end
|
170
|
+
doc
|
171
|
+
end
|
158
172
|
end
|
159
173
|
|
160
174
|
end # module DataMapper
|
data/spec/fixtures/cow.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'pathname'
|
3
3
|
|
4
|
-
gem 'dm-core', '=0.9.
|
4
|
+
gem 'dm-core', '=0.9.3'
|
5
5
|
require 'dm-core'
|
6
6
|
|
7
7
|
spec_dir_path = Pathname(__FILE__).dirname.expand_path
|
@@ -13,10 +13,11 @@ def load_driver(name, default_uri)
|
|
13
13
|
lib = "do_#{name}"
|
14
14
|
|
15
15
|
begin
|
16
|
-
gem lib, '=0.9.
|
16
|
+
gem lib, '=0.9.3'
|
17
17
|
require lib
|
18
18
|
DataMapper.setup(name, ENV["#{name.to_s.upcase}_SPEC_URI"] || default_uri)
|
19
19
|
DataMapper::Repository.adapters[:default] = DataMapper::Repository.adapters[name]
|
20
|
+
DataMapper::Repository.adapters[:alternate] = DataMapper::Repository.adapters[name]
|
20
21
|
true
|
21
22
|
rescue Gem::LoadError => e
|
22
23
|
warn "Could not load #{lib}: #{e}"
|
data/spec/unit/to_csv_spec.rb
CHANGED
@@ -31,4 +31,18 @@ describe DataMapper::Serialize, '#to_csv' do
|
|
31
31
|
"1,2,Betsy,Jersey\n" +
|
32
32
|
"10,20,Berta,Guernsey\n"
|
33
33
|
end
|
34
|
+
|
35
|
+
describe "multiple repositories" do
|
36
|
+
before(:all) do
|
37
|
+
QuantumCat.auto_migrate!
|
38
|
+
repository(:alternate){QuantumCat.auto_migrate!}
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should use the repsoitory for the model" do
|
42
|
+
gerry = QuantumCat.create(:name => "gerry")
|
43
|
+
george = repository(:alternate){QuantumCat.create(:name => "george", :is_dead => false)}
|
44
|
+
gerry.to_csv.should_not match(/false/)
|
45
|
+
george.to_csv.should match(/false/)
|
46
|
+
end
|
47
|
+
end
|
34
48
|
end
|
data/spec/unit/to_json_spec.rb
CHANGED
@@ -51,6 +51,13 @@ describe DataMapper::Serialize, '#to_json' do
|
|
51
51
|
berta["breed"].should == "Guernsey"
|
52
52
|
end
|
53
53
|
|
54
|
+
it "handles extra properties" do
|
55
|
+
deserialized_hash = JSON.parse(Cow.new(:id => 1, :name => "Harry", :breed => "Angus").to_json)
|
56
|
+
|
57
|
+
deserialized_hash["extra"].should == "Extra"
|
58
|
+
deserialized_hash["another"].should == 42
|
59
|
+
end
|
60
|
+
|
54
61
|
it "handles empty collections just fine" do
|
55
62
|
deserialized_collection = JSON.parse(@empty_collection.to_json)
|
56
63
|
deserialized_collection.should be_empty
|
@@ -99,7 +106,21 @@ describe DataMapper::Serialize, '#to_json' do
|
|
99
106
|
deserialized_hash["name"].should be(nil)
|
100
107
|
deserialized_hash["aphelion"].should == 249_209_300.4
|
101
108
|
end
|
102
|
-
|
109
|
+
|
110
|
+
describe "multiple repositories" do
|
111
|
+
before(:all) do
|
112
|
+
QuantumCat.auto_migrate!
|
113
|
+
repository(:alternate){QuantumCat.auto_migrate!}
|
114
|
+
end
|
115
|
+
|
116
|
+
it "should use the repsoitory for the model" do
|
117
|
+
gerry = QuantumCat.create(:name => "gerry")
|
118
|
+
george = repository(:alternate){QuantumCat.create(:name => "george", :is_dead => false)}
|
119
|
+
gerry.to_json.should_not match(/is_dead/)
|
120
|
+
george.to_json.should match(/is_dead/)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
103
124
|
it "supports :include option for one level depth"
|
104
125
|
|
105
126
|
it "supports :include option for more than one level depth"
|
data/spec/unit/to_xml_spec.rb
CHANGED
@@ -8,6 +8,9 @@ describe DataMapper::Serialize, '#to_xml' do
|
|
8
8
|
|
9
9
|
before(:all) do
|
10
10
|
query = DataMapper::Query.new(DataMapper::repository(:default), Cow)
|
11
|
+
|
12
|
+
@time = DateTime.now
|
13
|
+
|
11
14
|
|
12
15
|
@collection = DataMapper::Collection.new(query) do |c|
|
13
16
|
c.load([1, 2, 'Betsy', 'Jersey'])
|
@@ -35,8 +38,36 @@ describe DataMapper::Serialize, '#to_xml' do
|
|
35
38
|
end
|
36
39
|
|
37
40
|
it "should serialize a collection to XML" do
|
38
|
-
@collection.to_xml.
|
39
|
-
|
40
|
-
|
41
|
+
@collection.to_xml.should == <<-EOS.compress_lines(false)
|
42
|
+
<cows type='array'>
|
43
|
+
<cow>
|
44
|
+
<id type='integer'>1</id>
|
45
|
+
<composite type='integer'>2</composite>
|
46
|
+
<name>Betsy</name>
|
47
|
+
<breed>Jersey</breed>
|
48
|
+
</cow>
|
49
|
+
<cow>
|
50
|
+
<id type='integer'>10</id>
|
51
|
+
<composite type='integer'>20</composite>
|
52
|
+
<name>Berta</name>
|
53
|
+
<breed>Guernsey</breed>
|
54
|
+
</cow>
|
55
|
+
</cows>
|
56
|
+
EOS
|
41
57
|
end
|
58
|
+
|
59
|
+
describe "multiple repositories" do
|
60
|
+
before(:all) do
|
61
|
+
QuantumCat.auto_migrate!
|
62
|
+
repository(:alternate){QuantumCat.auto_migrate!}
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should use the repsoitory for the model" do
|
66
|
+
gerry = QuantumCat.create(:name => "gerry")
|
67
|
+
george = repository(:alternate){QuantumCat.create(:name => "george", :is_dead => false)}
|
68
|
+
gerry.to_xml.should_not match(/is_dead/)
|
69
|
+
george.to_xml.should match(/is_dead/)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
42
73
|
end
|
data/spec/unit/to_yaml_spec.rb
CHANGED
@@ -58,5 +58,19 @@ describe DataMapper::Serialize, '#to_yaml' do
|
|
58
58
|
it "handles empty collections just fine" do
|
59
59
|
YAML.load(@empty_collection.to_yaml).should be_empty
|
60
60
|
end
|
61
|
+
|
62
|
+
describe "multiple repositories" do
|
63
|
+
before(:all) do
|
64
|
+
QuantumCat.auto_migrate!
|
65
|
+
repository(:alternate){QuantumCat.auto_migrate!}
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should use the repsoitory for the model" do
|
69
|
+
gerry = QuantumCat.create(:name => "gerry")
|
70
|
+
george = repository(:alternate){QuantumCat.create(:name => "george", :is_dead => false)}
|
71
|
+
gerry.to_yaml.should_not match(/is_dead/)
|
72
|
+
george.to_yaml.should match(/is_dead/)
|
73
|
+
end
|
74
|
+
end
|
61
75
|
|
62
76
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dm-serializer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Guy van den Berg
|
@@ -9,48 +9,67 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-07-24 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: dm-core
|
17
|
+
type: :runtime
|
17
18
|
version_requirement:
|
18
19
|
version_requirements: !ruby/object:Gem::Requirement
|
19
20
|
requirements:
|
20
21
|
- - "="
|
21
22
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.9.
|
23
|
+
version: 0.9.3
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: hoe
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.7.0
|
23
34
|
version:
|
24
35
|
description: DataMapper plugin for serializing DataMapper objects
|
25
|
-
email:
|
36
|
+
email:
|
37
|
+
- vandenberg.guy@gmail.com
|
26
38
|
executables: []
|
27
39
|
|
28
40
|
extensions: []
|
29
41
|
|
30
42
|
extra_rdoc_files:
|
31
|
-
- README
|
43
|
+
- README.txt
|
32
44
|
- LICENSE
|
33
45
|
- TODO
|
34
46
|
files:
|
47
|
+
- History.txt
|
48
|
+
- LICENSE
|
49
|
+
- Manifest.txt
|
50
|
+
- README.txt
|
51
|
+
- Rakefile
|
52
|
+
- TODO
|
53
|
+
- autotest/discover.rb
|
54
|
+
- autotest/dmserializer_rspec.rb
|
35
55
|
- lib/dm-serializer.rb
|
56
|
+
- lib/dm-serializer/version.rb
|
36
57
|
- spec/fixtures/cow.rb
|
37
58
|
- spec/fixtures/planet.rb
|
59
|
+
- spec/fixtures/quatum_cat.rb
|
60
|
+
- spec/spec.opts
|
38
61
|
- spec/spec_helper.rb
|
39
62
|
- spec/unit/serializer_spec.rb
|
40
63
|
- spec/unit/to_csv_spec.rb
|
41
64
|
- spec/unit/to_json_spec.rb
|
42
65
|
- spec/unit/to_xml_spec.rb
|
43
66
|
- spec/unit/to_yaml_spec.rb
|
44
|
-
- spec/spec.opts
|
45
|
-
- Rakefile
|
46
|
-
- README
|
47
|
-
- LICENSE
|
48
|
-
- TODO
|
49
67
|
has_rdoc: true
|
50
68
|
homepage: http://github.com/sam/dm-more/tree/master/dm-serializer
|
51
69
|
post_install_message:
|
52
|
-
rdoc_options:
|
53
|
-
|
70
|
+
rdoc_options:
|
71
|
+
- --main
|
72
|
+
- README.txt
|
54
73
|
require_paths:
|
55
74
|
- lib
|
56
75
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -67,8 +86,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
67
86
|
version:
|
68
87
|
requirements: []
|
69
88
|
|
70
|
-
rubyforge_project:
|
71
|
-
rubygems_version: 1.0
|
89
|
+
rubyforge_project: datamapper
|
90
|
+
rubygems_version: 1.2.0
|
72
91
|
signing_key:
|
73
92
|
specification_version: 2
|
74
93
|
summary: DataMapper plugin for serializing DataMapper objects
|