paid_up 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e4257b227a914f099573fcb7b7f19c8792424c8a
4
- data.tar.gz: 6f6698e0edce9fe33f7825e8a22ad32d845e06bd
3
+ metadata.gz: 954e8e00f2f48658af2ebd13a213bfcf5fce324c
4
+ data.tar.gz: bd53708ca30d9ec690cd59501dc6b69199db3b3f
5
5
  SHA512:
6
- metadata.gz: f64b48408433f454e18be2d99305a91b6015ee80b8fc66c603e6f7b6e65154810ac949797090992a3baa532d3c9403f47ee4590da25be1f52001a1a8408cf353
7
- data.tar.gz: cec0743c06b83497c3b4d6a12b2696eaafbbd09a5c9e5b9b0eb4df2fdee926152a1b3ce087e59f6b8808569f5cca1a2b666ef5cb110f6cc10f8a63cfbab0b6fe
6
+ metadata.gz: 722c22b55fb992937f6295aa57516bf220892eb777c0ba91a8dbe67e6563e3d51f6da2ff5b299336438571fbb9b4cf7d135a3390f65335c0aa18531e8b999dc8
7
+ data.tar.gz: 6870caa2fa1b6c5dd392c5a6b0ac5904c34579d3a4d1b41821d9181f239333f8d4dbe4515f84c7fff6b117f7070a1cb013e4fabe1534296ce201322c29e93615
data/Gemfile CHANGED
@@ -19,6 +19,7 @@ gem 'stripe', '~> 1.21'
19
19
  group :development do
20
20
  gem 'jeweler', '~> 2'
21
21
  gem 'bundler', '~> 1'
22
+ gem 'web-console', '~> 3.0'
22
23
  end
23
24
 
24
25
  group :test, :development do
@@ -38,12 +39,4 @@ group :test do
38
39
  gem 'shoulda-matchers', '~> 2.8'
39
40
  gem 'launchy', '~> 2.1.2', require: false
40
41
  gem 'coveralls', '~> 0.8', require: false
41
- end
42
-
43
- # Declare any dependencies that are still in development here instead of in
44
- # your gemspec. These might include edge Rails or gems from your path or
45
- # Git. Remember to move these dependencies to your gemspec before releasing
46
- # your gem to rubygems.org.
47
-
48
- # To use debugger
49
- # gem 'debugger'
42
+ end
data/README.md CHANGED
@@ -33,7 +33,7 @@ Next, install PaidUp for your user model by executing these commands:
33
33
 
34
34
  Edit your config file at `config/initializers/paid_up.rb` to set up some other key details.
35
35
 
