shop_bunny 0.7.4.19 → 0.7.4.20
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/app/models/cart_item.rb +1 -2
- data/app/models/item.rb +8 -0
- data/lib/shop_bunny.rb +0 -23
- metadata +3 -3
data/app/models/cart_item.rb
CHANGED
|
@@ -19,7 +19,7 @@ class CartItem < ActiveRecord::Base
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def item=(new_item)
|
|
22
|
-
write_attribute(:raw_item, new_item.to_json)
|
|
22
|
+
write_attribute(:raw_item, new_item.shop_bunny_json_attributes.to_json)
|
|
23
23
|
@parsed_raw_item = nil
|
|
24
24
|
new_item
|
|
25
25
|
end
|
|
@@ -28,7 +28,6 @@ class CartItem < ActiveRecord::Base
|
|
|
28
28
|
return nil unless raw_item
|
|
29
29
|
unless @parsed_raw_item
|
|
30
30
|
json = JSON.parse(raw_item)
|
|
31
|
-
json = json.values.first if json.kind_of?(Hash)
|
|
32
31
|
|
|
33
32
|
if json
|
|
34
33
|
@parsed_raw_item = ShopBunny.item_model_class_name.constantize.new(json)
|
data/app/models/item.rb
CHANGED
|
@@ -2,5 +2,13 @@
|
|
|
2
2
|
class Item < ActiveRecord::Base
|
|
3
3
|
validates_presence_of :price
|
|
4
4
|
validates_numericality_of :price
|
|
5
|
+
|
|
6
|
+
# The host app can return a hash here that get's serialized on the
|
|
7
|
+
# CartItems and Items get instanstiated of this hash when CartItem#item is
|
|
8
|
+
# called.
|
|
9
|
+
# The default implementation uses the attributes hash of ActiveRecord
|
|
10
|
+
def shop_bunny_json_attributes
|
|
11
|
+
attributes
|
|
12
|
+
end
|
|
5
13
|
end
|
|
6
14
|
|
data/lib/shop_bunny.rb
CHANGED
|
@@ -18,28 +18,5 @@ module ShopBunny
|
|
|
18
18
|
# initializer which gets generated by `rails generate shop_bunny:install`
|
|
19
19
|
def self.setup
|
|
20
20
|
yield self
|
|
21
|
-
|
|
22
|
-
item_class = ShopBunny.item_model_class_name.constantize
|
|
23
|
-
|
|
24
|
-
unless item_class.method_defined?(:as_json_with_included_id)
|
|
25
|
-
item_class.class_eval do
|
|
26
|
-
def shop_bunny_json_options(options)
|
|
27
|
-
options ||= {}
|
|
28
|
-
options[:methods] ||= []
|
|
29
|
-
if options[:methods].kind_of?(Array)
|
|
30
|
-
options[:methods] += [:id]
|
|
31
|
-
else
|
|
32
|
-
options[:methods] = [options[:methods], :id]
|
|
33
|
-
end
|
|
34
|
-
options[:methods].uniq!
|
|
35
|
-
options
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def as_json_with_included_id(options = {})
|
|
39
|
-
as_json_without_included_id(shop_bunny_json_options(options))
|
|
40
|
-
end
|
|
41
|
-
alias_method_chain :as_json, :included_id
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
21
|
end
|
|
45
22
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: shop_bunny
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 79
|
|
5
5
|
prerelease: false
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 7
|
|
9
9
|
- 4
|
|
10
|
-
-
|
|
11
|
-
version: 0.7.4.
|
|
10
|
+
- 20
|
|
11
|
+
version: 0.7.4.20
|
|
12
12
|
platform: ruby
|
|
13
13
|
authors:
|
|
14
14
|
- kopfmaschine.com
|