unidom-shopping 1.1 → 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: 5249024e787de46a268dfc2f6f3870343e166c89
4
- data.tar.gz: b8cece8d174069da706b18f7f4edb2c585ee95d0
3
+ metadata.gz: 01ba8e2577b0bbbe897922b66e51dfa922ab34aa
4
+ data.tar.gz: 9e6b72f3e68221489d226e6f4bcf63fa3fc192b4
5
5
  SHA512:
6
- metadata.gz: 9a4e13e2eba9853519f949e1ed27a205be55e4e2074c90cb3dd49638f2b8da92e1bdf35263fd99af0323cdcc09e96957f3314762b5b5e438c5eedd0d725d22a7
7
- data.tar.gz: f3e73689c8c4ccbb3800041f240b8130e97289ebda0b02e17c6b37e2106426534de6c465392835642dc40c69410d0cda3d872595775ce09e1f52d4bd8935f927
6
+ metadata.gz: 83172089bdb1a141696cfcf774919e5547ca7adbc439187248731172e46ceecdb833aaf3084de9025746124f4c33605182e9ec73d9aabeb3b8246cc9d83a83cb
7
+ data.tar.gz: a2dad5839f8ccc5d436144618aeb8f2026d333f3a7b4aa73e19fa4f454ad010c97a25523d1aab2e7f6d24d55e841a09a688753251c196dc8d040f2fef90a462b
data/README.md CHANGED
@@ -53,7 +53,9 @@ include Unidom::Shopping::Concerns::AsItemShopper
53
53
  ### As Cart Shopper
54
54
  The As Cart Shopper concern do the following tasks for the includer automatically:
55
55
  1. Define the has_many :shopping_carts macro as: ``has_many :shopping_carts, class_name: 'Unidom::Shopping::ShoppingCart', as: :shopper``
56
+ 2. Define the #get_cart! method as: ``get_cart!(from: nil, at: Time.now)``
56
57
 
57
58
  ### As Item Shopper
58
59
  The As Item Shopper concern do the following tasks for the includer automatically:
59
60
  1. Define the has_many :shopping_items macro as: ``has_many :shopping_items, class_name: 'Unidom::Shopping::ShoppingItem', as: :shopper``
61
+ 2. Define the #add! method as: ``add!(it, into: nil, at: Time.now, unit_price: 0, quantity: 1)``
@@ -6,6 +6,14 @@ module Unidom::Shopping::Concerns::AsCartShopper
6
6
 
7
7
  has_many :shopping_carts, class_name: 'Unidom::Shopping::ShoppingCart', as: :shopper
8
8
 
9
+ def get_cart!(from: nil, at: Time.now)
10
+ shopping_carts.shop_is(from).valid_at(now: at).alive.first_or_create! opened_at: at
11
+ end
12
+
13
+ #def get_cart?(from: nil, at: Time.now)
14
+ # shopping_carts.shop_is(from).valid_at(now: at).alive.exists?
15
+ #end
16
+
9
17
  end
10
18
 
11
19
  module ClassMethods
@@ -6,6 +6,22 @@ module Unidom::Shopping::Concerns::AsItemShopper
6
6
 
7
7
  has_many :shopping_items, class_name: 'Unidom::Shopping::ShoppingItem', as: :shopper
8
8
 
9
+ def add!(it, into: nil, at: Time.now, unit_price: 0, quantity: 1)
10
+ query = shopping_items.shopping_cart_is(into).shopped_is(it).valid_at(now: at).alive
11
+ item = query.first
12
+ if item.present?
13
+ item.unit_price = unit_price
14
+ item.increment! quantity: quantity
15
+ else
16
+ item = shopping_items.create! shopping_cart: into, shopped: it, unit_price: unit_price, quantity: quantity, opened_at: at
17
+ end
18
+ item
19
+ end
20
+
21
+ #def add?(it, into: nil, at: Time.now)
22
+ # shopping_items.shopping_cart_is(into).shopped_is(it).valid_at(now: at).alive.exists?
23
+ #end
24
+
9
25
  end
10
26
 
11
27
  module ClassMethods
@@ -1,5 +1,5 @@
1
1
  module Unidom
2
2
  module Shopping
3
- VERSION = '1.1'.freeze
3
+ VERSION = '1.2'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unidom-shopping
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.1'
4
+ version: '1.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Topbit Du
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-30 00:00:00.000000000 Z
11
+ date: 2016-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: unidom-common