36
- Set your environment variables with your STRIPE_PUBLISHABLE_KEY and your STRIPE_SECRET_KEY. (Check your operating system or IDE's documentation for details)
36
+ Set your environment variables with your `STRIPE_PUBLISHABLE_KEY` and `STRIPE_SECRET_KEY`. (Check your operating system or IDE's documentation for details. I use the gem `dotenv` for this.)
37
37
 
38
38
  ## Stripe Setup
39
39
 
@@ -45,6 +45,8 @@ Coupons do not need any further configuration, other than adding them to your St
45
45
 
46
46
  Next, add a `Stripe::Customer` to serve as the Anonymous User, and subscribe that customer to the anonymous plan. Note the customer's `id` and copy that into your stripe configuration file.
47
47
 
48
+ Pay close attention to the settings in `My Account` under `Subscriptions` and `Email`, as they have a big effect on how your site behaves.
49
+
48
50
  ## Features Setup
49
51
 
50
52
  Set up each `PaidUp::Feature` using the config file. (A config file is used rather than using records in an `ActiveRecord::Base` model because relationships cannot be created at runtime.) Associate the features with the corresponding plans using the `PaidUp::PlanFeatureSetting` model. For an example, check out the seeds file at [`spec/dummy/db/seeds.db`](spec/dummy/db/seeds.db)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.1
1
+ 0.9.2
@@ -3,10 +3,19 @@ module PaidUp
3
3
  helper :all
4
4
 
5
5
  before_action :set_locale
6
+ before_filter :warn_if_delinquent
6
7
 
7
8
  private
8
9
  def set_locale
9
10
  I18n.locale = params[:locale] || I18n.default_locale
10
11
  end
12
+
13
+ def warn_if_delinquent
14
+ if user_signed_in? && params[:controller] != 'paid_up/subscriptions'
15
+ if current_user.plan.nil? || current_user.stripe_data.delinquent
16
+ flash[:error] = :account_is_delinquent.l + :to_disable_this_message_subscribe.l(subscribe_link: paid_up.plans_path)
17
+ end
18
+ end
19
+ end
11
20
  end
12
21
  end
@@ -9,7 +9,7 @@ module PaidUp
9
9
 
10
10
  def new
11
11
  # nothing to do, @plan set by #set_plan
12
- if current_user.can_downgrade_to? @plan || @plan.amount == 0
12
+ if current_user.can_downgrade_to?(@plan) || @plan.amount == 0
13
13
  create
14
14
  end
15
15
  end
@@ -24,7 +24,7 @@ module PaidUp
24
24
  end
25
25
  rescue Stripe::InvalidRequestError => e
26
26
  flash[:error] = e.message
27
- redirect_to plans_path
27
+ redirect_to subscriptions_path
28
28
  rescue Stripe::CardError => e
29
29
  flash[:error] = e.message
30
30
  redirect_to new_plan_subscription_path
@@ -38,7 +38,10 @@ module PaidUp
38
38
  link = paid_up.new_plan_subscription_path(plan)
39
39
  if user_signed_in?
40
40
  text ||= :subscribe.l
41
- if current_user.can_upgrade_to? plan
41
+ if current_user.stripe_data.delinquent
42
+ icon_class = 'arrow-right'
43
+ css_class += 'btn-info'
44
+ elsif current_user.can_upgrade_to? plan
42
45
  icon_class = 'arrow-up'
43
46
  css_class += 'btn-success'
44
47
  elsif current_user.can_downgrade_to? plan
@@ -0,0 +1,6 @@
1
+ module PaidUp
2
+ class PaidUpMailer < ActionMailer::Base
3
+ default from: PaidUp.configuration.mail_from_address
4
+ layout 'mailer'
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ module PaidUp
2
+ class SubscriptionMailer < PaidUpMailer
3
+ def payment_failed_email(invoice)
4
+ @invoice = invoice
5
+ @user = User.find_by_stripe_id(@invoice.customer)
6
+ mail(to: @user.email, subject: :your_site_subscription_payment_failed.l(site: PaidUp.configuration.site_name))
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ %hmtl
2
+ %body
3
+ = yield
@@ -0,0 +1 @@
1
+ = yield
@@ -17,7 +17,17 @@
17
17
  - if current_user.table_rows_unlimited?(feature.slug)
18
18
  = :unlimited.l
19
19
  - else
20
- = :x_of_y_remaining.l x: current_user.table_rows_remaining(feature.slug), y: current_user.table_rows_allowed(feature.slug)
20
+ - remaining = current_user.table_rows_remaining(feature.slug)
21
+ - allowed = current_user.table_rows_allowed(feature.slug)
22
+ - used = current_user.table_rows(feature.slug)
23
+ - if remaining < 0
24
+ = :x_used_y_allowed.l x: used, y: allowed
25
+ - elsif allowed == 0
26
+ = :not_allowed.l
27
+ - elsif remaining == 0
28
+ = :y_remaining.l y: remaining
29
+ - else
30
+ = :x_of_y_remaining.l x: remaining, y: allowed
21
31
  - when 'rolify_rows'
22
32
  - if can? :own, feature.feature_model
23
33
  = icon 'ok'
@@ -26,6 +36,16 @@
26
36
  - if current_user.rolify_rows_unlimited?(feature.slug)
27
37
  = :unlimited.l
28
38
  - else
29
- = :x_of_y_remaining.l x: current_user.rolify_rows_remaining(feature.slug), y: current_user.rolify_rows_allowed(feature.slug)
39
+ - remaining = current_user.rolify_rows_remaining(feature.slug)
40
+ - allowed = current_user.rolify_rows_allowed(feature.slug)
41
+ - used = current_user.rolify_rows(feature.slug)
42
+ - if remaining < 0
43
+ = :x_used_y_allowed.l x: used, y: allowed
44
+ - elsif allowed == 0
45
+ = :not_allowed.l
46
+ - elsif remaining == 0
47
+ = :y_remaining.l y: remaining
48
+ - else
49
+ = :x_of_y_remaining.l x: remaining, y: allowed
30
50
  - else
31
51
  = :error.l
@@ -1,16 +1,18 @@
1
1
  - add_title :my_subscription_information.l
2
2
 
3
- %h2
4
- = current_user.plan.title
5
- .small= plan_charge_human current_user.plan, current_user.stripe_data.discount
6
-
7
- = subscription_dl current_user.subscription
8
-
9
- - if current_user.subscription.cancel_at_period_end
10
- %h3= :canceled.l
11
-
12
- %h3= :abilities.l
13
- = feature_abilities_table
14
-
15
- %p
16
- = icon_button_to 'info btn-lg', 'arrow-right', :switch_plans.l, paid_up.plans_path, method: :get
3
+ - if current_user.stripe_data.delinquent
4
+ %p= :account_is_delinquent.l
5
+ %p= :to_enable_paid_features_subscribe.l(subscribe_link: paid_up.plans_path)
6
+ %h3= :abilities.l
7
+ = feature_abilities_table mode: :delinquent
8
+ %p= icon_button_to 'info btn-lg', 'arrow-right', :choose_a_plan.l, paid_up.plans_path, method: :get
9
+ - else
10
+ %h2
11
+ = current_user.plan.title
12
+ .small= plan_charge_human current_user.plan, current_user.stripe_data.discount
13
+ = subscription_dl current_user.subscription
14
+ - if current_user.subscription.cancel_at_period_end
15
+ %h3= :canceled.l
16
+ %h3= :abilities.l
17
+ = feature_abilities_table
18
+ %p= icon_button_to 'info btn-lg', 'arrow-right', :switch_plans.l, paid_up.plans_path, method: :get
@@ -21,6 +21,7 @@
21
21
 
22
22
  en:
23
23
  abilities: "Abilities"
24
+ account_is_delinquent: 'The paid features associated with your account have been disabled pending payment.'
24
25
  already_subscribed: "Already Subscribed"
25
26
  are_you_sure: "Are you sure?"
26
27
  cancel_my_account: 'Cancel My Account'
@@ -29,6 +30,7 @@ en:
29
30
  card_ending_with: "%{brand} ending with %{last4}"
30
31
  card_number: 'Card Number'
31
32
  change_your_password: 'Change your password'
33
+ choose_a_plan: 'Choose a Plan'
32
34
  cost: 'Cost'
33
35
  could_not_cancel_subscription: 'Could not cancel subscription'
34
36
  could_not_associate_subscription: 'Could not associate subscription'
@@ -57,8 +59,10 @@ en:
57
59
  my_subscription_information: 'My Subscription Information'
58
60
  no_implicit_conversion_of_type_features: 'No implicit conversion of %{type} Features'
59
61
  no_features_associated_with_table: 'No features associated with %{table} table.'
62
+ not_allowed: 'Not Allowed'
60
63
  or_sign_in: "Or, Sign In"
61
64
  or_sign_up: "Or, Sign Up"
65
+ payment_failed_statement: "Hi there,\n\nUnfortunately your most recent invoice payment for %{amount} was declined.\n\nThis could be due to a change in your card number or your card expiring, cancelation of your credit card, or the bank not recognizing the payment and taking action to prevent it.\n\nPlease update your payment information as soon as possible by logging in here:\n\n%{url}"
62
66
  paid_thru: "Paid Thru"
63
67
  plan_name: "Plan Name"
64
68
  plans: "Plans"
@@ -77,6 +81,8 @@ en:
77
81
  subscription_plan_pricing: 'Subscription Plan Pricing'
78
82
  switch_plans: "Switch Plans"
79
83
  thank_you: "Thank You"
84
+ to_disable_this_message_subscribe: "To disable this message, please <a href='%{subscribe_link}'>Choose a Plan</a>."
85
+ to_enable_paid_features_subscribe: "To enable the paid features previously associated with your account, please <a href='%{subscribe_link}'>Choose a Plan</a>."
80
86
  trial_period: "Trial Period"
81
87
  unhappy: "Unhappy?"
82
88
  unknown_feature_type: 'Unknown Feature Type'
@@ -87,5 +93,7 @@ en:
87
93
  when_using_table_rows_table_must_exist: 'When using table_rows, the table must exist.'
88
94
  when_using_rolify_rows_table_must_exist: 'When using rolify_rows, the table must exist.'
89
95
  x_of_y_remaining: '%{x} of %{y} remaining'
96
+ x_used_y_allowed: '%{x} used, %{y} allowed'
90
97
  you_are_now_subscribed_to_the_plan: "You are now subscribed to the %{plan_name} Plan"
91
98
  you_will_be_charged: "You will be charged %{charge_amount}."
99
+ your_site_subscription_payment failed: "Your %{site} Subscription Payment Failed."
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "result": {
3
- "covered_percent": 95.74
3
+ "covered_percent": 94.82
4
4
  }
5
5
  }
@@ -50,6 +50,8 @@
50
50
  1,
51
51
  null,
52
52
  null,
53
+ 1,
54
+ null,
53
55
  null,
54
56
  null
55
57
  ],
