paid_up 0.11.4 → 0.11.5
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 +4 -4
- data/Gemfile +2 -0
- data/VERSION +1 -1
- data/lib/paid_up/mixins/paid_for.rb +79 -74
- data/lib/paid_up/mixins/subscriber.rb +168 -148
- data/lib/paid_up.rb +2 -2
- data/paid_up.gemspec +6 -5
- metadata +16 -4
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d3b6766b534600023dd6ca246f15831806ecd9f
|
4
|
+
data.tar.gz: b3f579ab8dfd4041808a5878492ed1098b1c7898
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3670c879dac94ea3b75bd3272ee8f5999ff5a5b10ecf66b82bebf6ad0963b21e8f9701e686f7bd47a501d821474639354f35efaa9ec980a021d8c5c96f208949
|
7
|
+
data.tar.gz: 2dd17be69cb0f0a5b8a72855f675382d7bd688900a0f67855a078594c182e33392df6f2723237d1f4aaf9a9f271712d728ae6b7984a0f6e6131248955be73a3a
|
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.11.
|
1
|
+
0.11.5
|
@@ -4,9 +4,35 @@ module PaidUp
|
|
4
4
|
module PaidFor
|
5
5
|
extend ActiveSupport::Concern
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
def paid_for(options = {})
|
8
|
+
cattr_accessor :paid_for_scope_symbol # Creates class-level instance var
|
9
9
|
|
10
|
+
send :extend, ClassMethods
|
11
|
+
send :include, InstanceMethods
|
12
|
+
|
13
|
+
self.paid_for_scope_symbol = options.fetch(:scope, :all)
|
14
|
+
feature.nil? && raise(
|
15
|
+
:feature_not_found_feature.l(feature: table_name)
|
16
|
+
)
|
17
|
+
case feature.setting_type
|
18
|
+
when 'boolean'
|
19
|
+
# Nothing needs doing
|
20
|
+
when 'rolify_rows'
|
21
|
+
resourcify
|
22
|
+
attr_accessor :owner
|
23
|
+
when 'table_rows'
|
24
|
+
belongs_to :user
|
25
|
+
User.has_many table_name.to_sym
|
26
|
+
else
|
27
|
+
raise(
|
28
|
+
:value_is_not_a_valid_setting_type.l(
|
29
|
+
value: feature.setting_type
|
30
|
+
)
|
31
|
+
)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
module ClassMethods
|
10
36
|
def feature
|
11
37
|
PaidUp::Feature.find_by_slug(table_name)
|
12
38
|
end
|
@@ -14,92 +40,71 @@ module PaidUp
|
|
14
40
|
def paid_for_scope
|
15
41
|
send(self.paid_for_scope_symbol)
|
16
42
|
end
|
43
|
+
end
|
17
44
|
|
18
|
-
|
19
|
-
|
20
|
-
feature.
|
21
|
-
:feature_not_found_feature.l(feature: table_name)
|
22
|
-
)
|
23
|
-
case feature.setting_type
|
24
|
-
when 'boolean'
|
25
|
-
# Nothing needs doing
|
26
|
-
when 'rolify_rows'
|
27
|
-
resourcify
|
28
|
-
attr_accessor :owner
|
45
|
+
module InstanceMethods
|
46
|
+
def owners
|
47
|
+
case self.class.feature.setting_type
|
29
48
|
when 'table_rows'
|
30
|
-
|
31
|
-
|
49
|
+
[user]
|
50
|
+
when 'rolify_rows'
|
51
|
+
User.with_role(:owner, self)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def save_with_owner(owner)
|
56
|
+
if save
|
57
|
+
owner.add_role(:owner, self)
|
58
|
+
self
|
32
59
|
else
|
33
|
-
|
34
|
-
:value_is_not_a_valid_setting_type.l(
|
35
|
-
value: feature.setting_type
|
36
|
-
)
|
37
|
-
)
|
60
|
+
false
|
38
61
|
end
|
62
|
+
end
|
39
63
|
|
40
|
-
|
64
|
+
# How many records can this user have?
|
65
|
+
def owners_enabled_count
|
66
|
+
setting = 0
|
67
|
+
owners.each do |subscriber|
|
68
|
+
setting += subscriber.plan.feature_setting(self.class.table_name)
|
69
|
+
end
|
70
|
+
setting
|
71
|
+
end
|
72
|
+
|
73
|
+
def owners_records
|
74
|
+
ids = []
|
75
|
+
owners.each do |subscriber|
|
41
76
|
case self.class.feature.setting_type
|
42
77
|
when 'table_rows'
|
43
|
-
|
78
|
+
ids += subscriber.send(self.class.table_name)
|
79
|
+
.paid_for_scope
|
80
|
+
.ids
|
44
81
|
when 'rolify_rows'
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
send(:define_method, :save_with_owner) do |owner|
|
50
|
-
if save
|
51
|
-
owner.add_role(:owner, self)
|
52
|
-
self
|
82
|
+
ids += self.class
|
83
|
+
.with_role(:owner, subscriber)
|
84
|
+
.paid_for_scope
|
85
|
+
.ids
|
53
86
|
else
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
# How many records can this user have?
|
59
|
-
send(:define_method, :owners_enabled_count) do
|
60
|
-
setting = 0
|
61
|
-
owners.each do |subscriber|
|
62
|
-
setting += subscriber.plan.feature_setting(self.class.table_name)
|
63
|
-
end
|
64
|
-
setting
|
65
|
-
end
|
66
|
-
|
67
|
-
send(:define_method, :owners_records) do
|
68
|
-
ids = []
|
69
|
-
owners.each do |subscriber|
|
70
|
-
case self.class.feature.setting_type
|
71
|
-
when 'table_rows'
|
72
|
-
ids += subscriber.send(self.class.table_name)
|
73
|
-
.paid_for_scope
|
74
|
-
.ids
|
75
|
-
when 'rolify_rows'
|
76
|
-
ids += self.class
|
77
|
-
.with_role(:owner, subscriber)
|
78
|
-
.paid_for_scope
|
79
|
-
.ids
|
80
|
-
else
|
81
|
-
raise(
|
82
|
-
:no_features_associated_with_table.l(
|
83
|
-
table: self.class.table_name
|
84
|
-
)
|
87
|
+
raise(
|
88
|
+
:no_features_associated_with_table.l(
|
89
|
+
table: self.class.table_name
|
85
90
|
)
|
86
|
-
|
91
|
+
)
|
87
92
|
end
|
88
|
-
self.class.where(id: ids)
|
89
93
|
end
|
94
|
+
self.class.where(id: ids)
|
95
|
+
end
|
90
96
|
|
91
|
-
|
92
|
-
|
93
|
-
|
97
|
+
def owners_records_count
|
98
|
+
owners_records.count
|
99
|
+
end
|
94
100
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
end
|
101
|
+
def enabled
|
102
|
+
if owners_enabled_count >= owners_records_count
|
103
|
+
true
|
104
|
+
else
|
105
|
+
enabled_records = owners_records.order('created_at ASC')
|
106
|
+
.limit(owners_enabled_count)
|
107
|
+
enabled_records.include? self
|
103
108
|
end
|
104
109
|
end
|
105
110
|
end
|
@@ -3,166 +3,186 @@ module PaidUp
|
|
3
3
|
# Subscriber Mixin
|
4
4
|
module Subscriber
|
5
5
|
extend ActiveSupport::Concern
|
6
|
-
class_methods do
|
7
|
-
def subscriber
|
8
|
-
features = PaidUp::Feature.find_all_by_setting_type('table_rows')
|
9
|
-
features.each do |feature|
|
10
|
-
has_many feature.slug.to_sym
|
11
|
-
end
|
12
6
|
|
13
|
-
|
14
|
-
|
15
|
-
|
7
|
+
def subscriber
|
8
|
+
features = PaidUp::Feature.find_all_by_setting_type('table_rows')
|
9
|
+
features.each do |feature|
|
10
|
+
has_many feature.slug.to_sym
|
11
|
+
end
|
16
12
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
stripe_data.subscription.save
|
46
|
-
end
|
47
|
-
subscription.plan = plan_to_set.stripe_id
|
48
|
-
result = subscription.save ||
|
49
|
-
(raise(:could_not_update_subscription.l) && false)
|
50
|
-
else # Totally new subscription
|
51
|
-
args = {
|
52
|
-
source: stripe_token,
|
53
|
-
plan: plan_to_set.stripe_id,
|
54
|
-
email: email,
|
55
|
-
trial_end: trial_end
|
56
|
-
}
|
57
|
-
coupon_code.present? && args[:coupon] = coupon_code
|
58
|
-
customer = Stripe::Customer.create(args) ||
|
59
|
-
(raise(:could_not_create_subscription.l) && false)
|
60
|
-
|
61
|
-
# If there is an update to be made, we go ahead
|
62
|
-
if stripe_id != customer.id
|
63
|
-
result = update_attributes(stripe_id: customer.id) ||
|
64
|
-
(raise(:could_not_associate_subscription.l) && false)
|
65
|
-
else
|
66
|
-
result = true
|
67
|
-
end
|
13
|
+
after_initialize :set_default_attributes, :load_stripe_data
|
14
|
+
before_save :remove_anonymous_association
|
15
|
+
before_destroy { |record| record.stripe_data.delete }
|
16
|
+
send :include, InstanceMethods
|
17
|
+
end
|
18
|
+
|
19
|
+
module InstanceMethods
|
20
|
+
def reload(*args, &blk)
|
21
|
+
super(*args, &blk)
|
22
|
+
load_stripe_data
|
23
|
+
self
|
24
|
+
end
|
25
|
+
|
26
|
+
def stripe_data
|
27
|
+
(stripe_id.present? || new_record?) && @customer_stripe_data
|
28
|
+
end
|
29
|
+
|
30
|
+
def cards
|
31
|
+
stripe_data.present? && stripe_data.sources.all(object: 'card')
|
32
|
+
end
|
33
|
+
|
34
|
+
def subscribe_to_plan(plan_to_set, stripe_token = nil, trial_end = nil)
|
35
|
+
# If there is an existing subscription
|
36
|
+
if stripe_id.present? && !subscription.nil?
|
37
|
+
if stripe_token.present? # The customer has entered a new card
|
38
|
+
subscription.source = stripe_token
|
39
|
+
subscription.save
|
40
|
+
reload
|
68
41
|
end
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
42
|
+
if coupon_code.present?
|
43
|
+
stripe_data.coupon = coupon_code
|
44
|
+
stripe_data.save
|
45
|
+
end
|
46
|
+
if trial_end.present?
|
47
|
+
stripe_data.subscription.trial_end = trial_end
|
48
|
+
stripe_data.subscription.save
|
49
|
+
end
|
50
|
+
subscription.plan = plan_to_set.stripe_id
|
51
|
+
result = subscription.save ||
|
52
|
+
(raise(:could_not_update_subscription.l) && false)
|
53
|
+
else # Totally new subscription
|
54
|
+
args = {
|
55
|
+
source: stripe_token,
|
56
|
+
plan: plan_to_set.stripe_id,
|
57
|
+
email: email,
|
58
|
+
trial_end: trial_end
|
59
|
+
}
|
60
|
+
coupon_code.present? && args[:coupon] = coupon_code
|
61
|
+
customer = Stripe::Customer.create(args) ||
|
62
|
+
(raise(:could_not_create_subscription.l) && false)
|
63
|
+
|
64
|
+
# If there is an update to be made, we go ahead
|
65
|
+
if stripe_id != customer.id
|
66
|
+
result = update_attributes(stripe_id: customer.id) ||
|
67
|
+
(raise(:could_not_associate_subscription.l) && false)
|
77
68
|
else
|
78
|
-
|
69
|
+
result = true
|
79
70
|
end
|
80
71
|
end
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
end
|
94
|
-
send(:define_method, :rolify_rows_unlimited?) do |table_name|
|
95
|
-
rolify_rows_allowed(table_name) == PaidUp::Unlimited.to_i
|
96
|
-
end
|
97
|
-
send(:define_method, :rolify_rows_remaining) do |table_name|
|
98
|
-
rolify_rows_allowed(table_name) - rolify_rows(table_name)
|
99
|
-
end
|
100
|
-
send(:define_method, :rolify_rows_allowed) do |table_name|
|
101
|
-
plan.feature_setting table_name
|
102
|
-
end
|
103
|
-
send(:define_method, :rolify_rows) do |table_name|
|
104
|
-
model = table_name.classify.constantize
|
105
|
-
model.with_role(:owner, self).paid_for_scope.size
|
106
|
-
end
|
107
|
-
send(:define_method, :plan_stripe_id) do
|
108
|
-
subscription.nil? && return
|
109
|
-
subscription.plan.id
|
110
|
-
end
|
111
|
-
send(:define_method, :subscription) do
|
112
|
-
stripe_data.nil? && subscribe_to_free_plan
|
113
|
-
stripe_data.subscriptions.data.first
|
114
|
-
end
|
115
|
-
send(:define_method, :is_subscribed_to?) do |plan_to_check|
|
116
|
-
plan.present? && plan.id == plan_to_check.id
|
117
|
-
end
|
118
|
-
send(:define_method, :can_upgrade_to?) do |plan_to_check|
|
119
|
-
plan.nil? || (
|
120
|
-
!is_subscribed_to?(plan_to_check) &&
|
121
|
-
(plan_to_check.sort_order.to_i > plan.sort_order.to_i)
|
122
|
-
)
|
123
|
-
end
|
124
|
-
send(:define_method, :can_downgrade_to?) do |plan_to_check|
|
125
|
-
!plan.nil? && (
|
126
|
-
!is_subscribed_to?(plan_to_check) &&
|
127
|
-
(plan_to_check.sort_order.to_i < plan.sort_order.to_i)
|
128
|
-
)
|
72
|
+
result && Rails.cache.delete("#{stripe_id}/stripe_data") && reload
|
73
|
+
end
|
74
|
+
|
75
|
+
def subscribe_to_free_plan
|
76
|
+
subscribe_to_plan PaidUp::Plan.free
|
77
|
+
end
|
78
|
+
|
79
|
+
def plan
|
80
|
+
if subscription.present?
|
81
|
+
PaidUp::Plan.find_by_stripe_id(subscription.plan.id)
|
82
|
+
else
|
83
|
+
PaidUp::Plan.free
|
129
84
|
end
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
85
|
+
end
|
86
|
+
|
87
|
+
def table_rows_unlimited?(table_name)
|
88
|
+
table_rows_allowed(table_name) == PaidUp::Unlimited.to_i
|
89
|
+
end
|
90
|
+
|
91
|
+
def table_rows_remaining(table_name)
|
92
|
+
table_rows_allowed(table_name) - table_rows(table_name)
|
93
|
+
end
|
94
|
+
|
95
|
+
def table_rows_allowed(table_name)
|
96
|
+
plan.feature_setting table_name
|
97
|
+
end
|
98
|
+
|
99
|
+
def table_rows(table_name)
|
100
|
+
model = table_name.classify.constantize
|
101
|
+
model.where(user: self).paid_for_scope.size
|
102
|
+
end
|
103
|
+
|
104
|
+
def rolify_rows_unlimited?(table_name)
|
105
|
+
rolify_rows_allowed(table_name) == PaidUp::Unlimited.to_i
|
106
|
+
end
|
107
|
+
|
108
|
+
def rolify_rows_remaining(table_name)
|
109
|
+
rolify_rows_allowed(table_name) - rolify_rows(table_name)
|
110
|
+
end
|
111
|
+
|
112
|
+
def rolify_rows_allowed(table_name)
|
113
|
+
plan.feature_setting table_name
|
114
|
+
end
|
115
|
+
|
116
|
+
def rolify_rows(table_name)
|
117
|
+
model = table_name.classify.constantize
|
118
|
+
model.with_role(:owner, self).paid_for_scope.size
|
119
|
+
end
|
120
|
+
|
121
|
+
def plan_stripe_id
|
122
|
+
subscription.nil? && return
|
123
|
+
subscription.plan.id
|
124
|
+
end
|
125
|
+
|
126
|
+
def subscription
|
127
|
+
stripe_data.nil? && subscribe_to_free_plan
|
128
|
+
stripe_data.subscriptions.data.first
|
129
|
+
end
|
130
|
+
|
131
|
+
def is_subscribed_to?(plan_to_check)
|
132
|
+
plan.present? && plan.id == plan_to_check.id
|
133
|
+
end
|
134
|
+
|
135
|
+
def can_upgrade_to?(plan_to_check)
|
136
|
+
plan.nil? || (
|
137
|
+
!is_subscribed_to?(plan_to_check) &&
|
138
|
+
(plan_to_check.sort_order.to_i > plan.sort_order.to_i)
|
139
|
+
)
|
140
|
+
end
|
141
|
+
|
142
|
+
def can_downgrade_to?(plan_to_check)
|
143
|
+
!plan.nil? && (
|
144
|
+
!is_subscribed_to?(plan_to_check) &&
|
145
|
+
(plan_to_check.sort_order.to_i < plan.sort_order.to_i)
|
146
|
+
)
|
147
|
+
end
|
148
|
+
|
149
|
+
def using_free_plan?
|
150
|
+
plan.nil? ||
|
151
|
+
stripe_data.delinquent ||
|
152
|
+
(plan.stripe_id == PaidUp.configuration.free_plan_stripe_id)
|
153
|
+
end
|
154
|
+
|
155
|
+
private
|
156
|
+
|
157
|
+
def set_default_attributes
|
158
|
+
if new_record?
|
159
|
+
self.stripe_id = PaidUp.configuration.anonymous_customer_stripe_id
|
134
160
|
end
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
161
|
+
end
|
162
|
+
|
163
|
+
def load_stripe_data
|
164
|
+
working_stripe_id = if new_record?
|
165
|
+
PaidUp.configuration
|
166
|
+
.anonymous_customer_stripe_id
|
167
|
+
else
|
168
|
+
!stripe_id.present? && subscribe_to_free_plan
|
169
|
+
stripe_id
|
139
170
|
end
|
140
|
-
send(:private, :set_default_attributes)
|
141
|
-
send(:define_method, :load_stripe_data) do
|
142
|
-
working_stripe_id = if new_record?
|
143
|
-
PaidUp.configuration
|
144
|
-
.anonymous_customer_stripe_id
|
145
|
-
else
|
146
|
-
!stripe_id.present? && subscribe_to_free_plan
|
147
|
-
stripe_id
|
148
|
-
end
|
149
|
-
|
150
|
-
@customer_stripe_data = Rails.cache.fetch(
|
151
|
-
"#{working_stripe_id}/stripe_data",
|
152
|
-
expires_in: 12.hours
|
153
|
-
) do
|
154
|
-
Stripe::Customer.retrieve working_stripe_id
|
155
|
-
end
|
156
171
|
|
157
|
-
|
172
|
+
@customer_stripe_data = Rails.cache.fetch(
|
173
|
+
"#{working_stripe_id}/stripe_data",
|
174
|
+
expires_in: 12.hours
|
175
|
+
) do
|
176
|
+
Stripe::Customer.retrieve working_stripe_id
|
158
177
|
end
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
178
|
+
|
179
|
+
@customer_stripe_data.nil? && raise(:could_not_load_subscription.l)
|
180
|
+
end
|
181
|
+
|
182
|
+
def remove_anonymous_association
|
183
|
+
if stripe_id == PaidUp.configuration.anonymous_customer_stripe_id
|
184
|
+
self.stripe_id = nil
|
164
185
|
end
|
165
|
-
send(:private, :remove_anonymous_association)
|
166
186
|
end
|
167
187
|
end
|
168
188
|
end
|
data/lib/paid_up.rb
CHANGED
@@ -40,5 +40,5 @@ Integer.send(:include, PaidUp::Extensions::Integer)
|
|
40
40
|
|
41
41
|
Stripe::APIResource.send(:include, PaidUp::Extensions::Stripe)
|
42
42
|
|
43
|
-
ActiveRecord::Base.send(:
|
44
|
-
ActiveRecord::Base.send(:
|
43
|
+
ActiveRecord::Base.send(:extend, PaidUp::Mixins::Subscriber)
|
44
|
+
ActiveRecord::Base.send(:extend, PaidUp::Mixins::PaidFor)
|
data/paid_up.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: paid_up 0.11.
|
5
|
+
# stub: paid_up 0.11.5 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "paid_up"
|
9
|
-
s.version = "0.11.
|
9
|
+
s.version = "0.11.5"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Karen Lundgren"]
|
14
|
-
s.date = "2017-
|
14
|
+
s.date = "2017-03-12"
|
15
15
|
s.description = "Allows a model of your choosing (such as users) to subscribe to a plan, which enables features."
|
16
16
|
s.email = "karen.e.lundgren@gmail.com"
|
17
17
|
s.extra_rdoc_files = [
|
@@ -132,7 +132,6 @@ Gem::Specification.new do |s|
|
|
132
132
|
"spec/dummy/coverage/.last_run.json",
|
133
133
|
"spec/dummy/coverage/.resultset.json",
|
134
134
|
"spec/dummy/coverage/.resultset.json.lock",
|
135
|
-
"spec/dummy/db/development.sqlite3",
|
136
135
|
"spec/dummy/db/migrate/20150406154440_create_users_table.rb",
|
137
136
|
"spec/dummy/db/migrate/20150517175135_create_groups_table.rb",
|
138
137
|
"spec/dummy/db/migrate/20150517175136_create_doodads_table.rb",
|
@@ -146,7 +145,6 @@ Gem::Specification.new do |s|
|
|
146
145
|
"spec/dummy/db/migrate/20170220001913_add_active_column_to_groups.rb",
|
147
146
|
"spec/dummy/db/schema.rb",
|
148
147
|
"spec/dummy/db/seeds.rb",
|
149
|
-
"spec/dummy/db/test.sqlite3",
|
150
148
|
"spec/dummy/lib/assets/.keep",
|
151
149
|
"spec/dummy/lib/tasks/system.rake",
|
152
150
|
"spec/dummy/log/.keep",
|
@@ -212,6 +210,7 @@ Gem::Specification.new do |s|
|
|
212
210
|
s.add_runtime_dependency(%q<cancancan>, ["~> 1.10"])
|
213
211
|
s.add_runtime_dependency(%q<rolify>, ["~> 5"])
|
214
212
|
s.add_runtime_dependency(%q<stripe>, ["~> 1.36"])
|
213
|
+
s.add_development_dependency(%q<dotenv-rails>, ["~> 2.2"])
|
215
214
|
s.add_development_dependency(%q<jeweler>, ["~> 2"])
|
216
215
|
s.add_development_dependency(%q<bundler>, ["~> 1"])
|
217
216
|
s.add_development_dependency(%q<web-console>, ["~> 3.0"])
|
@@ -239,6 +238,7 @@ Gem::Specification.new do |s|
|
|
239
238
|
s.add_dependency(%q<cancancan>, ["~> 1.10"])
|
240
239
|
s.add_dependency(%q<rolify>, ["~> 5"])
|
241
240
|
s.add_dependency(%q<stripe>, ["~> 1.36"])
|
241
|
+
s.add_dependency(%q<dotenv-rails>, ["~> 2.2"])
|
242
242
|
s.add_dependency(%q<jeweler>, ["~> 2"])
|
243
243
|
s.add_dependency(%q<bundler>, ["~> 1"])
|
244
244
|
s.add_dependency(%q<web-console>, ["~> 3.0"])
|
@@ -267,6 +267,7 @@ Gem::Specification.new do |s|
|
|
267
267
|
s.add_dependency(%q<cancancan>, ["~> 1.10"])
|
268
268
|
s.add_dependency(%q<rolify>, ["~> 5"])
|
269
269
|
s.add_dependency(%q<stripe>, ["~> 1.36"])
|
270
|
+
s.add_dependency(%q<dotenv-rails>, ["~> 2.2"])
|
270
271
|
s.add_dependency(%q<jeweler>, ["~> 2"])
|
271
272
|
s.add_dependency(%q<bundler>, ["~> 1"])
|
272
273
|
s.add_dependency(%q<web-console>, ["~> 3.0"])
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paid_up
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karen Lundgren
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -178,6 +178,20 @@ dependencies:
|
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '1.36'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: dotenv-rails
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '2.2'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '2.2'
|
181
195
|
- !ruby/object:Gem::Dependency
|
182
196
|
name: jeweler
|
183
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -496,7 +510,6 @@ files:
|
|
496
510
|
- spec/dummy/coverage/.last_run.json
|
497
511
|
- spec/dummy/coverage/.resultset.json
|
498
512
|
- spec/dummy/coverage/.resultset.json.lock
|
499
|
-
- spec/dummy/db/development.sqlite3
|
500
513
|
- spec/dummy/db/migrate/20150406154440_create_users_table.rb
|
501
514
|
- spec/dummy/db/migrate/20150517175135_create_groups_table.rb
|
502
515
|
- spec/dummy/db/migrate/20150517175136_create_doodads_table.rb
|
@@ -510,7 +523,6 @@ files:
|
|
510
523
|
- spec/dummy/db/migrate/20170220001913_add_active_column_to_groups.rb
|
511
524
|
- spec/dummy/db/schema.rb
|
512
525
|
- spec/dummy/db/seeds.rb
|
513
|
-
- spec/dummy/db/test.sqlite3
|
514
526
|
- spec/dummy/lib/assets/.keep
|
515
527
|
- spec/dummy/lib/tasks/system.rake
|
516
528
|
- spec/dummy/log/.keep
|
Binary file
|
data/spec/dummy/db/test.sqlite3
DELETED
Binary file
|