promocode_generator 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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