@@ -103,7 +105,6 @@
103
105
  1,
104
106
  null,
105
107
  1,
106
- 1,
107
108
  null,
108
109
  1,
109
110
  1
@@ -140,7 +141,7 @@
140
141
  null,
141
142
  null,
142
143
  1,
143
- 97,
144
+ 101,
144
145
  null,
145
146
  null,
146
147
  1,
@@ -151,6 +152,8 @@
151
152
  1,
152
153
  1,
153
154
  1,
155
+ 1,
156
+ 1,
154
157
  null,
155
158
  null,
156
159
  null
@@ -297,8 +300,8 @@
297
300
  1,
298
301
  null,
299
302
  1,
300
- 498,
301
- 498,
303
+ 518,
304
+ 518,
302
305
  null,
303
306
  1,
304
307
  null,
@@ -325,10 +328,11 @@
325
328
  1,
326
329
  1,
327
330
  1,
328
- 6,
329
- 6,
331
+ 8,
332
+ 8,
330
333
  null,
331
334
  0,
335
+ 0,
332
336
  null,
333
337
  null,
334
338
  null,
@@ -359,13 +363,13 @@
359
363
  1,
360
364
  null,
361
365
  1,
362
- 65,
363
- 65,
364
- 65,
366
+ 66,
367
+ 66,
368
+ 66,
365
369
  null,
366
370
  1,
367
- 1842,
368
- 1842,
371
+ 4775,
372
+ 4775,
369
373
  null,
370
374
  null,
371
375
  1,
@@ -376,7 +380,7 @@
376
380
  null,
377
381
  null,
378
382
  1,
379
- 56,
383
+ 57,
380
384
  49,
381
385
  9,
382
386
  9,
@@ -387,28 +391,33 @@
387
391
  6,
388
392
  null,
389
393
  49,
394
+ 0,
395
+ 0,
396
+ null,
397
+ 49,
390
398
  49,
391
399
  null,
392
- 7,
400
+ 8,
393
401
  null,
394
402
  null,
395
403
  null,
396
404
  null,
397
- 7,
405
+ null,
406
+ 8,
398
407
  0,
399
408
  null,
400
- 7,
409
+ 8,
401
410
  null,
402
- 7,
403
- 7,
411
+ 8,
412
+ 8,
404
413
  null,
405
414
  0,
406
415
  null,
407
416
  null,
408
- 56,
409
- 56,
410
- 56,
411
- 56,
417
+ 57,
418
+ 57,
419
+ 57,
420
+ 57,
412
421
  null,
413
422
  0,
414
423
  null,
@@ -417,7 +426,11 @@
417
426
  2,
418
427
  null,
419
428
  1,
420
- 662,
429
+ 1043,
430
+ 1043,
431
+ null,
432
+ 0,
433
+ null,
421
434
  null,
422
435
  1,
423
436
  21,
@@ -429,7 +442,7 @@
429
442
  113,
430
443
  null,
431
444
  1,
432
- 41,
445
+ 45,
433
446
  null,
434
447
  1,
435
448
  21,
@@ -441,8 +454,8 @@
441
454
  113,
442
455
  null,
443
456
  1,
444
- 41,
445
- 41,
457
+ 45,
458
+ 45,
446
459
  null,
447
460
  1,
448
461
  2,
@@ -451,51 +464,59 @@
451
464
  2,
452
465
  null,
453
466
  1,
454
- 841,
467
+ 2265,
455
468
  0,
456
469
  null,
457
- 841,
470
+ 2265,
458
471
  null,
459
472
  1,
460
473
  201,
461
474
  null,
462
475
  1,
476
+ null,
477
+ null,
478
+ 84,
463
479
  84,
464
480
  null,
465
481
  1,
482
+ null,
483
+ null,
484
+ 94,
466
485
  94,
467
486
  null,
468
487
  1,
488
+ null,
489
+ 2,
469
490
  2,
470
491
  null,
471
492
  1,
472
- 300,
473
- 30,
493
+ 302,
494
+ 31,
474
495
  null,
475
496
  null,
476
497
  1,
477
498
  1,
478
- 365,
479
- 30,
499
+ 368,
500
+ 31,
480
501
  null,
481
- 335,
502
+ 337,
482
503
  0,
483
504
  null,
484
- 335,
505
+ 337,
485
506
  null,
486
507
  null,
487
- 365,
488
- 56,
508
+ 368,
509
+ 57,
489
510
  null,
490
511
  null,
491
- 365,
512
+ 368,
492
513
  0,
493
514
  null,
494
515
  null,
495
516
  1,
496
517
  1,
497
- 32,
498
- 7,
518
+ 34,
519
+ 8,
499
520
  null,
500
521
  null,
501
522
  1,
@@ -632,7 +653,23 @@
632
653
  null,
633
654
  null,
634
655
  null,
635
- 1
656
+ null,
657
+ 1,
658
+ null,
659
+ null,
660
+ null,
661
+ null,
662
+ null,
663
+ null,
664
+ null,
665
+ null,
666
+ null,
667
+ null,
668
+ null,
669
+ null,
670
+ null,
671
+ null,
672
+ null
636
673
  ],
637
674
  "/Users/karen/Gems/paid_up/spec/dummy/config/initializers/assets.rb": [
638
675
  null,
@@ -1038,7 +1075,7 @@
1038
1075
  null,
1039
1076
  null,
1040
1077
  1,
1041
- 30,
1078
+ 31,
1042
1079
  null,
1043
1080
  null,
1044
1081
  null
@@ -1064,37 +1101,30 @@
1064
1101
  "/Users/karen/Gems/paid_up/spec/dummy/spec/factories/user.rb": [
1065
1102
  1,
1066
1103
  1,
1067
- 8,
1104
+ 9,
1068
1105
  1,
1069
1106
  1,
1070
1107
  1,
1071
1108
  2,
1109
+ 1,
1072
1110
  null,
1073
1111
  null,
1074
1112
  null,
1075
1113
  null,
1076
1114
  null,
1077
1115
  1,
1078
- 7,
1079
- null,
1116
+ 8,
1117
+ 1,
1080
1118
  null,
1081
1119
  null,
1082
1120
  null,
1083
1121
  null,
1084
1122
  null,
1085
1123
  null,
1086
- 7,
1087
1124
  null,
1088
- null,
1089
- null
1090
- ],
1091
- "/Users/karen/Gems/paid_up/spec/dummy/config/routes.rb": [
1092
1125
  1,
1093
1126
  null,
1094
- null,
1095
- null,
1096
- 1,
1097
- 1,
1127
+ 7,
1098
1128
  null,
1099
1129
  null,
1100
1130
  null,
@@ -1102,11 +1132,19 @@
1102
1132
  null,
1103
1133
  null,
1104
1134
  null,
1135
+ 7,
1105
1136
  null,
1137
+ 8,
1106
1138
  null,
1107
1139
  null,
1108
1140
  null
1109
1141
  ],
1142
+ "/Users/karen/Gems/paid_up/spec/dummy/config/routes.rb": [
1143
+ 1,
1144
+ 1,
1145
+ 1,
1146
+ null
1147
+ ],
1110
1148
  "/Users/karen/Gems/paid_up/spec/dummy/app/models/user.rb": [
1111
1149
  1,
1112
1150
  1,
@@ -1228,12 +1266,21 @@
1228
1266
  1,
1229
1267
  null,
1230
1268
  1,
1269
+ 1,
1231
1270
  null,
1232
1271
  1,
1233
1272
  1,
1234
1273
  36,
1235
1274
  null,
1236
1275
  null,
1276
+ 1,
1277
+ 36,
1278
+ 0,
1279
+ 0,
1280
+ null,
1281
+ null,
1282
+ null,
1283
+ null,
1237
1284
  null
1238
1285
  ],
1239
1286
  "/Users/karen/Gems/paid_up/spec/dummy/app/controllers/application_controller.rb": [
@@ -1369,6 +1416,9 @@
1369
1416
  0,
1370
1417
  0,
1371
1418
  null,
1419
+ 0,
1420
+ 0,
1421
+ null,
1372
1422
  60,
1373
1423
  60,
1374
1424
  60,
@@ -1667,6 +1717,13 @@
1667
1717
  null,
1668
1718
  null
1669
1719
  ],
1720
+ "/Users/karen/Gems/paid_up/spec/mailers/paid_up/subscription_mailer_spec.rb": [
1721
+ 1,
1722
+ null,
1723
+ null,
1724
+ null,
1725
+ null
1726
+ ],
1670
1727
  "/Users/karen/Gems/paid_up/spec/models/group_spec.rb": [
1671
1728
  1,
1672
1729
  1,
@@ -1944,7 +2001,7 @@
1944
2001
  1,
1945
2002
  1,
1946
2003
  null,
1947
- 1778,
2004
+ 2159,
1948
2005
  54,
1949
2006
  4,
1950
2007
  null,
@@ -1996,8 +2053,8 @@
1996
2053
  null,
1997
2054
  null,
1998
2055
  1,
1999
- 182,
2000
- 182,
2056
+ 186,
2057
+ 186,
2001
2058
  null,
2002
2059
  0,
2003
2060
  null,
@@ -2022,8 +2079,8 @@
2022
2079
  1,
2023
2080
  null,
2024
2081
  1,
2025
- 1898,
2026
- 1893,
2082
+ 2279,
2083
+ 2274,
2027
2084
  5,
2028
2085
  null,
2029
2086
  null,
@@ -2590,9 +2647,21 @@
2590
2647
  null,
2591
2648
  null
2592
2649
  ],
2593
- "/Users/karen/Gems/paid_up/spec/dummy/db/seeds.rb": [
2594
- null,
2650
+ "/Users/karen/Gems/paid_up/spec/dummy/lib/tasks/system.rake": [
2651
+ 1,
2652
+ 1,
2653
+ 1,
2654
+ 0,
2655
+ 0,
2656
+ 0,
2657
+ 0,
2658
+ 0,
2659
+ 0,
2660
+ 0,
2595
2661
  null,
2662
+ null
2663
+ ],
2664
+ "/Users/karen/Gems/paid_up/spec/dummy/db/seeds.rb": [
2596
2665
  null,
2597
2666
  null,
2598
2667
  null,
@@ -2606,7 +2675,6 @@
2606
2675
  null,
2607
2676
  null,
2608
2677
  null,
2609
- null,
2610
2678
  1,
2611
2679
  null,
2612
2680
  null,
@@ -2622,7 +2690,6 @@
2622
2690
  null,
2623
2691
  null,
2624
2692
  null,
2625
- null,
2626
2693
  1,
2627
2694
  null,
2628
2695
  null,
@@ -2638,7 +2705,6 @@
2638
2705
  null,
2639
2706
  null,
2640
2707
  null,
2641
- null,
2642
2708
  1,
2643
2709
  null,
2644
2710
  null,
@@ -2654,6 +2720,11 @@
2654
2720
  null,
2655
2721
  null,
2656
2722
  null,
2723
+ 1,
2724
+ null,
2725
+ null,
2726
+ null,
2727
+ null,
2657
2728
  null,
2658
2729
  1,
2659
2730
  null,
@@ -2661,6 +2732,9 @@
2661
2732
  null,
2662
2733
  null,
2663
2734
  null,
2735
+ null,
2736
+ null,
2737
+ null,
2664
2738
  1,
2665
2739
  null,
2666
2740
  null,
@@ -2671,6 +2745,7 @@
2671
2745
  null,
2672
2746
  null,
2673
2747
  null,
2748
+ null,
2674
2749
  1,
2675
2750
  null,
2676
2751
  null,
@@ -2692,6 +2767,17 @@
2692
2767
  null,
2693
2768
  null,
2694
2769
  null,
2770
+ 1,
2771
+ null,
2772
+ null,
2773
+ null,
2774
+ null,
2775
+ null,
2776
+ null,
2777
+ null,
2778
+ null,
2779
+ null,
2780
+ null,
2695
2781
  null,
2696
2782
  1,
2697
2783
  null,
@@ -2773,6 +2859,13 @@
2773
2859
  null,
2774
2860
  null,
2775
2861
  null,
2862
+ 1,
2863
+ null,
2864
+ null,
2865
+ null,
2866
+ null,
2867
+ null,
2868
+ null,
2776
2869
  null,
2777
2870
  null,
2778
2871
  null,
@@ -2803,6 +2896,12 @@
2803
2896
  null,
2804
2897
  null,
2805
2898
  null,
2899
+ null,
2900
+ null,
2901
+ 1,
2902
+ null,
2903
+ null,
2904
+ null,
2806
2905
  null
2807
2906
  ],
2808
2907
  "/Users/karen/Gems/paid_up/app/models/paid_up/unlimited.rb": [
@@ -2901,6 +3000,6 @@
2901
3000
  null
2902
3001
  ]
2903
3002
  },
2904
- "timestamp": 1455133171
3003
+ "timestamp": 1455582470
2905
3004
  }
2906
3005
  }