ar_doc_store 0.1.1 → 0.1.2

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: c4a712bbb6d8bdecd00a0266ffa78914695441c3
4
- data.tar.gz: 7f05b2322e14a906d047b4762c85014126c9989c
3
+ metadata.gz: 401138e35802b70caf47d7ee217637e2dd7ff4f3
4
+ data.tar.gz: f2bd57d5d211506a6150f377f0b5d4955badd513
5
5
  SHA512:
6
- metadata.gz: e8d6cd07419016a93663a11d2134ba2b1f2d60ff35013759031e807fde872f03204410dc7574a19f570ee8d8ccd5b974d1864c189d4e7efc1523ee878c324595
7
- data.tar.gz: b235a93f0323b82e4e2ac226e903729d162fec7cea3a91be892bd1850bd11f7f80a9b0ee05240d6303a8a6037bedb77b4709d54284f670c7b554f2e433e9e432
6
+ metadata.gz: 5d75e45318b4863bf94a2e40ed2925f13ccd98ddf5c5ef901e77e7570f3c0fe6bfd73dab1fdb8292a11ea48a2e60b11d8db561ddc0010a7bbc7b530daec55df2
7
+ data.tar.gz: c296bf89a1288ae64269e5c478d8caa684b0df4dd9f0272e67fad841ae91baa02a582e286c7b6882a7e4991c61909e7834f9e2e2a8b9128e7c5b1847d16d2a19
data/ar_doc_store.gemspec CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_dependency "activerecord", ">= 4.0"
22
+ spec.add_dependency "hashie", ">=3.4.0"
22
23
  spec.add_development_dependency "bundler", "~> 1.7"
23
24
  spec.add_development_dependency "rake", "~> 10.0"
24
25
  end
data/lib/ar_doc_store.rb CHANGED
@@ -22,7 +22,9 @@ module ArDocStore
22
22
  @mappings[:float] = 'ArDocStore::AttributeTypes::FloatAttribute'
23
23
  @mappings[:integer] = 'ArDocStore::AttributeTypes::IntegerAttribute'
24
24
  @mappings[:string] = 'ArDocStore::AttributeTypes::StringAttribute'
25
-
25
+ @mappings[:json] = 'ArDocStore::AttributeTypes::JsonAttribute'
26
+ @mappings[:uuid] = 'ArDocStore::AttributeTypes::UuidAttribute'
27
+
26
28
  def self.mappings
27
29
  @mappings
28
30
  end
@@ -14,7 +14,7 @@ module ArDocStore
14
14
  end
15
15
 
16
16
  def build
17
- model.store_attributes conversion, predicate, attribute, default
17
+ model.store_attribute attribute, conversion, predicate, default
18
18
  end
19
19
 
20
20
  end
@@ -0,0 +1,13 @@
1
+ class JsonAttribute < ArDocStore::AttributeTypes::Base
2
+ def conversion
3
+ Hashie::Mash
4
+ end
5
+
6
+ def predicate
7
+ 'jsonb'
8
+ end
9
+
10
+ def type
11
+ :object
12
+ end
13
+ end
@@ -85,16 +85,13 @@ module ArDocStore
85
85
  end
86
86
 
87
87
  #:nodoc:
88
- def store_attributes(typecast_method, predicate=nil, attributes=[], default_value=nil)
89
- attributes = [attributes] unless attributes.respond_to?(:each)
90
- attributes.each do |key|
91
- store_accessor :data, key
92
- add_ransacker(key, predicate)
93
- if typecast_method.is_a?(Symbol)
94
- store_attribute_from_symbol typecast_method, key, default_value
95
- else
96
- store_attribute_from_class typecast_method, key
97
- end
88
+ def store_attribute(attribute, typecast_method, predicate=nil, default_value=nil)
89
+ store_accessor :data, attribute
90
+ add_ransacker(attribute, predicate)
91
+ if typecast_method.is_a?(Symbol)
92
+ store_attribute_from_symbol typecast_method, attribute, default_value
93
+ else
94
+ store_attribute_from_class typecast_method, attribute
98
95
  end
99
96
  end
100
97
 
@@ -161,7 +158,17 @@ module ArDocStore
161
158
  end
162
159
  attribute_method_matchers_cache.clear
163
160
  end
164
-
161
+
162
+
163
+ # TODO: Remove the following deprecated methods once projects that use them have been refactored.
164
+ #:nodoc:
165
+ def store_attributes(typecast_method, predicate=nil, attributes=[], default_value=nil)
166
+ attributes = [attributes] unless attributes.respond_to?(:each)
167
+ attributes.each do |key|
168
+ store_attribute key, typecast_method, predicate, default_value
169
+ end
170
+ end
171
+
165
172
  # Allows you to define several string attributes at once. Deprecated.
166
173
  def string_attributes(*args)
167
174
  args.each do |arg|
@@ -1,3 +1,3 @@
1
1
  module ArDocStore
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ar_doc_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Furber
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-13 00:00:00.000000000 Z
11
+ date: 2015-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: hashie
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 3.4.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 3.4.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -77,6 +91,7 @@ files:
77
91
  - lib/ar_doc_store/attribute_types/enumeration.rb
78
92
  - lib/ar_doc_store/attribute_types/float.rb
79
93
  - lib/ar_doc_store/attribute_types/integer.rb
94
+ - lib/ar_doc_store/attribute_types/json.rb
80
95
  - lib/ar_doc_store/attribute_types/string.rb
81
96
  - lib/ar_doc_store/attribute_types/uuid.rb
82
97
  - lib/ar_doc_store/embeddable_model.rb
@@ -109,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
124
  version: '0'
110
125
  requirements: []
111
126
  rubyforge_project:
112
- rubygems_version: 2.4.5
127
+ rubygems_version: 2.4.6
113
128
  signing_key:
114
129
  specification_version: 4
115
130
  summary: A document storage gem meant for ActiveRecord PostgresQL JSON storage.