usage_credits 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +8 -0
  3. data/CHANGELOG.md +5 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +559 -0
  6. data/Rakefile +32 -0
  7. data/lib/generators/usage_credits/install_generator.rb +49 -0
  8. data/lib/generators/usage_credits/templates/create_usage_credits_tables.rb.erb +88 -0
  9. data/lib/generators/usage_credits/templates/initializer.rb +105 -0
  10. data/lib/usage_credits/configuration.rb +204 -0
  11. data/lib/usage_credits/core_ext/numeric.rb +59 -0
  12. data/lib/usage_credits/cost/base.rb +43 -0
  13. data/lib/usage_credits/cost/compound.rb +37 -0
  14. data/lib/usage_credits/cost/fixed.rb +34 -0
  15. data/lib/usage_credits/cost/variable.rb +42 -0
  16. data/lib/usage_credits/engine.rb +37 -0
  17. data/lib/usage_credits/helpers/credit_calculator.rb +34 -0
  18. data/lib/usage_credits/helpers/credits_helper.rb +45 -0
  19. data/lib/usage_credits/helpers/period_parser.rb +77 -0
  20. data/lib/usage_credits/jobs/fulfillment_job.rb +25 -0
  21. data/lib/usage_credits/models/allocation.rb +31 -0
  22. data/lib/usage_credits/models/concerns/has_wallet.rb +94 -0
  23. data/lib/usage_credits/models/concerns/pay_charge_extension.rb +198 -0
  24. data/lib/usage_credits/models/concerns/pay_subscription_extension.rb +251 -0
  25. data/lib/usage_credits/models/credit_pack.rb +159 -0
  26. data/lib/usage_credits/models/credit_subscription_plan.rb +204 -0
  27. data/lib/usage_credits/models/fulfillment.rb +91 -0
  28. data/lib/usage_credits/models/operation.rb +153 -0
  29. data/lib/usage_credits/models/transaction.rb +174 -0
  30. data/lib/usage_credits/models/wallet.rb +310 -0
  31. data/lib/usage_credits/railtie.rb +17 -0
  32. data/lib/usage_credits/services/fulfillment_service.rb +129 -0
  33. data/lib/usage_credits/version.rb +5 -0
  34. data/lib/usage_credits.rb +170 -0
  35. data/sig/usagecredits.rbs +4 -0
  36. metadata +115 -0
metadata ADDED
@@ -0,0 +1,115 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: usage_credits
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - rameerez
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2025-02-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '6.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '6.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: pay
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '8.3'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '8.3'
41
+ description: Add a usage-based credit system to your Rails app, easily. Let users
42
+ buy and spend credits on usage-based actions. Refill Stripe subscriptions with credits,
43
+ sell one-time booster credit packs, implement PAYG (pay-as-you-go) billing, award
44
+ free credits as bonuses, manage prepaid credits / tokens. Your users will have wallet
45
+ balances that they can spend on features, API calls, or other usage-based actions.
46
+ Perfect for SaaS, AI apps, games, and API products with metered pricing / billing.
47
+ email:
48
+ - rubygems@rameerez.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - ".rubocop.yml"
54
+ - CHANGELOG.md
55
+ - LICENSE.txt
56
+ - README.md
57
+ - Rakefile
58
+ - lib/generators/usage_credits/install_generator.rb
59
+ - lib/generators/usage_credits/templates/create_usage_credits_tables.rb.erb
60
+ - lib/generators/usage_credits/templates/initializer.rb
61
+ - lib/usage_credits.rb
62
+ - lib/usage_credits/configuration.rb
63
+ - lib/usage_credits/core_ext/numeric.rb
64
+ - lib/usage_credits/cost/base.rb
65
+ - lib/usage_credits/cost/compound.rb
66
+ - lib/usage_credits/cost/fixed.rb
67
+ - lib/usage_credits/cost/variable.rb
68
+ - lib/usage_credits/engine.rb
69
+ - lib/usage_credits/helpers/credit_calculator.rb
70
+ - lib/usage_credits/helpers/credits_helper.rb
71
+ - lib/usage_credits/helpers/period_parser.rb
72
+ - lib/usage_credits/jobs/fulfillment_job.rb
73
+ - lib/usage_credits/models/allocation.rb
74
+ - lib/usage_credits/models/concerns/has_wallet.rb
75
+ - lib/usage_credits/models/concerns/pay_charge_extension.rb
76
+ - lib/usage_credits/models/concerns/pay_subscription_extension.rb
77
+ - lib/usage_credits/models/credit_pack.rb
78
+ - lib/usage_credits/models/credit_subscription_plan.rb
79
+ - lib/usage_credits/models/fulfillment.rb
80
+ - lib/usage_credits/models/operation.rb
81
+ - lib/usage_credits/models/transaction.rb
82
+ - lib/usage_credits/models/wallet.rb
83
+ - lib/usage_credits/railtie.rb
84
+ - lib/usage_credits/services/fulfillment_service.rb
85
+ - lib/usage_credits/version.rb
86
+ - sig/usagecredits.rbs
87
+ homepage: https://github.com/rameerez/usage_credits
88
+ licenses:
89
+ - MIT
90
+ metadata:
91
+ allowed_push_host: https://rubygems.org
92
+ homepage_uri: https://github.com/rameerez/usage_credits
93
+ source_code_uri: https://github.com/rameerez/usage_credits
94
+ changelog_uri: https://github.com/rameerez/usage_credits/blob/main/CHANGELOG.md
95
+ rubygems_mfa_required: 'true'
96
+ post_install_message:
97
+ rdoc_options: []
98
+ require_paths:
99
+ - lib
100
+ required_ruby_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: 3.1.0
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ requirements: []
111
+ rubygems_version: 3.5.22
112
+ signing_key:
113
+ specification_version: 4
114
+ summary: Add usage-based credits to your Rails app.
115
+ test_files: []