due_credit 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,8 +1,6 @@
1
1
  source "http://rubygems.org"
2
2
 
3
3
  gem "rails", "~> 3.2.13"
4
- gem "capybara", ">= 0.4.0"
5
- gem "sqlite3"
6
4
 
7
5
  # To use debugger (ruby-debug for Ruby 1.8.7+, ruby-debug19 for Ruby 1.9.2+)
8
6
  # gem 'ruby-debug'
data/Gemfile.lock CHANGED
@@ -30,12 +30,6 @@ GEM
30
30
  multi_json (~> 1.0)
31
31
  arel (3.0.2)
32
32
  builder (3.0.4)
33
- capybara (2.1.0)
34
- mime-types (>= 1.16)
35
- nokogiri (>= 1.3.3)
36
- rack (>= 1.0.0)
37
- rack-test (>= 0.5.4)
38
- xpath (~> 2.0)
39
33
  erubis (2.7.0)
40
34
  hike (1.2.2)
41
35
  i18n (0.6.1)
@@ -46,7 +40,6 @@ GEM
46
40
  treetop (~> 1.4.8)
47
41
  mime-types (1.23)
48
42
  multi_json (1.7.3)
49
- nokogiri (1.5.9)
50
43
  polyglot (0.3.3)
51
44
  rack (1.4.5)
52
45
  rack-cache (1.2)
@@ -78,20 +71,15 @@ GEM
78
71
  multi_json (~> 1.0)
79
72
  rack (~> 1.0)
80
73
  tilt (~> 1.1, != 1.3.0)
81
- sqlite3 (1.3.7)
82
74
  thor (0.18.1)
83
75
  tilt (1.4.1)
84
76
  treetop (1.4.12)
85
77
  polyglot
86
78
  polyglot (>= 0.3.1)
87
79
  tzinfo (0.3.37)
88
- xpath (2.0.0)
89
- nokogiri (~> 1.3)
90
80
 
91
81
  PLATFORMS
92
82
  ruby
93
83
 
94
84
  DEPENDENCIES
95
- capybara (>= 0.4.0)
96
85
  rails (~> 3.2.13)
97
- sqlite3
data/README.rdoc CHANGED
@@ -27,9 +27,13 @@ Or install it yourself as:
27
27
  # From your app
28
28
 
29
29
  DueCredit::Campaign.create!(name: 'something', threshold: 5, endpoint: '/welcome')
30
- DueCredit::Referrer.create!(campaign: DueCredit::Campaign.first, token: 'unique-token-1234', model: 'User', model_id: User.first.id)
30
+ DueCredit::Referrer.create!(campaign: DueCredit::Campaign.first, model: 'User', model_id: User.first.id)
31
31
  DueCredit::Referral.create!(referrer: DueCredit::Referrer.first)
32
32
 
33
+ Alternatively you can put in a Rails initializer something like this
34
+
35
+ $due_credit_campaign = DueCredit::Campaign.where(name:'Product Announce', endpoint: '/').first_or_create
36
+
33
37
  # Routes added
34
38
 
35
39
  get "due-credit/:token" => "due_credit/credit#click_through" , :as => :due_credit
@@ -1,3 +1,6 @@
1
+ # Create Campaigns for attribution for your sharing
2
+ #
3
+
1
4
  module DueCredit
2
5
  class Campaign < ActiveRecord::Base
3
6
  attr_accessible :name, :threshold, :endpoint
@@ -1,3 +1,8 @@
1
+ # Use to create a sharing token for your Referrer
2
+ #
3
+ # DueCredit::Referrer.create(campaign: $due_credit_campaign, model: 'user', model_id: user.id)
4
+ #
5
+
1
6
  module DueCredit
2
7
  class Referrer < ActiveRecord::Base
3
8
  attr_accessible :token, :model, :model_id, :campaign
@@ -5,5 +10,24 @@ module DueCredit
5
10
  has_many :referrals
6
11
  validates_presence_of :token, :model, :model_id, :campaign_id
7
12
  validates_uniqueness_of :token
13
+ before_validation :on => :create do |record|
14
+ record.ensure_unique
15
+ end
16
+
17
+ # Ensures that the token will be unique when created
18
+ #
19
+ #
20
+ def ensure_unique(&block)
21
+ begin
22
+ self['token'] = (block ? block.call : self.class.generate_unique)
23
+ end while self.class.exists?('token' => self['token'])
24
+
25
+ self['token']
26
+ end
27
+
28
+ def self.generate_unique
29
+ SecureRandom.hex(5)
30
+ end
31
+
8
32
  end
9
33
  end
data/due_credit.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
7
7
  s.version = DueCredit::VERSION
8
8
  s.authors = [ "Thomas Hanley" ]
9
9
  s.email = [ "tjhanleyx@gmail.com" ]
10
- s.homepage = "http://github.com/tjhanley"
10
+ s.homepage = "https://github.com/tjhanley/due_credit"
11
11
  s.summary = "#{s.name}-#{s.version}"
12
12
  s.description = "The system will give the user credit for the referral. You can set a threshold on a campaign so the user gets full credit"
13
13
  #s.files = Dir["{app,lib,config}/**/*"] + ["MIT-LICENSE", "Rakefile", "Gemfile", "README.rdoc"]
@@ -1,3 +1,3 @@
1
1
  module DueCredit
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/due_credit.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # CURRENT FILE :: lib/due_credit.rb
2
2
  # Requires
3
3
  require "active_support/dependencies"
4
+ require "securerandom"
4
5
  module DueCredit
5
6
  # Our host application root path
6
7
  # We set this when the engine is initialized
@@ -13,4 +14,4 @@ module DueCredit
13
14
 
14
15
  end
15
16
  # Require our engine
16
- require "due_credit/engine"
17
+ require "due_credit/engine"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: due_credit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-15 00:00:00.000000000 Z
12
+ date: 2013-05-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -104,7 +104,7 @@ files:
104
104
  - test/integration/navigation_test.rb
105
105
  - test/support/integration_case.rb
106
106
  - test/test_helper.rb
107
- homepage: http://github.com/tjhanley
107
+ homepage: https://github.com/tjhanley/due_credit
108
108
  licenses: []
109
109
  post_install_message:
110
110
  rdoc_options: []
@@ -127,5 +127,5 @@ rubyforge_project:
127
127
  rubygems_version: 1.8.23
128
128
  signing_key:
129
129
  specification_version: 3
130
- summary: due_credit-0.0.1
130
+ summary: due_credit-0.1.0
131
131
  test_files: []