ardm-serializer 1.2.2
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.
- checksums.yaml +7 -0
- data/.gitignore +35 -0
- data/.travis.yml +11 -0
- data/Gemfile +81 -0
- data/LICENSE +20 -0
- data/README.rdoc +64 -0
- data/Rakefile +4 -0
- data/ardm-serializer.gemspec +28 -0
- data/benchmarks/to_json.rb +137 -0
- data/benchmarks/to_xml.rb +89 -0
- data/lib/ardm-serializer.rb +1 -0
- data/lib/dm-serializer.rb +14 -0
- data/lib/dm-serializer/common.rb +28 -0
- data/lib/dm-serializer/to_csv.rb +71 -0
- data/lib/dm-serializer/to_json.rb +103 -0
- data/lib/dm-serializer/to_xml.rb +126 -0
- data/lib/dm-serializer/to_yaml.rb +160 -0
- data/lib/dm-serializer/version.rb +5 -0
- data/lib/dm-serializer/xml.rb +56 -0
- data/lib/dm-serializer/xml/libxml.rb +44 -0
- data/lib/dm-serializer/xml/nokogiri.rb +44 -0
- data/lib/dm-serializer/xml/rexml.rb +36 -0
- data/spec/fixtures/cow.rb +11 -0
- data/spec/fixtures/planet.rb +46 -0
- data/spec/fixtures/quan_tum_cat.rb +15 -0
- data/spec/fixtures/vehicle.rb +14 -0
- data/spec/lib/serialization_method_shared_spec.rb +290 -0
- data/spec/public/serializer_spec.rb +7 -0
- data/spec/public/to_csv_spec.rb +72 -0
- data/spec/public/to_json_spec.rb +75 -0
- data/spec/public/to_xml_spec.rb +110 -0
- data/spec/public/to_yaml_spec.rb +59 -0
- data/spec/rcov.opts +6 -0
- data/spec/spec.opts +4 -0
- data/spec/spec_helper.rb +26 -0
- data/tasks/spec.rake +38 -0
- data/tasks/yard.rake +9 -0
- data/tasks/yardstick.rake +19 -0
- metadata +185 -0
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
if defined?(::CSV)
|
4
|
+
describe DataMapper::Serialize, '#to_csv' do
|
5
|
+
#
|
6
|
+
# ==== blah, it's CSV
|
7
|
+
#
|
8
|
+
|
9
|
+
before(:all) do
|
10
|
+
DataMapper.finalize
|
11
|
+
query = DataMapper::Query.new(DataMapper::repository(:default), Cow)
|
12
|
+
|
13
|
+
resources = [
|
14
|
+
{:id => 1, :composite => 2, :name => 'Betsy', :breed => 'Jersey'},
|
15
|
+
{:id => 10, :composite => 20, :name => 'Berta', :breed => 'Guernsey'}
|
16
|
+
]
|
17
|
+
|
18
|
+
@collection = DataMapper::Collection.new(query, resources)
|
19
|
+
|
20
|
+
@empty_collection = DataMapper::Collection.new(query)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should serialize a resource to CSV" do
|
24
|
+
peter = Cow.new
|
25
|
+
peter.id = 44
|
26
|
+
peter.composite = 344
|
27
|
+
peter.name = 'Peter'
|
28
|
+
peter.breed = 'Long Horn'
|
29
|
+
|
30
|
+
peter.to_csv.chomp.split(',')[0..3].should == ['44','344','Peter','Long Horn']
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should serialize a collection to CSV" do
|
34
|
+
result = @collection.to_csv.gsub(/[[:space:]]+\n/, "\n")
|
35
|
+
result.split("\n")[0].split(',')[0..3].should == ['1','2','Betsy','Jersey']
|
36
|
+
result.split("\n")[1].split(',')[0..3].should == ['10','20','Berta','Guernsey']
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should integrate with dm-validations by providing one line per error' do
|
40
|
+
planet = Planet.create(:name => 'a')
|
41
|
+
result = planet.errors.to_csv.gsub(/[[:space:]]+\n/, "\n").split("\n")
|
42
|
+
result.should include("name,#{planet.errors[:name][0]}")
|
43
|
+
result.should include("solar_system_id,#{planet.errors[:solar_system_id][0]}")
|
44
|
+
result.length.should == 2
|
45
|
+
end
|
46
|
+
|
47
|
+
with_alternate_adapter do
|
48
|
+
|
49
|
+
describe "multiple repositories" do
|
50
|
+
before(:all) do
|
51
|
+
[ :default, :alternate ].each do |repository_name|
|
52
|
+
DataMapper.repository(repository_name) do
|
53
|
+
DataMapper.finalize
|
54
|
+
QuanTum::Cat.auto_migrate!
|
55
|
+
QuanTum::Cat.destroy!
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should use the repsoitory for the model" do
|
61
|
+
gerry = QuanTum::Cat.create(:name => "gerry")
|
62
|
+
george = DataMapper.repository(:alternate){ QuanTum::Cat.create(:name => "george", :is_dead => false) }
|
63
|
+
gerry.to_csv.should_not match(/false/)
|
64
|
+
george.to_csv.should match(/false/)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
end
|
70
|
+
else
|
71
|
+
warn "[WARNING] Cannot require 'faster_csv' or 'csv', not running #to_csv specs"
|
72
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe DataMapper::Serializer, '#to_json' do
|
4
|
+
#
|
5
|
+
# ==== ajaxy JSON
|
6
|
+
#
|
7
|
+
|
8
|
+
before(:all) do
|
9
|
+
DataMapper.finalize
|
10
|
+
DataMapper.auto_migrate!
|
11
|
+
query = DataMapper::Query.new(DataMapper::repository(:default), Cow)
|
12
|
+
|
13
|
+
keys = %w[ id composite name breed ]
|
14
|
+
|
15
|
+
resources = [
|
16
|
+
Hash[ keys.zip([ 1, 2, 'Betsy', 'Jersey' ]) ],
|
17
|
+
Hash[ keys.zip([ 10, 20, 'Berta', 'Guernsey' ]) ],
|
18
|
+
]
|
19
|
+
|
20
|
+
@collection = DataMapper::Collection.new(query, query.model.load(resources, query))
|
21
|
+
|
22
|
+
@harness = Class.new(SerializerTestHarness) do
|
23
|
+
def method_name
|
24
|
+
:to_json
|
25
|
+
end
|
26
|
+
|
27
|
+
protected
|
28
|
+
|
29
|
+
def deserialize(result)
|
30
|
+
JSON.parse(result)
|
31
|
+
end
|
32
|
+
end.new
|
33
|
+
end
|
34
|
+
|
35
|
+
it_should_behave_like "A serialization method"
|
36
|
+
it_should_behave_like 'A serialization method that also serializes core classes'
|
37
|
+
|
38
|
+
it "handles options given to a collection properly" do
|
39
|
+
deserialized_collection = JSON.parse(@collection.to_json(:only => [:composite]))
|
40
|
+
betsy = deserialized_collection.first
|
41
|
+
berta = deserialized_collection.last
|
42
|
+
|
43
|
+
betsy["id"].should be_nil
|
44
|
+
betsy["composite"].should == 2
|
45
|
+
betsy["name"].should be_nil
|
46
|
+
betsy["breed"].should be_nil
|
47
|
+
|
48
|
+
berta["id"].should be_nil
|
49
|
+
berta["composite"].should == 20
|
50
|
+
berta["name"].should be_nil
|
51
|
+
berta["breed"].should be_nil
|
52
|
+
end
|
53
|
+
|
54
|
+
it "supports :include option for one level depth"
|
55
|
+
|
56
|
+
it "supports :include option for more than one level depth"
|
57
|
+
|
58
|
+
it "has :repository option to override used repository"
|
59
|
+
|
60
|
+
it "can be serialized within a Hash" do
|
61
|
+
hash = { 'cows' => Cow.all }
|
62
|
+
JSON.parse(hash.to_json).should == hash
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
describe DataMapper::Serializer, '#as_json' do
|
68
|
+
it "handles nil for options" do
|
69
|
+
expect { Cow.new.as_json(nil) }.to_not raise_error
|
70
|
+
end
|
71
|
+
|
72
|
+
it "serializes Discriminator types as strings" do
|
73
|
+
Motorcycle.new.as_json[:type].should == "Motorcycle"
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'rexml/document'
|
3
|
+
|
4
|
+
[:rexml, :libxml, :nokogiri].each do |lib|
|
5
|
+
begin
|
6
|
+
DataMapper::Serializer::XML.serializer = lib
|
7
|
+
rescue LoadError => e
|
8
|
+
warn "[WARNING] #{e.message}"
|
9
|
+
warn "[WARNING] Not running #to_xml specs for #{lib}"
|
10
|
+
next
|
11
|
+
end
|
12
|
+
|
13
|
+
describe DataMapper::Serializer, "#to_xml using #{lib}" do
|
14
|
+
before(:all) do
|
15
|
+
DataMapper.finalize
|
16
|
+
|
17
|
+
@harness = Class.new(SerializerTestHarness) {
|
18
|
+
def method_name
|
19
|
+
:to_xml
|
20
|
+
end
|
21
|
+
|
22
|
+
protected
|
23
|
+
|
24
|
+
def deserialize(result)
|
25
|
+
f = lambda do |element|
|
26
|
+
case element.attributes["type"]
|
27
|
+
when "hash"
|
28
|
+
element.elements.to_a.inject({}) do |a, e|
|
29
|
+
a.update(e.name => f[e])
|
30
|
+
end
|
31
|
+
when "array"
|
32
|
+
element.elements.collect do |e|
|
33
|
+
f[e]
|
34
|
+
end
|
35
|
+
else
|
36
|
+
if element.elements.empty?
|
37
|
+
cast(element.text, element.attributes["type"])
|
38
|
+
else
|
39
|
+
element.elements.to_a.inject({}) do |a, e|
|
40
|
+
a.update(e.name => f[e])
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
doc = REXML::Document.new(result)
|
47
|
+
f[doc.elements[1]]
|
48
|
+
end
|
49
|
+
|
50
|
+
def cast(value, type)
|
51
|
+
boolean_conversions = {"true" => true, "false" => false}
|
52
|
+
value = boolean_conversions[value] if boolean_conversions.has_key?(value)
|
53
|
+
value = value.to_i if value && ["integer", "datamapper::types::serial"].include?(type)
|
54
|
+
value
|
55
|
+
end
|
56
|
+
}.new
|
57
|
+
end
|
58
|
+
|
59
|
+
it_should_behave_like "A serialization method"
|
60
|
+
|
61
|
+
it "should not include the XML prologue, so that the result can be embedded in other XML documents" do
|
62
|
+
planet = Planet.new
|
63
|
+
xml = planet.to_xml(:element_name => "aplanet")
|
64
|
+
xml.should_not match(/\A<?xml/)
|
65
|
+
end
|
66
|
+
|
67
|
+
describe ':element_name option for Resource' do
|
68
|
+
it 'should be used as the root node name by #to_xml' do
|
69
|
+
planet = Planet.new
|
70
|
+
xml = planet.to_xml(:element_name => "aplanet")
|
71
|
+
REXML::Document.new(xml).elements[1].name.should == "aplanet"
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'when not specified the class name underscored and with slashes replaced with dashes should be used as the root node name' do
|
75
|
+
cat = QuanTum::Cat.new
|
76
|
+
xml = cat.to_xml
|
77
|
+
REXML::Document.new(xml).elements[1].name.should == "quan_tum-cat"
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe ':collection_element_name for Collection' do
|
82
|
+
before(:each) do
|
83
|
+
@model = QuanTum::Cat
|
84
|
+
@query = DataMapper::Query.new(DataMapper::repository(:default), @model)
|
85
|
+
@collection = DataMapper::Collection.new(@query)
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'when not specified the class name tableized and with slashes replaced with dashes should be used as the root node name' do
|
89
|
+
xml = DataMapper::Collection.new(@query).to_xml
|
90
|
+
REXML::Document.new(xml).elements[1].name.should == "quan_tum-cats"
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'should be used as the root node name by #to_xml' do
|
94
|
+
resources = @model.load([ { 'id' => 1 } ], @query)
|
95
|
+
@collection = DataMapper::Collection.new(@query, resources)
|
96
|
+
|
97
|
+
xml = @collection.to_xml(:collection_element_name => "somanycats")
|
98
|
+
REXML::Document.new(xml).elements[1].name.should == "somanycats"
|
99
|
+
end
|
100
|
+
|
101
|
+
it 'should respect :element_name for collection elements' do
|
102
|
+
resources = @model.load([ { 'id' => 1 } ], @query)
|
103
|
+
@collection = DataMapper::Collection.new(@query, resources)
|
104
|
+
|
105
|
+
xml = @collection.to_xml(:collection_element_name => "somanycats", :element_name => 'cat')
|
106
|
+
REXML::Document.new(xml).elements[1].elements[1].name.should == "cat"
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe DataMapper::Serializer, '#to_yaml' do
|
4
|
+
#
|
5
|
+
# ==== yummy YAML
|
6
|
+
#
|
7
|
+
|
8
|
+
before(:all) do
|
9
|
+
DataMapper.finalize
|
10
|
+
@harness = Class.new(SerializerTestHarness) do
|
11
|
+
def method_name
|
12
|
+
:to_yaml
|
13
|
+
end
|
14
|
+
|
15
|
+
def deserialize(result)
|
16
|
+
result = YAML.load(result)
|
17
|
+
process = lambda {|object|
|
18
|
+
if object.is_a?(Array)
|
19
|
+
object.collect(&process)
|
20
|
+
elsif object.is_a?(Hash)
|
21
|
+
object.inject({}) {|a, (key, value)| a.update(key.to_s => process[value]) }
|
22
|
+
else
|
23
|
+
object
|
24
|
+
end
|
25
|
+
}
|
26
|
+
process[result]
|
27
|
+
end
|
28
|
+
end.new
|
29
|
+
|
30
|
+
@ruby_192 = RUBY_VERSION >= '1.9.2'
|
31
|
+
@to_yaml = true
|
32
|
+
end
|
33
|
+
|
34
|
+
it_should_behave_like 'A serialization method'
|
35
|
+
it_should_behave_like 'A serialization method that also serializes core classes'
|
36
|
+
|
37
|
+
it 'should allow static YAML dumping' do
|
38
|
+
object = Cow.create(
|
39
|
+
:id => 89,
|
40
|
+
:composite => 34,
|
41
|
+
:name => 'Berta',
|
42
|
+
:breed => 'Guernsey'
|
43
|
+
)
|
44
|
+
result = @harness.deserialize(YAML.dump(object))
|
45
|
+
result['name'].should == 'Berta'
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'should allow static YAML dumping of a collection' do
|
49
|
+
object = Cow.create(
|
50
|
+
:id => 89,
|
51
|
+
:composite => 34,
|
52
|
+
:name => 'Berta',
|
53
|
+
:breed => 'Guernsey'
|
54
|
+
)
|
55
|
+
result = @harness.deserialize(YAML.dump(Cow.all))
|
56
|
+
result[0]['name'].should == 'Berta'
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
data/spec/rcov.opts
ADDED
data/spec/spec.opts
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'dm-core/spec/setup'
|
2
|
+
require 'dm-core/spec/lib/adapter_helpers'
|
3
|
+
require 'dm-core/spec/lib/pending_helpers'
|
4
|
+
|
5
|
+
require 'dm-validations' # FIXME: must be required before dm-serializer
|
6
|
+
require 'dm-serializer'
|
7
|
+
require 'dm-migrations'
|
8
|
+
|
9
|
+
require File.expand_path('spec/lib/serialization_method_shared_spec')
|
10
|
+
|
11
|
+
# require fixture resources
|
12
|
+
SPEC_ROOT = Pathname(__FILE__).dirname.expand_path
|
13
|
+
Pathname.glob((SPEC_ROOT + 'fixtures/**/*.rb').to_s).each { |file| require file }
|
14
|
+
|
15
|
+
class SerializerTestHarness
|
16
|
+
def test(object, *args)
|
17
|
+
deserialize(object.send(method_name, *args))
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
DataMapper::Spec.setup
|
22
|
+
|
23
|
+
Spec::Runner.configure do |config|
|
24
|
+
config.extend(DataMapper::Spec::Adapters::Helpers)
|
25
|
+
config.include(DataMapper::Spec::PendingHelpers)
|
26
|
+
end
|
data/tasks/spec.rake
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
spec_defaults = lambda do |spec|
|
2
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
3
|
+
spec.libs << 'lib' << 'spec'
|
4
|
+
spec.spec_opts << '--options' << 'spec/spec.opts'
|
5
|
+
end
|
6
|
+
|
7
|
+
begin
|
8
|
+
require 'spec/rake/spectask'
|
9
|
+
|
10
|
+
Spec::Rake::SpecTask.new(:spec, &spec_defaults)
|
11
|
+
rescue LoadError
|
12
|
+
task :spec do
|
13
|
+
abort 'rspec is not available. In order to run spec, you must: gem install rspec'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
begin
|
18
|
+
require 'rcov'
|
19
|
+
require 'spec/rake/verify_rcov'
|
20
|
+
|
21
|
+
Spec::Rake::SpecTask.new(:rcov) do |rcov|
|
22
|
+
spec_defaults.call(rcov)
|
23
|
+
rcov.rcov = true
|
24
|
+
rcov.rcov_opts = File.read('spec/rcov.opts').split(/\s+/)
|
25
|
+
end
|
26
|
+
|
27
|
+
RCov::VerifyTask.new(:verify_rcov => :rcov) do |rcov|
|
28
|
+
rcov.threshold = 100
|
29
|
+
end
|
30
|
+
rescue LoadError
|
31
|
+
%w[ rcov verify_rcov ].each do |name|
|
32
|
+
task name do
|
33
|
+
abort "rcov is not available. In order to run #{name}, you must: gem install rcov"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
task :default => :spec
|
data/tasks/yard.rake
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
begin
|
2
|
+
require 'pathname'
|
3
|
+
require 'yardstick/rake/measurement'
|
4
|
+
require 'yardstick/rake/verify'
|
5
|
+
|
6
|
+
# yardstick_measure task
|
7
|
+
Yardstick::Rake::Measurement.new
|
8
|
+
|
9
|
+
# verify_measurements task
|
10
|
+
Yardstick::Rake::Verify.new do |verify|
|
11
|
+
verify.threshold = 100
|
12
|
+
end
|
13
|
+
rescue LoadError
|
14
|
+
%w[ yardstick_measure verify_measurements ].each do |name|
|
15
|
+
task name.to_s do
|
16
|
+
abort "Yardstick is not available. In order to run #{name}, you must: gem install yardstick"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
metadata
ADDED
@@ -0,0 +1,185 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ardm-serializer
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.2.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Martin Emde
|
8
|
+
- Guy van den Berg
|
9
|
+
- Dan Kubb
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2015-01-29 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: ardm-core
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - "~>"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.2'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - "~>"
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '1.2'
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: fastercsv
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - "~>"
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '1.5'
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '1.5'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: multi_json
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '1.0'
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - "~>"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '1.0'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: json
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '1.6'
|
64
|
+
type: :runtime
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - "~>"
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '1.6'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: json_pure
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - "~>"
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '1.6'
|
78
|
+
type: :runtime
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - "~>"
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '1.6'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: rake
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - "~>"
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0.9'
|
92
|
+
type: :development
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - "~>"
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0.9'
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: rspec
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - "~>"
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '1.3'
|
106
|
+
type: :development
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - "~>"
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '1.3'
|
113
|
+
description: DataMapper plugin for serializing Resources and Collections
|
114
|
+
email:
|
115
|
+
- me@martinemde.com
|
116
|
+
- dan.kubb@gmail.com
|
117
|
+
executables: []
|
118
|
+
extensions: []
|
119
|
+
extra_rdoc_files:
|
120
|
+
- LICENSE
|
121
|
+
- README.rdoc
|
122
|
+
files:
|
123
|
+
- ".gitignore"
|
124
|
+
- ".travis.yml"
|
125
|
+
- Gemfile
|
126
|
+
- LICENSE
|
127
|
+
- README.rdoc
|
128
|
+
- Rakefile
|
129
|
+
- ardm-serializer.gemspec
|
130
|
+
- benchmarks/to_json.rb
|
131
|
+
- benchmarks/to_xml.rb
|
132
|
+
- lib/ardm-serializer.rb
|
133
|
+
- lib/dm-serializer.rb
|
134
|
+
- lib/dm-serializer/common.rb
|
135
|
+
- lib/dm-serializer/to_csv.rb
|
136
|
+
- lib/dm-serializer/to_json.rb
|
137
|
+
- lib/dm-serializer/to_xml.rb
|
138
|
+
- lib/dm-serializer/to_yaml.rb
|
139
|
+
- lib/dm-serializer/version.rb
|
140
|
+
- lib/dm-serializer/xml.rb
|
141
|
+
- lib/dm-serializer/xml/libxml.rb
|
142
|
+
- lib/dm-serializer/xml/nokogiri.rb
|
143
|
+
- lib/dm-serializer/xml/rexml.rb
|
144
|
+
- spec/fixtures/cow.rb
|
145
|
+
- spec/fixtures/planet.rb
|
146
|
+
- spec/fixtures/quan_tum_cat.rb
|
147
|
+
- spec/fixtures/vehicle.rb
|
148
|
+
- spec/lib/serialization_method_shared_spec.rb
|
149
|
+
- spec/public/serializer_spec.rb
|
150
|
+
- spec/public/to_csv_spec.rb
|
151
|
+
- spec/public/to_json_spec.rb
|
152
|
+
- spec/public/to_xml_spec.rb
|
153
|
+
- spec/public/to_yaml_spec.rb
|
154
|
+
- spec/rcov.opts
|
155
|
+
- spec/spec.opts
|
156
|
+
- spec/spec_helper.rb
|
157
|
+
- tasks/spec.rake
|
158
|
+
- tasks/yard.rake
|
159
|
+
- tasks/yardstick.rake
|
160
|
+
homepage: https://github.com/ar-dm/ardm-serializer
|
161
|
+
licenses:
|
162
|
+
- MIT
|
163
|
+
metadata: {}
|
164
|
+
post_install_message:
|
165
|
+
rdoc_options: []
|
166
|
+
require_paths:
|
167
|
+
- lib
|
168
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0'
|
173
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
|
+
requirements:
|
175
|
+
- - ">="
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: '0'
|
178
|
+
requirements: []
|
179
|
+
rubyforge_project:
|
180
|
+
rubygems_version: 2.2.2
|
181
|
+
signing_key:
|
182
|
+
specification_version: 4
|
183
|
+
summary: Ardm fork of dm-serializer
|
184
|
+
test_files: []
|
185
|
+
has_rdoc:
|