paid_up 0.2.4 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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
  }