factory_girl_remote_strategy 0.0.7 → 0.0.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ce58337e23b72366c09ab620b0d6c70ce38da4e7
4
- data.tar.gz: f7882563ab29647fcb1409f99359ca4b8f4aa45c
3
+ metadata.gz: 1bd2d2572ab0367269268716ba1a455f7a2fd60d
4
+ data.tar.gz: f9331007bf708479bbc1d105e3828003097c055a
5
5
  SHA512:
6
- metadata.gz: 77531f5ee48247c23d5b8ae304988d1dad2e2d1a76e07ffc0a69a80c2b0c0f2ef04f7fa070f6a0fc247da726523355b3b5cdf16843210b14d2f28de4f69ce4c1
7
- data.tar.gz: cc7d8714e9c337663e87d775564e1974c6be33e481d5939e73d66c10789e168e4b020c3c2e99efe3f8d8adfbc708cf732e078e7d3ca2adf1278d1c9c2f0c1342
6
+ metadata.gz: 49f8a43abee55530a7b84c1f3182e9818d0bb66d253ea47e611f34917e38dc27a1dcc4b10a4dd3dd2831ff5c50ed95d151aae2b356eb6e596edf813feff0e634
7
+ data.tar.gz: fac74153c6c9f41b5f8ee14ecaa557ea88e21d6f31255bb1b037a8699e7457af55a75bda907db92301f3655e56ca5f858f6e7dde882dc2e98b6f033d9c0a8785
@@ -32,7 +32,7 @@ module FactoryGirl
32
32
  end
33
33
 
34
34
  class << self
35
- def entity_hash(entity)
35
+ def entity_hash(entity, params = {})
36
36
  raise ArgumentError, "cann't construct hash for non ActiveResource::Base object" unless entity.is_a?(ActiveResource::Base)
37
37
  attributes = entity.attributes
38
38
  # Set belongs_to <association>_id instead of each <association>.
@@ -54,7 +54,9 @@ module FactoryGirl
54
54
  attributes[k] = v.map { |e| entity_hash(e) }
55
55
  end
56
56
  end
57
- { entity.class.element_name => attributes, _metadata: { abilities: %w(update destroy) } }
57
+ { entity.class.element_name => attributes }.tap do |h|
58
+ h[:_metadata] = { abilities: %w(update destroy) } unless params[:metadata] == false
59
+ end
58
60
  end
59
61
 
60
62
  def entity_url(entity)
@@ -90,5 +92,5 @@ def remote_search(*args)
90
92
  params = args.extract_options!
91
93
  collection = args.flatten
92
94
  FakeWeb.register_uri(:get, FactoryGirl::RemoteStrategy.collection_url(collection, params),
93
- body: (collection.first.is_a?(Class) ? "[]" : collection.map { |e| FactoryGirl::RemoteStrategy.entity_hash(e) }.to_json))
95
+ body: (collection.first.is_a?(Class) ? "[]" : collection.map { |e| FactoryGirl::RemoteStrategy.entity_hash(e, params) }.to_json))
94
96
  end
@@ -1,3 +1,3 @@
1
1
  module FactoryGirlRemoteStrategy
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :staff do
3
+ sequence(:id)
4
+ group_id 18
5
+ end
6
+ end
@@ -70,6 +70,17 @@ describe FactoryGirl::RemoteStrategy do
70
70
  memberships = Membership.find(:all, params: { search: { premises_id_in: [4] } }).to_a
71
71
  memberships.should eq []
72
72
  end
73
+
74
+ context "standard ActiveResource JSON formatter with included root" do
75
+ it "performs correct search if no metadata required" do
76
+ remote_search FactoryGirl.remote_list(:staff, 2), metadata: false
77
+ expect { Staff.find(:all, params: { metadata: false }) }.not_to raise_error
78
+ staff = Staff.find(:all, params: { metadata: false }).to_a
79
+ expect(staff).to be_kind_of Array
80
+ expect(staff.first).to be_kind_of Staff
81
+ expect(staff.first.group_id).to eq 18
82
+ end
83
+ end
73
84
  end
74
85
 
75
86
  describe "Search by primary_key" do
@@ -0,0 +1,8 @@
1
+ class Staff < ActiveResource::Base
2
+ self.format = :json
3
+ self.include_root_in_json = true
4
+ self.site = "http://example.com"
5
+ self.prefix = "/api/v1/"
6
+ self.element_name = "staff"
7
+ self.collection_name = "staff"
8
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factory_girl_remote_strategy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Avoyants
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-17 00:00:00.000000000 Z
11
+ date: 2015-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -128,6 +128,7 @@ files:
128
128
  - spec/factories/incident.rb
129
129
  - spec/factories/membership.rb
130
130
  - spec/factories/postcode.rb
131
+ - spec/factories/staff.rb
131
132
  - spec/factories/user.rb
132
133
  - spec/factories/victim.rb
133
134
  - spec/factory_girl_remote_not_found_strategy_spec.rb
@@ -138,6 +139,7 @@ files:
138
139
  - spec/support/json_with_metadata_formatter.rb
139
140
  - spec/support/membership.rb
140
141
  - spec/support/postcode.rb
142
+ - spec/support/staff.rb
141
143
  - spec/support/user.rb
142
144
  - spec/support/victim.rb
143
145
  homepage: ''
@@ -169,6 +171,7 @@ test_files:
169
171
  - spec/factories/incident.rb
170
172
  - spec/factories/membership.rb
171
173
  - spec/factories/postcode.rb
174
+ - spec/factories/staff.rb
172
175
  - spec/factories/user.rb
173
176
  - spec/factories/victim.rb
174
177
  - spec/factory_girl_remote_not_found_strategy_spec.rb
@@ -179,5 +182,6 @@ test_files:
179
182
  - spec/support/json_with_metadata_formatter.rb
180
183
  - spec/support/membership.rb
181
184
  - spec/support/postcode.rb
185
+ - spec/support/staff.rb
182
186
  - spec/support/user.rb
183
187
  - spec/support/victim.rb