usage_credits 0.1.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 (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: []