dm-rest-adapter 0.10.1 → 0.10.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.
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2008 Potomac Ruby Hackers
1
+ Copyright (c) 2009 Potomac Ruby Hackers
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
@@ -1,24 +1,31 @@
1
- require 'pathname'
1
+ require 'rubygems'
2
+ require 'rake'
2
3
 
3
- ROOT = Pathname(__FILE__).dirname.expand_path
4
- JRUBY = RUBY_PLATFORM =~ /java/
5
- WINDOWS = Gem.win_platform?
6
- SUDO = (WINDOWS || JRUBY) ? '' : ('sudo' unless ENV['SUDOLESS'])
4
+ begin
5
+ gem 'jeweler', '~> 1.4'
6
+ require 'jeweler'
7
7
 
8
- require ROOT + 'lib/rest_adapter/version'
8
+ Jeweler::Tasks.new do |gem|
9
+ gem.name = 'dm-rest-adapter'
10
+ gem.summary = 'REST Adapter for DataMapper'
11
+ gem.description = gem.summary
12
+ gem.email = 'scott.burton [a] joyent [d] com'
13
+ gem.homepage = 'http://github.com/datamapper/dm-more/tree/master/adapters/%s' % gem.name
14
+ gem.authors = [ 'Scott Burton @ Joyent Inc' ]
9
15
 
10
- AUTHOR = 'Scott Burton @ Joyent Inc'
11
- EMAIL = 'scott.burton [a] joyent [d] com'
12
- GEM_NAME = 'dm-rest-adapter'
13
- GEM_VERSION = DataMapperRest::VERSION
14
- GEM_DEPENDENCIES = [['dm-core', GEM_VERSION], ['dm-serializer', GEM_VERSION]]
15
- GEM_CLEAN = %w[ log pkg coverage ]
16
- GEM_EXTRAS = { :has_rdoc => true, :extra_rdoc_files => %w[ README.rdoc LICENSE TODO History.rdoc ] }
16
+ gem.rubyforge_project = 'datamapper'
17
17
 
18
- PROJECT_NAME = 'datamapper'
19
- PROJECT_URL = "http://github.com/datamapper/dm-more/tree/master/adapters/#{GEM_NAME}"
20
- PROJECT_DESCRIPTION = PROJECT_SUMMARY = 'REST Adapter for DataMapper'
18
+ gem.add_dependency 'dm-core', '~> 0.10.2'
19
+ gem.add_dependency 'dm-serializer', '~> 0.10.2'
21
20
 
22
- [ ROOT, ROOT.parent.parent ].each do |dir|
23
- Pathname.glob(dir.join('tasks/**/*.rb').to_s).each { |f| require f }
21
+ gem.add_development_dependency 'fakeweb', '~> 1.2.7'
22
+ gem.add_development_dependency 'rspec', '~> 1.2.9'
23
+ gem.add_development_dependency 'yard', '~> 0.4.0'
24
+ end
25
+
26
+ Jeweler::GemcutterTasks.new
27
+
28
+ FileList['tasks/**/*.rake'].each { |task| import task }
29
+ rescue LoadError
30
+ puts 'Jeweler (or a dependency) not available. Install it with: gem install jeweler'
24
31
  end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.10.2
@@ -0,0 +1,75 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{dm-rest-adapter}
8
+ s.version = "0.10.2"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Scott Burton @ Joyent Inc"]
12
+ s.date = %q{2009-12-11}
13
+ s.description = %q{REST Adapter for DataMapper}
14
+ s.email = %q{scott.burton [a] joyent [d] com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ "LICENSE",
21
+ "README.rdoc",
22
+ "Rakefile",
23
+ "VERSION",
24
+ "dm-rest-adapter.gemspec",
25
+ "lib/rest_adapter.rb",
26
+ "lib/rest_adapter/adapter.rb",
27
+ "lib/rest_adapter/connection.rb",
28
+ "lib/rest_adapter/exceptions.rb",
29
+ "lib/rest_adapter/formats.rb",
30
+ "spec/fixtures/book.rb",
31
+ "spec/fixtures/difficult_book.rb",
32
+ "spec/rcov.opts",
33
+ "spec/semipublic/connection_spec.rb",
34
+ "spec/semipublic/rest_adapter_spec.rb",
35
+ "spec/spec.opts",
36
+ "spec/spec_helper.rb",
37
+ "tasks/ci.rake",
38
+ "tasks/metrics.rake",
39
+ "tasks/spec.rake",
40
+ "tasks/yard.rake",
41
+ "tasks/yardstick.rake"
42
+ ]
43
+ s.homepage = %q{http://github.com/datamapper/dm-more/tree/master/adapters/dm-rest-adapter}
44
+ s.rdoc_options = ["--charset=UTF-8"]
45
+ s.require_paths = ["lib"]
46
+ s.rubyforge_project = %q{datamapper}
47
+ s.rubygems_version = %q{1.3.5}
48
+ s.summary = %q{REST Adapter for DataMapper}
49
+
50
+ if s.respond_to? :specification_version then
51
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
52
+ s.specification_version = 3
53
+
54
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
55
+ s.add_runtime_dependency(%q<dm-core>, ["~> 0.10.2"])
56
+ s.add_runtime_dependency(%q<dm-serializer>, ["~> 0.10.2"])
57
+ s.add_development_dependency(%q<fakeweb>, ["~> 1.2.7"])
58
+ s.add_development_dependency(%q<rspec>, ["~> 1.2.9"])
59
+ s.add_development_dependency(%q<yard>, ["~> 0.4.0"])
60
+ else
61
+ s.add_dependency(%q<dm-core>, ["~> 0.10.2"])
62
+ s.add_dependency(%q<dm-serializer>, ["~> 0.10.2"])
63
+ s.add_dependency(%q<fakeweb>, ["~> 1.2.7"])
64
+ s.add_dependency(%q<rspec>, ["~> 1.2.9"])
65
+ s.add_dependency(%q<yard>, ["~> 0.4.0"])
66
+ end
67
+ else
68
+ s.add_dependency(%q<dm-core>, ["~> 0.10.2"])
69
+ s.add_dependency(%q<dm-serializer>, ["~> 0.10.2"])
70
+ s.add_dependency(%q<fakeweb>, ["~> 1.2.7"])
71
+ s.add_dependency(%q<rspec>, ["~> 1.2.9"])
72
+ s.add_dependency(%q<yard>, ["~> 0.4.0"])
73
+ end
74
+ end
75
+
@@ -4,7 +4,6 @@ require 'cgi' # for CGI.escape
4
4
  require 'addressable/uri'
5
5
  require 'dm-serializer'
6
6
 
7
- require 'rest_adapter/version'
8
7
  require 'rest_adapter/adapter'
9
8
  require 'rest_adapter/connection'
10
9
  require 'rest_adapter/formats'
@@ -139,17 +139,17 @@ module DataMapperRest
139
139
  field_to_property = model.properties(name).map { |p| [ p.field, p ] }.to_hash
140
140
  element_name = element_name(model)
141
141
 
142
- doc.elements.collect("/#{element_name.pluralize}/#{element_name}") do |entity_element|
142
+ doc.elements.collect("/#{resource_name(model)}/#{element_name}") do |entity_element|
143
143
  record_from_rexml(entity_element, field_to_property)
144
144
  end
145
145
  end
146
146
 
147
147
  def element_name(model)
148
- Extlib::Inflection.underscore(model.name)
148
+ model.storage_name(self.name).singular
149
149
  end
150
150
 
151
151
  def resource_name(model)
152
- Extlib::Inflection.underscore(model.name).pluralize
152
+ model.storage_name(self.name)
153
153
  end
154
154
 
155
155
  def update_with_response(resource, response)
@@ -0,0 +1,10 @@
1
+ class DifficultBook
2
+ include DataMapper::Resource
3
+
4
+ storage_names[:default] = 'books'
5
+
6
+ property :id, Serial
7
+ property :created_at, DateTime
8
+ property :title, String
9
+ property :author, String
10
+ end
@@ -0,0 +1,6 @@
1
+ --exclude "spec"
2
+ --sort coverage
3
+ --callsites
4
+ --xrefs
5
+ --profile
6
+ --text-summary
@@ -139,6 +139,35 @@ describe DataMapper::Adapters::RestAdapter do
139
139
  @response.should == [ { 'id' => 1, 'created_at' => DateTime.parse('2009-05-17T22:38:42-07:00'), 'title' => 'DataMapper', 'author' => 'Dan Kubb' } ]
140
140
  end
141
141
  end
142
+
143
+ describe 'with a non-standard model <=> storage_name relationship' do
144
+ before :all do
145
+ body = <<-XML.compress_lines
146
+ <books>
147
+ <book>
148
+ <id type='datamapper::types::serial'>1</id>
149
+ <created_at type='datetime'>2009-05-17T22:38:42-07:00</created_at>
150
+ <title>DataMapper</title>
151
+ <author>Dan Kubb</author>
152
+ </book>
153
+ </books>
154
+ XML
155
+
156
+ headers = { 'Content-Length' => body.respond_to?(:bytesize) ? body.bytesize : body.size }
157
+
158
+ FakeWeb.register_uri(:get, 'http://admin:secret@localhost:4000/books.xml', :status => 200, :headers => headers, :body => body)
159
+ end
160
+
161
+ before :all do
162
+ @query = DifficultBook.all.query
163
+
164
+ @response = @adapter.read(@query)
165
+ end
166
+
167
+ it 'should return an Array with the matching Records' do
168
+ @response.should == [ { 'id' => 1, 'created_at' => DateTime.parse('2009-05-17T22:38:42-07:00'), 'title' => 'DataMapper', 'author' => 'Dan Kubb' } ]
169
+ end
170
+ end
142
171
  end
143
172
 
144
173
  describe '#update' do
@@ -1,2 +1,4 @@
1
1
  --colour
2
2
  --loadby random
3
+ --format profile
4
+ --backtrace
@@ -0,0 +1 @@
1
+ task :ci => [ :verify_measurements, 'metrics:all' ]
@@ -0,0 +1,36 @@
1
+ begin
2
+ require 'metric_fu'
3
+ rescue LoadError
4
+ namespace :metrics do
5
+ task :all do
6
+ abort 'metric_fu is not available. In order to run metrics:all, you must: gem install metric_fu'
7
+ end
8
+ end
9
+ end
10
+
11
+ begin
12
+ require 'reek/adapters/rake_task'
13
+
14
+ Reek::RakeTask.new do |t|
15
+ t.fail_on_error = true
16
+ t.verbose = false
17
+ t.source_files = 'lib/**/*.rb'
18
+ end
19
+ rescue LoadError
20
+ task :reek do
21
+ abort 'Reek is not available. In order to run reek, you must: gem install reek'
22
+ end
23
+ end
24
+
25
+ begin
26
+ require 'roodi'
27
+ require 'roodi_task'
28
+
29
+ RoodiTask.new do |t|
30
+ t.verbose = false
31
+ end
32
+ rescue LoadError
33
+ task :roodi do
34
+ abort 'Roodi is not available. In order to run roodi, you must: gem install roodi'
35
+ end
36
+ end
@@ -0,0 +1,41 @@
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 :spec => :check_dependencies
39
+ task :rcov => :check_dependencies
40
+
41
+ task :default => :spec
@@ -0,0 +1,9 @@
1
+ begin
2
+ require 'yard'
3
+
4
+ YARD::Rake::YardocTask.new
5
+ rescue LoadError
6
+ task :yard do
7
+ abort 'YARD is not available. In order to run yard, you must: gem install yard'
8
+ end
9
+ end
@@ -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 CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-rest-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.10.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Burton @ Joyent Inc
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-30 00:00:00 -07:00
12
+ date: 2009-12-11 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -18,9 +18,9 @@ dependencies:
18
18
  version_requirement:
19
19
  version_requirements: !ruby/object:Gem::Requirement
20
20
  requirements:
21
- - - "="
21
+ - - ~>
22
22
  - !ruby/object:Gem::Version
23
- version: 0.10.1
23
+ version: 0.10.2
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: dm-serializer
@@ -28,50 +28,79 @@ dependencies:
28
28
  version_requirement:
29
29
  version_requirements: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "="
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: 0.10.1
33
+ version: 0.10.2
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: fakeweb
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 1.2.7
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: rspec
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 1.2.9
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: yard
57
+ type: :development
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ~>
62
+ - !ruby/object:Gem::Version
63
+ version: 0.4.0
34
64
  version:
35
65
  description: REST Adapter for DataMapper
36
- email:
37
- - scott.burton [a] joyent [d] com
66
+ email: scott.burton [a] joyent [d] com
38
67
  executables: []
39
68
 
40
69
  extensions: []
41
70
 
42
71
  extra_rdoc_files:
43
- - README.rdoc
44
72
  - LICENSE
45
- - TODO
46
- - History.rdoc
73
+ - README.rdoc
47
74
  files:
48
- - History.rdoc
49
75
  - LICENSE
50
- - Manifest.txt
51
76
  - README.rdoc
52
77
  - Rakefile
53
- - TODO
78
+ - VERSION
79
+ - dm-rest-adapter.gemspec
54
80
  - lib/rest_adapter.rb
55
81
  - lib/rest_adapter/adapter.rb
56
82
  - lib/rest_adapter/connection.rb
57
83
  - lib/rest_adapter/exceptions.rb
58
84
  - lib/rest_adapter/formats.rb
59
- - lib/rest_adapter/version.rb
60
85
  - spec/fixtures/book.rb
86
+ - spec/fixtures/difficult_book.rb
87
+ - spec/rcov.opts
61
88
  - spec/semipublic/connection_spec.rb
62
89
  - spec/semipublic/rest_adapter_spec.rb
63
90
  - spec/spec.opts
64
91
  - spec/spec_helper.rb
65
- - tasks/install.rb
66
- - tasks/spec.rb
92
+ - tasks/ci.rake
93
+ - tasks/metrics.rake
94
+ - tasks/spec.rake
95
+ - tasks/yard.rake
96
+ - tasks/yardstick.rake
67
97
  has_rdoc: true
68
98
  homepage: http://github.com/datamapper/dm-more/tree/master/adapters/dm-rest-adapter
69
99
  licenses: []
70
100
 
71
101
  post_install_message:
72
102
  rdoc_options:
73
- - --main
74
- - README.rdoc
103
+ - --charset=UTF-8
75
104
  require_paths:
76
105
  - lib
77
106
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -1,23 +0,0 @@
1
- === 0.10.1 / 2009-09-30
2
-
3
- * No changes this version
4
-
5
- === 0.10.0 / 2009-09-15
6
-
7
- * Updated to work with dm-core 0.10.0
8
-
9
- === 0.9.11 / 2009-03-29
10
-
11
- * No changes this version
12
-
13
- === 0.9.10 / 2009-01-19
14
-
15
- * No changes this version
16
-
17
- === 0.9.9 / 2009-01-04
18
-
19
- * No changes this version
20
-
21
- === 0.9.8 / 2008-12-07
22
-
23
- * No changes this version
@@ -1,19 +0,0 @@
1
- History.rdoc
2
- LICENSE
3
- Manifest.txt
4
- README.rdoc
5
- Rakefile
6
- TODO
7
- lib/rest_adapter.rb
8
- lib/rest_adapter/adapter.rb
9
- lib/rest_adapter/connection.rb
10
- lib/rest_adapter/exceptions.rb
11
- lib/rest_adapter/formats.rb
12
- lib/rest_adapter/version.rb
13
- spec/fixtures/book.rb
14
- spec/semipublic/connection_spec.rb
15
- spec/semipublic/rest_adapter_spec.rb
16
- spec/spec.opts
17
- spec/spec_helper.rb
18
- tasks/install.rb
19
- tasks/spec.rb
data/TODO DELETED
File without changes
@@ -1,3 +0,0 @@
1
- module DataMapperRest
2
- VERSION = '0.10.1'.freeze
3
- end
@@ -1,13 +0,0 @@
1
- def sudo_gem(cmd)
2
- sh "#{SUDO} #{RUBY} -S gem #{cmd}", :verbose => false
3
- end
4
-
5
- desc "Install #{GEM_NAME} #{GEM_VERSION}"
6
- task :install => [ :package ] do
7
- sudo_gem "install pkg/#{GEM_NAME}-#{GEM_VERSION} --no-update-sources"
8
- end
9
-
10
- desc "Uninstall #{GEM_NAME} #{GEM_VERSION}"
11
- task :uninstall => [ :clobber ] do
12
- sudo_gem "uninstall #{GEM_NAME} -v#{GEM_VERSION} -Ix"
13
- end
@@ -1,25 +0,0 @@
1
- begin
2
- require 'spec/rake/spectask'
3
-
4
- task :default => [ :spec ]
5
-
6
- desc 'Run specifications'
7
- Spec::Rake::SpecTask.new(:spec) do |t|
8
- t.spec_opts << '--options' << 'spec/spec.opts' if File.exists?('spec/spec.opts')
9
- t.libs << 'lib' << 'spec' # needed for CI rake spec task, duplicated in spec_helper
10
-
11
- begin
12
- require 'rcov'
13
- t.rcov = JRUBY ? false : (ENV.has_key?('NO_RCOV') ? ENV['NO_RCOV'] != 'true' : true)
14
- t.rcov_opts << '--exclude' << 'spec'
15
- t.rcov_opts << '--text-summary'
16
- t.rcov_opts << '--sort' << 'coverage' << '--sort-reverse'
17
- rescue LoadError
18
- # rcov not installed
19
- rescue SyntaxError
20
- # rcov syntax invalid
21
- end
22
- end
23
- rescue LoadError
24
- # rspec not installed
25
- end