promocode_generator 0.0.1 → 0.0.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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- Mjg4Y2M2NTJlZmI2MjVmNzczMDk5NDc1ZjdkZTRhNDRmYTYxNDI2Zg==
4
+ ZWY2NzRkYjAwZDVjODhiMjU2OTA3ODc4YTIyMjcwOTNmOWM1MTJlNw==
5
5
  data.tar.gz: !binary |-
6
- ZTU3ZjgwZWQ0ZmI1ZWY3ZjBkOTkzYmYzZjZlMjJmN2ZjNzkxZGNmZQ==
6
+ YzViMDVjMWU1ZmE3NGRiZGE0NWJhZTAxYjI1ZmQxNTgwZmM0YWJkMA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- YzM2YWI5ZTQzZjE1YjgwMmI2NGJhMTEzOWUxNWU4MmE0NWQ2NWRkNmQ5NDJk
10
- MDhhOGNkNTY1NjMxOGI5YmY0N2UzYTQ0NGU4MTk2YjFlN2ExOTRkODQ0Mjlh
11
- MWJhY2JiMmE5OGQ5MDI1N2I2YmEyNGMwMWJlN2MyNzExYzRjODU=
9
+ OWY5ZjdkZjhkNGNmMWUxZDhkOGFkOTNkNWNjNzEwZGE4ZDJmOWY3NjdiZmJi
10
+ ZTc1ODgwNGE0MGMzMjE3N2ZmZDc0MmZmMGE4NzJkOGY4ZmUwYTMwYWYzNzk3
11
+ ZTM0MzI5Y2U2YjYwMTBhNTVmZGQ5ZGMzNjQzNzJjNWRmYjM0NDg=
12
12
  data.tar.gz: !binary |-
13
- ZjY3MWNkZTIxMzM5ZjAwNmY2Yjg1MDY5MjYwMGExZjBhOTQwM2E5MTJmN2Vm
14
- MGUxNzRlOTgwZDhkMmYyMjVmZjRhM2IwYjNjYjA0ZWFlZTZiODZlZjVkNWU3
15
- YmZkZjgyZjc3YzgyNjJlNDc2N2M2Yjg1ZWQ2MzUxY2I2OGMwMTc=
13
+ ZGU5MjhlMWU3Nzg3MDliNmIwMjA3N2E0MzgzZGYyMDZjYWIyNzdlOTAxMDI1
14
+ ZDFlZmYyYmRhY2Q1ODVkNDgxNjg4MjZiZDMzYjE4ODc1Yzg3NDJkNWUwZDMz
15
+ ZjZmYTdjN2RiNDY4M2M2Njk2NmFlMWM0NjlmOTMyOWE4YjI5OWI=
data/README.md CHANGED
@@ -24,7 +24,7 @@ Without Rails:
24
24
 
25
25
  With Rails:
26
26
 
27
- In your model, use the promocode_attribute method to automatically generate a promotional code of length 8 in the before_save hook:
27
+ In your model, use the promocode_attribute method to automatically generate a promotional code of length 8 in the before_create hook:
28
28
 
29
29
  ```ruby
30
30
  class Campaign < ActiveRecord::Base
@@ -3,7 +3,7 @@ module PromocodeGenerator
3
3
  def promocode_attribute(attribute, options = {})
4
4
  options[:reject_if] ||= Proc.new { |code| self.where(attribute => code).any? }
5
5
 
6
- before_save do
6
+ before_create do
7
7
  # Make sure not to generate the same code twice!
8
8
  begin
9
9
  self.code = PromocodeGenerator.generate
@@ -1,3 +1,3 @@
1
1
  module PromocodeGenerator
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -16,7 +16,7 @@ end
16
16
  describe PromocodeGenerator::ModelAdditions do
17
17
  let(:campaign) { Campaign.new(:name => "foo") }
18
18
 
19
- context "when the model is saved" do
19
+ context "when a new model is saved" do
20
20
  it "generates a code" do
21
21
  expect(PromocodeGenerator).to receive(:generate).once.and_return('ABCDEFG')
22
22
  campaign.save!
@@ -28,6 +28,16 @@ describe PromocodeGenerator::ModelAdditions do
28
28
  end
29
29
  end
30
30
 
31
+ context "when an existing model is saved" do
32
+ it "does not touch the code" do
33
+ campaign.save!
34
+ code = campaign.code
35
+
36
+ campaign.name = "blubb"
37
+ expect { campaign.save! }.not_to change { campaign.code }
38
+ end
39
+ end
40
+
31
41
  context "when the reject_if block returns false" do
32
42
  before { RejectCondition.stub(:check).and_return(true, false) }
33
43
  after { RejectCondition.unstub(:check) }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: promocode_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pascal Ehlert