sinatra_resource 0.4.8 → 0.4.9

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.8
1
+ 0.4.9
@@ -8,7 +8,7 @@ module Config
8
8
  end
9
9
 
10
10
  def self.setup_mongomapper
11
- gem 'djsun-mongo_mapper', '>= 0.5.8.2', '< 0.6'
11
+ gem 'mongo_mapper', '>= 0.6.10', '< 0.7'
12
12
  require 'mongo_mapper'
13
13
  MongoMapper.connection = new_mongo_connection
14
14
  MongoMapper.database = environment_config['mongo_database']
@@ -6,8 +6,8 @@ module DataCatalog
6
6
 
7
7
  # == Attributes
8
8
 
9
- key :source_id, String
10
- key :category_id, String
9
+ key :source_id, Mongo::ObjectID
10
+ key :category_id, Mongo::ObjectID
11
11
  timestamps!
12
12
 
13
13
  # == Indices
@@ -7,7 +7,7 @@ module DataCatalog
7
7
  # == Attributes
8
8
 
9
9
  key :text, String
10
- key :user_id, String
10
+ key :user_id, Mongo::ObjectID
11
11
  timestamps!
12
12
 
13
13
  # == Indices
@@ -34,7 +34,8 @@ module DataCatalog
34
34
 
35
35
  # == Callbacks
36
36
 
37
- def before_create
37
+ before_create :assign_api_key
38
+ def assign_api_key
38
39
  unless _api_key
39
40
  self._api_key = generate_api_key
40
41
  end
@@ -61,8 +61,8 @@ module RequestHelpers
61
61
  base_uri = Config.environment_config["base_uri"]
62
62
  parent = instance_variable_get("@#{parent_ivar}")
63
63
  raise Error unless parent
64
- path = parent_path + '/' + parent.id + '/' + child_path + '/' +
65
- parsed_response_body["id"]
64
+ id = parsed_response_body['id']
65
+ path = "#{parent_path}/#{parent.id}/#{child_path}/#{id}"
66
66
  expected = URI.join(base_uri, path).to_s
67
67
  assert_equal expected, last_response.headers['Location']
68
68
  end
@@ -62,7 +62,7 @@ class CategoriesGetOneResourceTest < ResourceTestCase
62
62
  test "body should have correct sources" do
