price_log 0.0.7 → 0.0.81

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: 078c5b3be315380772218e7e0af0a2e6e94eb84e
4
- data.tar.gz: f12bc2091798641779a84f6859c8af2557996af6
3
+ metadata.gz: f679530724a85ac247b3b5d9d3b317a6cc3767dc
4
+ data.tar.gz: 69f0fa3e074ecad3eb4522923e2811b2b7d8cb70
5
5
  SHA512:
6
- metadata.gz: 0812074823bcf60fda3a2a5a4abd64a324a3f9ee2961963004d69616de9ff516d12733ece24563c8502f69fb8814e4af375b642b365ab3a03f56a6327de38d37
7
- data.tar.gz: 89b1e547c60655b17119a777511678a9dca8ef3e8785b136cee8096cf45dc6d234b2be99cdf26dff1f5c21eb3a51b0468de816350b4642bca712cdf25cc7d37d
6
+ metadata.gz: 63ae38a8ac82230483e4f425c2ba5b69e27de6085f9e499522ecd1c6e0fdb69d12ca4d6884240955ef895ce90035e178decef9a0fd8d6ab3facb53fa71192657
7
+ data.tar.gz: 255ecfa492e6f3eecd0fe7f6684884d0283a63a4635e42f33f4834f40fcf687358ec8647f3dcf7d09dbe7254d9ef9708739652307d4df4dfedf66650b74c6be7
@@ -1,3 +1,3 @@
1
1
  module PriceLog
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.81"
3
3
  end
data/lib/price_log.rb CHANGED
@@ -17,6 +17,8 @@ module PriceLog
17
17
 
18
18
  module ClassMethods
19
19
 
20
+ UNDEFINED_CURRENT_VALUE_FIELD_NAME = "UNDEFINED_CURRENT_VALUE_FIELD_NAME"
21
+
20
22
  def has_price_log(name, options = {})
21
23
  configuration = {
22
24
  name: name,
@@ -26,17 +28,27 @@ module PriceLog
26
28
 
27
29
  _field_name_ = configuration[:name]
28
30
  _relation_name_ = "all_#{_field_name_}_price_logs".to_sym
29
-
30
-
31
31
  has_many _relation_name_, -> (object){ where("priceable_field_name = ?", _field_name_.to_sym)}, {as: :priceable, dependent: :destroy, class_name: "PriceLogEntry", validate:false}
32
32
 
33
+ _current_value_field_name_ = options[:current_value_field_name] || UNDEFINED_CURRENT_VALUE_FIELD_NAME
34
+
33
35
  class_eval %{
34
36
  def #{_field_name_}(date=nil)
37
+ #{ (_current_value_field_name_ == UNDEFINED_CURRENT_VALUE_FIELD_NAME) ? "return self.#{_current_value_field_name_} if self.respond_to?('#{_current_value_field_name_}') && date.nil? " : '' }
38
+ pl = self.#{_field_name_}_log(date)
39
+ pl.price unless pl.nil?
40
+
41
+ end
42
+
43
+ def #{_field_name_}_log(date=nil)
35
44
  self.#{_relation_name_}.for_date(self.class.name, self.id, '#{_field_name_}', date).first
36
45
  end
37
46
 
38
47
  def #{_field_name_}=(amount)
39
48
  ple = PriceLogEntry.new(priceable: self, price: amount, start_date: DateTime.now, priceable_field_name: '#{_field_name_}')
49
+
50
+ #{ (_current_value_field_name_ == UNDEFINED_CURRENT_VALUE_FIELD_NAME) ? "self.#{_current_value_field_name_} = amount if self.respond_to?('#{_current_value_field_name_}')" : ''}
51
+
40
52
  self.#{_relation_name_} << ple
41
53
  end
42
54
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: price_log
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.81
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrzej Liśkiewicz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-16 00:00:00.000000000 Z
11
+ date: 2015-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord