paid_up 0.2.4 → 0.3.0

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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -0
  3. data/README.md +28 -20
  4. data/VERSION +1 -1
  5. data/app/helpers/paid_up/features_helper.rb +3 -3
  6. data/app/models/paid_up/ability.rb +29 -11
  7. data/app/models/paid_up/feature.rb +70 -8
  8. data/app/models/paid_up/features_plan.rb +1 -2
  9. data/app/models/paid_up/plan.rb +9 -13
  10. data/app/models/paid_up/unlimited.rb +15 -0
  11. data/app/views/paid_up/features/_abilities_table.html.haml +13 -4
  12. data/app/views/paid_up/subscriptions/new.html.haml +20 -20
  13. data/bin/rails +8 -1
  14. data/config/locales/en.yml +4 -1
  15. data/coverage/.last_run.json +1 -1
  16. data/coverage/.resultset.json +291 -145
  17. data/db/migrate/20150407105900_create_paid_up_features_plans_table.rb +1 -1
  18. data/lib/generators/paid_up/install/install_generator.rb +6 -0
  19. data/lib/generators/paid_up/install/templates/initializer.rb +21 -1
  20. data/lib/paid_up/{integer.rb → extensions/integer.rb} +2 -4
  21. data/lib/paid_up/{stripe_extensions.rb → extensions/stripe.rb} +3 -6
  22. data/lib/paid_up/mixins/paid_for.rb +24 -0
  23. data/lib/paid_up/{mixins.rb → mixins/subscriber.rb} +28 -22
  24. data/lib/paid_up/validators/rolify_rows.rb +9 -0
  25. data/lib/paid_up/{table_validator.rb → validators/table_rows.rb} +2 -2
  26. data/lib/paid_up.rb +27 -7
  27. data/paid_up.gemspec +26 -16
  28. data/spec/dummy/app/models/ability.rb +0 -1
  29. data/spec/dummy/app/models/doodad.rb +3 -0
  30. data/spec/dummy/app/models/group.rb +1 -1
  31. data/spec/dummy/app/models/role.rb +10 -0
  32. data/spec/dummy/app/models/user.rb +2 -3
  33. data/spec/dummy/bin/rspec +3 -0
  34. data/spec/dummy/config/application.rb +0 -1
  35. data/spec/dummy/config/initializers/paid_up.rb +21 -1
  36. data/spec/dummy/config/initializers/rolify.rb +7 -0
  37. data/spec/dummy/config/routes.rb +10 -0
  38. data/spec/dummy/db/development.sqlite3 +0 -0
  39. data/spec/dummy/db/migrate/20150517175135_create_groups_table.rb +0 -1
  40. data/spec/dummy/db/migrate/20150517175136_create_doodads_table.rb +9 -0
  41. data/spec/dummy/db/migrate/{20150518000915_add_devise_to_users.rb → 20150523010827_add_devise_to_users.rb} +0 -0
  42. data/spec/dummy/db/migrate/20150523010837_rolify_create_roles.rb +19 -0
  43. data/spec/dummy/db/migrate/{20150518000917_create_paid_up_features_plans_table.paid_up.rb → 20150523010838_create_paid_up_features_plans_table.paid_up.rb} +1 -1
  44. data/spec/dummy/db/migrate/{20150518000919_create_paid_up_plans_table.paid_up.rb → 20150523010839_create_paid_up_plans_table.paid_up.rb} +0 -0
  45. data/spec/dummy/db/migrate/{20150519164355_add_stripe_id_column_to_users.paid_up.rb → 20150523010840_add_stripe_id_column_to_users.paid_up.rb} +0 -0
  46. data/spec/dummy/db/schema.rb +29 -15
  47. data/spec/dummy/db/seeds/features_plans.seeds.rb +9 -9
  48. data/spec/dummy/db/test.sqlite3 +0 -0
  49. data/spec/dummy/log/development.log +932 -108863
  50. data/spec/models/paid_up/feature_spec.rb +23 -5
  51. data/spec/models/paid_up/features_plan_spec.rb +2 -1
  52. data/spec/models/paid_up/plan_spec.rb +8 -32
  53. data/spec/models/user_spec.rb +110 -37
  54. data/spec/rails_helper.rb +1 -0
  55. data/spec/support/plans_and_features.rb +16 -62
  56. data/spec/views/paid_up/subscriptions_spec.rb +1 -1
  57. metadata +47 -15
  58. data/db/migrate/20150407110100_create_paid_up_features_table.rb +0 -11
  59. data/lib/paid_up/unlimited.rb +0 -17
  60. data/spec/dummy/db/migrate/20150518000918_create_paid_up_features_table.paid_up.rb +0 -12
  61. data/spec/dummy/db/seeds/features.seeds.rb +0 -19
  62. data/spec/dummy/test/controllers/plans_controller_controller_test.rb +0 -7