63
63
  expected = [
64
64
  {
65
- "id" => @source.id,
65
+ "id" => @source.id.to_s,
66
66
  "href" => "/sources/#{@source.id}",
67
67
  "title" => @source.title,
68
68
  "url" => @source.url,
@@ -48,7 +48,7 @@ class CategoriesSourcesDeleteResourceTest < ResourceTestCase
48
48
  use "return 401 because the API key is invalid"
49
49
  end
50
50
  end
51
-
51
+
52
52
  %w(basic).each do |role|
53
53
  context "#{role} : delete /:fake_id/sources/:fake_id" do
54
54
  before do
@@ -124,7 +124,7 @@ class CategoriesSourcesDeleteResourceTest < ResourceTestCase
124
124
  use "return 404 Not Found with empty response body"
125
125
  use "no change in source count"
126
126
  end
127
-
127
+
128
128
  context "#{role} : delete /:id/sources/:not_related_id" do
129
129
  before do
130
130
  delete "/#{@category.id}/sources/#{@other_source.id}",
@@ -137,7 +137,8 @@ class CategoriesSourcesDeleteResourceTest < ResourceTestCase
137
137
 
138
138
  context "#{role} : delete /:id/sources/:id" do
139
139
  before do
140
- delete "/#{@category.id}/sources/#{@source.id}", :api_key => api_key_for(role)
140
+ delete "/#{@category.id}/sources/#{@source.id}",
141
+ :api_key => api_key_for(role)
141
142
  end
142
143
 
143
144
  use "return 204 No Content"
@@ -66,7 +66,7 @@ class CategoriesSourcesPostResourceTest < ResourceTestCase
66
66
  use "no change in source count"
67
67
  end
68
68
  end
69
-
69
+
70
70
  %w(curator).each do |role|
71
71
  context "#{role} : post /:fake_id/sources" do
72
72
  before do
@@ -89,7 +89,7 @@ class CategoriesSourcesPostResourceTest < ResourceTestCase
89
89
  missing_param missing
90
90
  end
91
91
  end
92
-
92
+
93
93
  [:raw, :id, :created_at, :updated_at, :junk].each do |invalid|
94
94
  context "#{role} : post /:id/sources but with #{invalid}" do
95
95
  before do
@@ -102,12 +102,12 @@ class CategoriesSourcesPostResourceTest < ResourceTestCase
102
102
  invalid_param invalid
103
103
  end
104
104
  end
105
-
105
+
106
106
  context "#{role} : post /:id/sources with valid params" do
107
107
  before do
108
108
  post "/#{@category.id}/sources", valid_params_for(role)
109
109
  end
110
-
110
+
111
111
  after do
112
112
  Source.find_by_id(parsed_response_body["id"]).destroy
113
113
  end
@@ -123,7 +123,7 @@ class CategoriesSourcesPostResourceTest < ResourceTestCase
123
123
  end
124
124
  end
125
125
  end
126
-
126
+
127
127
  %w(admin).each do |role|
128
128
  context "#{role} : post /:fake_id/sources" do
129
129
  before do
@@ -148,7 +148,7 @@ class CategoriesSourcesPostResourceTest < ResourceTestCase
148
148
  missing_param missing
149
149
  end
150
150
  end
151
-
151
+
152
152
  [:id, :created_at, :updated_at, :junk].each do |invalid|
153
153
  context "#{role} : post /:id/sources but with #{invalid}" do
154
154
  before do
@@ -161,13 +161,13 @@ class CategoriesSourcesPostResourceTest < ResourceTestCase
161
161
  invalid_param invalid
162
162
  end
163
163
  end
164
-
164
+
165
165
  context "#{role} : post /:id/sources with valid params" do
166
166
  before do
167
167
  post "/#{@category.id}/sources",
168
168
  valid_params_for(role).merge(@extra_admin_params)
169
169
  end
170
-
170
+
171
171
  after do
172
172
  Source.find_by_id(parsed_response_body["id"]).destroy
173
173
  end
@@ -11,7 +11,7 @@ class NotesPostResourceTest < ResourceTestCase
11
11
  @user = create_user
12
12
  @valid_params = {
13
13
  :text => "New Note",
14
- :user_id => @user.id
14
+ :user_id => @user.id.to_s
15
15
  }
16
16
  end
17
17
 
@@ -62,7 +62,7 @@ class SourcesGetOneResourceTest < ResourceTestCase
62
62
  test "body should have correct categories" do
63
63
  expected = [
64
64
  {
65
- "id" => @category.id,
65
+ "id" => @category.id.to_s,
66
66
  "href" => "/categories/#{@category.id}",
67
67
  "name" => @category.name,
68
68
  }
@@ -78,7 +78,7 @@ class UsersGetManyResourceTest < ResourceTestCase
78
78
 
79
79
  test "body elements should be correct" do
80
80
  @members.each do |element|
81
- if element["id"] == user_for(role).id
81
+ if element["id"] == user_for(role).id.to_s
82
82
  assert_properties(%w(name email role _api_key token
83
83
  id created_at updated_at), element)
84
84
  else
data/lib/builder.rb CHANGED
@@ -175,7 +175,7 @@ module SinatraResource
175
175
  parent_document = document_for_get_one(parent_role, parent_model, parent_resource_config, false, parent_id, nil, nil)
176
176
  # ------
177
177
  role = role_for_nested(parent_document, child_assoc, model, id)
178
- document_for_delete(role, model, resource_config, true, id, parent_document, child_assoc)
178
+ document = document_for_delete(role, model, resource_config, true, id, parent_document, child_assoc)
179
179
  display(:delete, "", resource_config, parent_id)
180
180
  end
181
181
  end
@@ -355,9 +355,9 @@ module SinatraResource
355
355
  path = if c[:parent]
356
356
  raise Error, "expecting parent_id" unless parent_id
357
357
  pc = c[:parent].resource_config
358
- pc[:path] + '/' + parent_id + '/' + c[:path] + '/' + o["id"]
358
+ "#{pc[:path]}/#{parent_id}/#{c[:path]}/#{o['id']}"
359
359
  else
360
- c[:path] + '/' + o["id"]
360
+ "#{c[:path]}/#{o['id']}"
361
361
  end
362
362
  full_uri(path)
363
363
  end
@@ -158,7 +158,8 @@ module SinatraResource
158
158
  # @return [MongoMapper::EmbeddedDocument]
159
159
  def find_child(children, child_id)
160
160
  raise Error, "children not true" unless children
161
- children.detect { |x| x.id == child_id }
161
+ child_id = child_id.to_s
162
+ children.detect { |x| x.id.to_s == child_id }
162
163
  end
163
164
 
164
165
  # Find document with +child_id+ in +children+ or raise 404.
@@ -443,7 +444,9 @@ module SinatraResource
443
444
  # @return [MongoMapper::Document]
444
445
  def select_related(parent, child_assoc, children)
445
446
  children.select do |child|
446
- parent.send(child_assoc).detect { |x| x.id == child.id }
447
+ parent.send(child_assoc).detect do |x|
448
+ x.id == child.id
449
+ end
447
450
  end
448
451
  # Note: This has O^2 complexity because of the nesting.
449
452
  # Can it be done more quickly?
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sinatra_resource}
8
- s.version = "0.4.8"
8
+ s.version = "0.4.9"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["David James"]
12
- s.date = %q{2010-01-14}
12
+ s.date = %q{2010-02-03}
13
13
  s.description = %q{A DSL for creating RESTful actions with Sinatra and MongoMapper. It embraces the Resource Oriented Architecture as explained by Leonard Richardson and Sam Ruby.}
14
14
  s.email = %q{djames@sunlightfoundation.com}
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra_resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.8
4
+ version: 0.4.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - David James
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-14 00:00:00 -05:00
12
+ date: 2010-02-03 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency