betty_resource 0.0.15 → 0.0.16

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6f15b419fed1cc1e6cf1e61ee2bf9c0bdf1b0aa7
4
- data.tar.gz: 20b4093a0fc07e120aaf822b45503208c38b2d5d
3
+ metadata.gz: bdf799400eb031e8a42991aa8e2ee9b6d4687591
4
+ data.tar.gz: d6f47073026b86f3ce86263818095a601afa20b8
5
5
  SHA512:
6
- metadata.gz: 15f3e06f1630cbf1ccb386566ba208d3608f349bcb29191735c9e7461e0ea0d22a54a9ef41be3d290c0cb1f3cfb26b9a430b7929c7b8275361c2bcf3082e9ce9
7
- data.tar.gz: 24db37a18113f1dd2aedf90865b9925a5340a3bd1c194e516594d51d929e0e5d051d6c8ec5dc054f1732d58397a3ad959bf5c5631fe56a3bd2b34b440a23d1a8
6
+ metadata.gz: 08fbca04440922885d21556a25620d845c4d002dde90addf451180073cade1669ffef3d1153b5e3ee6f296787807cc2e9d9f94ac5ee054ca22aa8418f7f5a21a
7
+ data.tar.gz: 99168e3923909cb6c18215d29adb4eec8a891857b6e90067e8e9faabc385cb78f4efbcb73369cc7ecc4aa2aef3430fdb452489e820971a233ea1026702f99fe9
@@ -0,0 +1,29 @@
1
+ module BettyResource
2
+ class Model
3
+ class Property
4
+ module Types
5
+ module HasAndBelongsToMany
6
+ include Association
7
+
8
+ def collection?
9
+ true
10
+ end
11
+
12
+ def typecast(record, value)
13
+ filter = {
14
+ 'operator' => 'and',
15
+ 'conditions' => [
16
+ 'path' => [inverse_property.id, model.property(:id).id],
17
+ 'predicate' => 'eq',
18
+ 'criteria' => record.id
19
+ ]
20
+ }
21
+
22
+ target_model.all :filters => [filter]
23
+ end
24
+
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,5 +1,6 @@
1
1
  require 'betty_resource/model/property/types/association'
2
2
  require 'betty_resource/model/property/types/belongs_to'
3
+ require 'betty_resource/model/property/types/has_and_belongs_to_many'
3
4
  require 'betty_resource/model/property/types/has_many'
4
5
 
5
6
  module BettyResource
@@ -19,7 +20,7 @@ module BettyResource
19
20
 
20
21
  def initialize(id, model_id, name, kind, options)
21
22
  @id, @model_id, @name, @kind, @options = id, model_id, name, kind, options
22
- extend_kind_methods if %(belongs_to has_many).include?(kind)
23
+ extend_kind_methods if %(belongs_to has_and_belongs_to_many has_many).include?(kind)
23
24
  end
24
25
 
25
26
  def collection?
@@ -1,7 +1,7 @@
1
1
  module BettyResource
2
2
  MAJOR = 0
3
3
  MINOR = 0
4
- TINY = 15
4
+ TINY = 16
5
5
 
6
6
  VERSION = [MAJOR, MINOR, TINY].join('.')
7
7
  end
@@ -148,6 +148,14 @@ module Unit
148
148
  group = BettyResource::Group.get(3)
149
149
  assert_equal %w(), group.relations.map(&:first_name).sort
150
150
  end
151
+
152
+ it "should be able to fetch a has-and-belongs-to-many value" do
153
+ user = BettyResource::User.get(5)
154
+ assert_equal %w(admin), user.roles.map(&:name)
155
+
156
+ user = BettyResource::User.get(1)
157
+ assert_equal ['admin', 'blocks admin'], user.roles.map(&:name).sort
158
+ end
151
159
  end
152
160
 
153
161
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: betty_resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.15
4
+ version: 0.0.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chiel Wester
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-11-20 00:00:00.000000000 Z
14
+ date: 2013-11-25 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: httparty
@@ -123,6 +123,7 @@ files:
123
123
  - lib/betty_resource/model/property.rb
124
124
  - lib/betty_resource/model/property/types/association.rb
125
125
  - lib/betty_resource/model/property/types/belongs_to.rb
126
+ - lib/betty_resource/model/property/types/has_and_belongs_to_many.rb
126
127
  - lib/betty_resource/model/property/types/has_many.rb
127
128
  - lib/betty_resource/model/record.rb
128
129
  - lib/betty_resource/version.rb