@@ -18,7 +18,6 @@
18
18
  1,
19
19
  1,
20
20
  null,
21
- null,
22
21
  1,
23
22
  1,
24
23
  null,
@@ -50,6 +49,9 @@
50
49
  1
51
50
  ],
52
51
  "/home/work/Gems/paid_up/lib/paid_up.rb": [
52
+ 1,
53
+ null,
54
+ null,
53
55
  1,
54
56
  1,
55
57
  1,
@@ -57,26 +59,42 @@
57
59
  1,
58
60
  null,
59
61
  1,
62
+ null,
60
63
  1,
61
64
  1,
65
+ null,
62
66
  1,
63
67
  1,
64
68
  1,
65
69
  1,
66
70
  1,
71
+ null,
67
72
  1,
68
73
  1,
69
74
  null,
70
75
  1,
71
76
  1,
77
+ null,
72
78
  1,
73
79
  1,
74
80
  null,
75
81
  1,
82
+ 1,
83
+ 1,
76
84
  null,
77
85
  1,
86
+ null,
78
87
  1,
79
- null
88
+ 1,
89
+ null,
90
+ null,
91
+ 1,
92
+ null,
93
+ 1,
94
+ 1,
95
+ null,
96
+ 1,
97
+ 1
80
98
  ],
81
99
  "/home/work/Gems/paid_up/lib/paid_up/configuration.rb": [
82
100
  1,
@@ -147,8 +165,8 @@
147
165
  1,
148
166
  null,
149
167
  1,
150
- 24,
151
- 24,
168
+ 28,
169
+ 28,
152
170
  null,
153
171
  1,
154
172
  null,
@@ -169,7 +187,7 @@
169
187
  null,
170
188
  null
171
189
  ],
