ar_doc_store 0.1.1 → 0.1.2

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: 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.