protobuf-activerecord 1.2.4 → 1.2.5
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/.gitignore +1 -0
- data/lib/protobuf/activerecord/protoable/scope.rb +4 -4
- data/lib/protobuf/activerecord/version.rb +1 -1
- data/spec/protoable/scope_spec.rb +9 -6
- metadata +4 -5
- data/.rvmrc +0 -1
data/.gitignore
CHANGED
@@ -22,10 +22,6 @@ module Protoable
|
|
22
22
|
# end
|
23
23
|
#
|
24
24
|
def field_scope(field, scope_name)
|
25
|
-
unless self.respond_to?(scope_name)
|
26
|
-
raise Protoable::SearchScopeError, "Undefined scope :#{scope_name}. :#{scope_name} must be defined before it can be used as a field scope."
|
27
|
-
end
|
28
|
-
|
29
25
|
searchable_fields[field] = scope_name
|
30
26
|
end
|
31
27
|
|
@@ -47,6 +43,10 @@ module Protoable
|
|
47
43
|
searchable_fields.each do |field, scope_name|
|
48
44
|
next unless proto.respond_to_and_has_and_present?(field)
|
49
45
|
|
46
|
+
unless self.respond_to?(scope_name)
|
47
|
+
raise Protoable::SearchScopeError, "Undefined scope :#{scope_name}."
|
48
|
+
end
|
49
|
+
|
50
50
|
values = [ proto.__send__(field) ].flatten
|
51
51
|
values.map!(&:to_i) if proto.get_field_by_name(field).enum?
|
52
52
|
|
@@ -21,17 +21,20 @@ describe Protoable::Scope do
|
|
21
21
|
User.search_scope(request).should eq User.by_email("foo@test.co")
|
22
22
|
end
|
23
23
|
end
|
24
|
-
end
|
25
24
|
|
26
|
-
|
27
|
-
|
28
|
-
after { User.instance_variable_set("@_searchable_fields", @fields) }
|
25
|
+
context "when a searchable field uses a non-existant scope" do
|
26
|
+
let(:request) { UserSearchMessage.new(:email => ["foo@test.co"]) }
|
29
27
|
|
30
|
-
context "when given a search scope that is not defined" do
|
31
28
|
it "raises an exception" do
|
32
|
-
|
29
|
+
User.stub(:searchable_fields).and_return({ :email => :by_hullabaloo })
|
30
|
+
expect { User.search_scope(request) }.to raise_exception(/Undefined scope :by_hullabaloo/)
|
33
31
|
end
|
34
32
|
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe ".field_scope" do
|
36
|
+
before { @fields = User.instance_variable_get("@_searchable_fields") }
|
37
|
+
after { User.instance_variable_set("@_searchable_fields", @fields) }
|
35
38
|
|
36
39
|
it "stores the search scope in the searchable fields hash using the field as the key" do
|
37
40
|
User.field_scope :guid, :by_guid
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: protobuf-activerecord
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -197,7 +197,6 @@ extra_rdoc_files: []
|
|
197
197
|
files:
|
198
198
|
- .gitignore
|
199
199
|
- .rspec
|
200
|
-
- .rvmrc
|
201
200
|
- Gemfile
|
202
201
|
- LICENSE.txt
|
203
202
|
- README.md
|
@@ -240,7 +239,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
240
239
|
version: '0'
|
241
240
|
segments:
|
242
241
|
- 0
|
243
|
-
hash:
|
242
|
+
hash: 262184748097554895
|
244
243
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
245
244
|
none: false
|
246
245
|
requirements:
|
@@ -249,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
249
248
|
version: '0'
|
250
249
|
segments:
|
251
250
|
- 0
|
252
|
-
hash:
|
251
|
+
hash: 262184748097554895
|
253
252
|
requirements: []
|
254
253
|
rubyforge_project:
|
255
254
|
rubygems_version: 1.8.24
|
data/.rvmrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm use 1.9.3@protobuf-activerecord --create
|