172
- "/home/work/Gems/paid_up/lib/paid_up/stripe_extensions.rb": [
190
+ "/home/work/Gems/paid_up/lib/paid_up/extensions/stripe.rb": [
173
191
  1,
174
192
  1,
175
193
  1,
@@ -183,31 +201,20 @@
183
201
  null,
184
202
  null,
185
203
  null,
186
- null,
187
- null,
188
- 1,
189
- 1
204
+ null
190
205
  ],
191
- "/home/work/Gems/paid_up/lib/paid_up/unlimited.rb": [
192
- 1,
206
+ "/home/work/Gems/paid_up/lib/paid_up/extensions/integer.rb": [
193
207
  1,
194
208
  1,
195
- 0,
196
- null,
197
- 1,
198
- 72,
199
- 68,
200
- null,
201
- 4,
202
- null,
203
- null,
204
209
  1,
205
- 0,
210
+ 8,
206
211
  null,
207
212
  null,
208
213
  null
209
214
  ],
210
- "/home/work/Gems/paid_up/lib/paid_up/mixins.rb": [
215
+ "/home/work/Gems/paid_up/lib/paid_up/mixins/subscriber.rb": [
216
+ 1,
217
+ 1,
211
218
  1,
212
219
  1,
213
220
  1,
@@ -215,6 +222,7 @@
215
222
  1,
216
223
  1,
217
224
  null,
225
+ null,
218
226
  1,
219
227
  1,
220
228
  null,
@@ -224,8 +232,8 @@
224
232
  8,
225
233
  null,
226
234
  1,
227
- 112,
228
- 112,
235
+ 128,
236
+ 128,
229
237
  null,
230
238
  null,
231
239
  1,
@@ -268,7 +276,19 @@
268
276
  0,
269
277
  null,
270
278
  1,
271
- 44,
279
+ 52,
280
+ null,
281
+ 1,
282
+ 4,
283
+ null,
284
+ 1,
285
+ 8,
286
+ null,
287
+ 1,
288
+ 20,
289
+ null,
290
+ 1,
291
+ 8,
272
292
  null,
273
293
  1,
274
294
  4,
@@ -281,6 +301,7 @@
281
301
  null,
282
302
  1,
283
303
  8,
304
+ 8,
284
305
  null,
285
306
  1,
286
307
  0,
@@ -289,10 +310,10 @@
289
310
  0,
290
311
  null,
291
312
  1,
292
- 56,
313
+ 64,
293
314
  0,
294
315
  null,
295
- 56,
316
+ 64,
296
317
  null,
297
318
  1,
298
319
  0,
@@ -307,6 +328,12 @@
307
328
  0,
308
329
  null,
309
330
  1,
331
+ 16,
332
+ 4,
333
+ null,
334
+ null,
335
+ 1,
336
+ 1,
310
337
  24,
311
338
  4,
312
339
  null,
@@ -322,48 +349,58 @@
322
349
  null,
323
350
  1,
324
351
  1,
325
- 16,
352
+ 12,
326
353
  4,
327
354
  null,
328
355
  null,
329
356
  1,
330
- 1,
331
- 12,
332
- 4,
333
357
  null,
334
358
  null,
335
- 1,
336
359
  null,
360
+ null
361
+ ],
362
+ "/home/work/Gems/paid_up/lib/paid_up/mixins/paid_for.rb": [
363
+ 1,
364
+ 1,
337
365
  1,
366
+ 1,
367
+ 1,
368
+ 2,
369
+ 2,
370
+ 0,
371
+ null,
372
+ 2,
373
+ null,
338
374
  null,
339
375
  null,
340
- 1,
341
376
  1,
342
377
  null,
378
+ 1,
343
379
  null,
380
+ 0,
344
381
  null,
345
382
  null,
346
383
  null,
347
384
  null,
348
385
  null,
349
- 1
386
+ null
350
387
  ],
351
- "/home/work/Gems/paid_up/lib/paid_up/integer.rb": [
388
+ "/home/work/Gems/paid_up/lib/paid_up/validators/table_rows.rb": [
352
389
  1,
353
390
  1,
354
391
  1,
355
- 8,
356
- null,
392
+ 0,
393
+ 0,
357
394
  null,
358
395
  null,
359
396
  null,
360
- 1
397
+ null
361
398
  ],
362
- "/home/work/Gems/paid_up/lib/paid_up/table_validator.rb": [
399
+ "/home/work/Gems/paid_up/lib/paid_up/validators/rolify_rows.rb": [
363
400
  1,
364
401
  1,
365
402
  1,
366
- 20,
403
+ 0,
367
404
  0,
368
405
  null,
369
406
  null,
@@ -753,89 +790,101 @@
753
790
  1,
754
791
  1,
755
792
  1,
756
- null
757
- ],
758
- "/home/work/Gems/paid_up/spec/dummy/config/initializers/session_store.rb": [
759
793
  null,
760
794
  null,
761
- 1
762
- ],
763
- "/home/work/Gems/paid_up/spec/dummy/config/initializers/wrap_parameters.rb": [
764
- null,
795
+ 1,
765
796
  null,
766
797
  null,
767
798
  null,
768
799
  null,
769
800
  null,
770
801
  1,
771
- 1,
772
802
  null,
773
803
  null,
774
804
  null,
775
805
  null,
776
806
  null,
777
- null
778
- ],
779
- "/home/work/Gems/paid_up/spec/dummy/config/routes.rb": [
780
- 1,
781
- 1,
807
+ null,
782
808
  1,
809
+ null,
810
+ null,
811
+ null,
812
+ null,
783
813
  null
784
814
  ],
785
- "/home/work/Gems/paid_up/spec/dummy/app/models/user.rb": [
815
+ "/home/work/Gems/paid_up/app/models/paid_up/feature.rb": [
816
+ 1,
786
817
  1,
787
818
  1,
788
- null,
789
819
  null,
790
820
  1,
791
821
  null,
822
+ 1,
792
823
  null,
793
824
  1,
794
- null
795
- ],
796
- "/home/work/Gems/paid_up/app/models/paid_up/plan.rb": [
797
825
  1,
798
826
  1,
799
827
  1,
800
828
  null,
801
829
  1,
830
+ 3,
831
+ 3,
832
+ 3,
833
+ null,
834
+ null,
802
835
  null,
803
836
  1,
837
+ 0,
838
+ null,
804
839
  null,
805
840
  1,
841
+ 32,
842
+ 32,
843
+ 0,
844
+ null,
845
+ 32,
846
+ null,
806
847
  null,
807
- 65,
808
848
  1,
849
+ 32,
850
+ null,
851
+ null,
809
852
  1,
853
+ 9,
854
+ null,
810
855
  null,
811
856
  1,
812
- 20,
813
- 20,
814
- 20,
857
+ 58,
815
858
  null,
816
859
  null,
817
860
  1,
818
- 20,
819
- 20,
861
+ 1,
862
+ 1,
863
+ 3,
864
+ 3,
865
+ 3,
866
+ 2,
820
867
  null,
821
868
  null,
869
+ 3,
822
870
  1,
823
- 36,
824
- 36,
825
- 36,
826
871
  null,
827
- 16,
828
- 8,
829
872
  null,
830
- 8,
873
+ 1,
831
874
  null,
832
875
  null,
833
- 20,
876
+ 1,
834
877
  0,
835
878
  null,
836
- 20,
837
879
  null,
838
880
  null,
881
+ 1,
882
+ null,
883
+ 1,
884
+ 0,
885
+ 1,
886
+ 1,
887
+ null,
839
888
  0,
840
889
  null,
841
890
  null,
@@ -844,54 +893,74 @@
844
893
  0,
845
894
  null,
846
895
  null,
896
+ null
897
+ ],
898
+ "/home/work/Gems/paid_up/spec/dummy/config/initializers/rolify.rb": [
847
899
  1,
848
- 4,
849
- 4,
850
900
  null,
851
- 0,
852
901
  null,
853
902
  null,
854
903
  null,
904
+ null,
905
+ null
906
+ ],
907
+ "/home/work/Gems/paid_up/spec/dummy/app/models/role.rb": [
908
+ 1,
909
+ 1,
855
910
  1,
856
- 4,
857
- 4,
858
911
  null,
859
- 0,
912
+ 1,
860
913
  null,
861
914
  null,
862
915
  null,
863
916
  1,
864
- 4,
865
- 4,
917
+ null
918
+ ],
919
+ "/home/work/Gems/paid_up/spec/dummy/config/initializers/session_store.rb": [
866
920
  null,
867
- 0,
868
921
  null,
922
+ 1
923
+ ],
924
+ "/home/work/Gems/paid_up/spec/dummy/config/initializers/wrap_parameters.rb": [
869
925
  null,
870
926
  null,
871
- 1,
872
- 4,
873
927
  null,
874
928
  null,
875
- 1,
876
- 0,
877
929
  null,
878
930
  null,
879
931
  1,
880
- 4,
881
- 4,
932
+ 1,
882
933
  null,
883
- 0,
884
934
  null,
885
935
  null,
886
936
  null,
937
+ null,
938
+ null
939
+ ],
940
+ "/home/work/Gems/paid_up/spec/dummy/config/routes.rb": [
941
+ 1,
942
+ 1,
887
943
  1,
888
944
  null,
945
+ null,
946
+ null,
947
+ null,
948
+ null,
949
+ null,
950
+ null,
951
+ null,
952
+ null,
953
+ null,
954
+ null
955
+ ],
956
+ "/home/work/Gems/paid_up/spec/dummy/app/models/user.rb": [
957
+ 1,
889
958
  1,
890
- 104,
891
- 84,
892
959
  null,
893
960
  null,
961
+ 1,
894
962
  null,
963
+ 1,
895
964
  null
896
965
  ],
897
966
  "/home/work/Gems/paid_up/config/routes.rb": [
@@ -967,43 +1036,12 @@
967
1036
  null,
968
1037
  null,
969
1038
  7,
970
- null,
971
- null,
972
- null,
973
- null,
974
- null,
975
- null,
976
- 7,
977
- null,
978
- null,
979
- null,
980
- null,
981
- null,
982
- null,
983
- 7,
984
- null,
985
- null,
986
- null,
987
- null,
988
- null,
989
- null,
990
1039
  7,
991
- null,
992
- null,
993
- null,
994
- null,
995
- null,
996
- null,
997
1040
  7,
998
1041
  null,
999
1042
  null,
1000
1043
  null,
1001
1044
  null,
1002
- null,
1003
- null,
1004
- null,
1005
- null,
1006
- null,
1007
1045
  3,
1008
1046
  4,
1009
1047
  null,
@@ -1065,6 +1103,7 @@
1065
1103
  null,
1066
1104
  null,
1067
1105
  null,
1106
+ null,
1068
1107
  3,
1069
1108
  4,
1070
1109
  null,
@@ -1150,22 +1189,6 @@
1150
1189
  null,
1151
1190
  null,
1152
1191
  null,
1153
- 3,
1154
- 4,
1155
- null,
1156
- null,
1157
- null,
1158
- null,
1159
- null,
1160
- null,
1161
- 3,
1162
- 4,
1163
- null,
1164
- null,
1165
- null,
1166
- null,
1167
- null,
1168
- null,
1169
1192
  null,
1170
1193
  null
1171
1194
  ],
@@ -1279,40 +1302,132 @@
1279
1302
  null,
1280
1303
  null
1281
1304
  ],
1282
- "/home/work/Gems/paid_up/app/models/paid_up/feature.rb": [
1305
+ "/home/work/Gems/paid_up/app/models/paid_up/plan.rb": [
1306
+ 1,
1307
+ 1,
1308
+ 1,
1309
+ 1,
1310
+ null,
1283
1311
  1,
1312
+ null,
1284
1313
  1,
1314
+ null,
1285
1315
  1,
1286
1316
  null,
1317
+ 129,
1318
+ 1,
1287
1319
  1,
1288
1320
  null,
1289
1321
  1,
1322
+ 20,
1323
+ 20,
1324
+ 20,
1325
+ null,
1290
1326
  null,
1291
1327
  1,
1328
+ 44,
1329
+ 44,
1330
+ 44,
1331
+ null,
1292
1332
  4,
1293
1333
  0,
1294
1334
  null,
1295
1335
  4,
1296
1336
  null,
1297
1337
  null,
1338
+ 40,
1339
+ 0,
1340
+ null,
1341
+ 40,
1342
+ null,
1343
+ null,
1344
+ 0,
1345
+ null,
1346
+ null,
1347
+ null,
1348
+ 1,
1349
+ 0,
1350
+ null,
1351
+ null,
1352
+ 1,
1353
+ 4,
1354
+ 4,
1355
+ null,
1356
+ 0,
1357
+ null,
1358
+ null,
1359
+ null,
1360
+ 1,
1361
+ 4,
1362
+ 4,
1363
+ null,
1364
+ 0,
1365
+ null,
1366
+ null,
1367
+ null,
1368
+ 1,
1369
+ 4,
1370
+ 4,
1371
+ null,
1372
+ 0,
1373
+ null,
1374
+ null,
1375
+ null,
1298
1376
  1,
1299
1377
  4,
1300
1378
  null,
1379
+ null,
1380
+ 1,
1381
+ 0,
1382
+ null,
1383
+ null,
1384
+ 1,
1385
+ 4,
1386
+ 4,
1387
+ null,
1388
+ 0,
1389
+ null,
1390
+ null,
1391
+ null,
1392
+ 1,
1393
+ null,
1394
+ 1,
1395
+ 140,
1396
+ 120,
1397
+ null,
1398
+ null,
1399
+ null,
1301
1400
  null
1302
1401
  ],
1303
1402
  "/home/work/Gems/paid_up/app/models/paid_up/features_plan.rb": [
1304
1403
  1,
1305
1404
  1,
1306
1405
  1,
1406
+ null,
1307
1407
  1,
1308
1408
  null,
1309
1409
  1,
1410
+ 1,
1411
+ 72,
1412
+ 0,
1413
+ null,
1310
1414
  null,
1415
+ null
1416
+ ],
1417
+ "/home/work/Gems/paid_up/app/models/paid_up/unlimited.rb": [
1311
1418
  1,
1312
1419
  1,
1313
- 64,
1314
1420
  0,
1315
1421
  null,
1422
+ 1,
1423
+ 88,
1424
+ 80,
1425
+ null,
1426
+ 8,
1427
+ null,
1428
+ null,
1429
+ 1,
1430
+ 0,
1316
1431
  null,
1317
1432
  null
1318
1433
  ],
@@ -1438,7 +1553,8 @@
1438
1553
  null,
1439
1554
  null
1440
1555
  ],
1441
- "/home/work/Gems/paid_up/app/models/ability.rb": [
1556
+ "/home/work/Gems/paid_up/spec/dummy/app/models/ability.rb": [
1557
+ 1,
1442
1558
  1,
1443
1559
  1,
1444
1560
  null,
@@ -1449,40 +1565,70 @@
1449
1565
  null,
1450
1566
  4,
1451
1567
  null,
1568
+ null
1569
+ ],
1570
+ "/home/work/Gems/paid_up/app/models/paid_up/ability.rb": [
1571
+ 1,
1572
+ 1,
1573
+ 1,
1452
1574
  null,
1453
1575
  1,
1454
1576
  4,
1577
+ 4,
1578
+ 12,
1455
1579
  null,
1456
1580
  4,
1581
+ 4,
1582
+ 4,
1583
+ 4,
1584
+ 4,
1585
+ 0,
1586
+ null,
1587
+ null,
1588
+ 0,
1589
+ 0,
1590
+ 0,
1591
+ 0,
1457
1592
  null,
1458
- 20,
1459
1593
  null,
1460
1594
  4,
1461
1595
  4,
1462
1596
  4,
1597
+ 0,
1598
+ null,
1463
1599
  4,
1464
1600
  4,
1465
1601
  0,
1466
1602
  null,
1467
1603
  null,
1468
- 4,
1604
+ 0,
1605
+ 0,
1606
+ 0,
1607
+ 0,
1469
1608
  null,
1470
- 16,
1471
- 8,
1609
+ null,
1610
+ 4,
1611
+ 4,
1472
1612
  null,
1473
1613
  null,
1474
1614
  0,
1475
1615
  null,
1476
1616
  null,
1477
1617
  null,
1618
+ null,
1478
1619
  null
1479
1620
  ],
1480
1621
  "/home/work/Gems/paid_up/spec/dummy/app/models/group.rb": [
1481
1622
  1,
1482
1623
  1,
1483
1624
  null
1625
+ ],
1626
+ "/home/work/Gems/paid_up/spec/dummy/app/models/doodad.rb": [
1627
+ 1,
1628
+ 1,
1629
+ null
1484
1630
  ]
1485
1631
  },
1486
- "timestamp": 1432048049
1632
+ "timestamp": 1432510088
1487
1633
  }
1488
1634
  }