promocode_generator 0.0.3 → 0.0.4
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.
@@ -6,9 +6,9 @@ module PromocodeGenerator
|
|
6
6
|
before_create do
|
7
7
|
# Make sure not to generate the same code twice!
|
8
8
|
begin
|
9
|
-
self.
|
10
|
-
end while options[:reject_if].call(
|
11
|
-
end
|
9
|
+
self.send("#{attribute}=", PromocodeGenerator.generate)
|
10
|
+
end while options[:reject_if].call(self.send(attribute))
|
11
|
+
end
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
@@ -3,14 +3,14 @@ require 'spec_helper'
|
|
3
3
|
# Dummy reject condition that can be stubbed in the tests below
|
4
4
|
module RejectCondition
|
5
5
|
def self.check(code)
|
6
|
-
false
|
6
|
+
false
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
10
|
class Campaign < SuperModel::Base
|
11
11
|
include ActiveModel::Validations::Callbacks
|
12
12
|
extend PromocodeGenerator::ModelAdditions
|
13
|
-
promocode_attribute :
|
13
|
+
promocode_attribute :my_code, :reject_if => Proc.new { |code| RejectCondition.check(code) }
|
14
14
|
end
|
15
15
|
|
16
16
|
describe PromocodeGenerator::ModelAdditions do
|
@@ -24,17 +24,17 @@ describe PromocodeGenerator::ModelAdditions do
|
|
24
24
|
|
25
25
|
it "assigns the code to the model" do
|
26
26
|
campaign.save!
|
27
|
-
expect(campaign.
|
27
|
+
expect(campaign.my_code).not_to be_nil
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
31
|
context "when an existing model is saved" do
|
32
32
|
it "does not touch the code" do
|
33
33
|
campaign.save!
|
34
|
-
code = campaign.
|
35
|
-
|
34
|
+
code = campaign.my_code
|
35
|
+
|
36
36
|
campaign.name = "blubb"
|
37
|
-
expect { campaign.save! }.not_to change { campaign.
|
37
|
+
expect { campaign.save! }.not_to change { campaign.my_code }
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: promocode_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Pascal Ehlert
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2014-07-03 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,6 +22,7 @@ dependencies:
|
|
20
22
|
type: :development
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
@@ -27,6 +30,7 @@ dependencies:
|
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: rake
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
35
|
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
@@ -34,6 +38,7 @@ dependencies:
|
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
43
|
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
@@ -41,6 +46,7 @@ dependencies:
|
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: rspec
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
51
|
- - ! '>='
|
46
52
|
- !ruby/object:Gem::Version
|
@@ -48,6 +54,7 @@ dependencies:
|
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
59
|
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
@@ -55,6 +62,7 @@ dependencies:
|
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: supermodel
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
67
|
- - ! '>='
|
60
68
|
- !ruby/object:Gem::Version
|
@@ -62,6 +70,7 @@ dependencies:
|
|
62
70
|
type: :development
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
75
|
- - ! '>='
|
67
76
|
- !ruby/object:Gem::Version
|
@@ -90,26 +99,27 @@ files:
|
|
90
99
|
homepage: ''
|
91
100
|
licenses:
|
92
101
|
- MIT
|
93
|
-
metadata: {}
|
94
102
|
post_install_message:
|
95
103
|
rdoc_options: []
|
96
104
|
require_paths:
|
97
105
|
- lib
|
98
106
|
required_ruby_version: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
99
108
|
requirements:
|
100
109
|
- - ! '>='
|
101
110
|
- !ruby/object:Gem::Version
|
102
111
|
version: '0'
|
103
112
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
104
114
|
requirements:
|
105
115
|
- - ! '>='
|
106
116
|
- !ruby/object:Gem::Version
|
107
117
|
version: '0'
|
108
118
|
requirements: []
|
109
119
|
rubyforge_project:
|
110
|
-
rubygems_version:
|
120
|
+
rubygems_version: 1.8.24
|
111
121
|
signing_key:
|
112
|
-
specification_version:
|
122
|
+
specification_version: 3
|
113
123
|
summary: Generates a safe, unique and easy to quote promotional code
|
114
124
|
test_files:
|
115
125
|
- spec/promocode_generator/model_additions_spec.rb
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
ZTk5YjgyNGEyMWZhNWI2NTU1NzhiNGI0ZmMyNjdiMzE3YTJhZGZkOA==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YjMyNGYyNGQxMTIzZDlhMTJlNTZlZTZkMDMxZmU1MTJmZWQxZDNjOQ==
|
7
|
-
!binary "U0hBNTEy":
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
NmRmYmEyMjkyYjQ4OWE4YmQyOGIwMjQxY2JjZWJmMDc4NjU5MDU3NDc1NDI4
|
10
|
-
YTFiNmNlMWM2MjZhNmIwNDY4M2FhNTc5YTJmMjYyNjJhOWJmNjZjNzVhNmRl
|
11
|
-
YzhmNjQ3NzJhMTNkNTkyZDUzM2RmOWZkNGM1MmZlNzIyMDA5ZmY=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
NDMwMzA2OWE0NjYxMDUxZjI1OGU2NzcxZmI2OGVkYTdjNjRkZGZjN2MwNzQ0
|
14
|
-
YWY5Y2ZmYzUxNDdmMjVhMGVkNTFlODJhYTM1MTIwOGVhNTQxNGI1Yjk2ZDI5
|
15
|
-
NjkxMzY3MTcxMzBjOTg3ODNkMGYxODYzZjNiZmZjNmMyMmEyMDE=
|