vindi-rails 0.2.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 (51) hide show
  1. checksums.yaml +7 -0
  2. data/.agents/rules/code-style-ruby.md +100 -0
  3. data/CHANGELOG.md +21 -0
  4. data/CHANGELOG.pt-BR.md +21 -0
  5. data/README.md +74 -0
  6. data/README.pt-BR.md +74 -0
  7. data/WIKI.md +246 -0
  8. data/WIKI.pt-BR.md +246 -0
  9. data/lib/generators/vindi/install_generator.rb +17 -0
  10. data/lib/generators/vindi/templates/vindi.rb +11 -0
  11. data/lib/vindi/api_operations/create.rb +14 -0
  12. data/lib/vindi/api_operations/delete.rb +15 -0
  13. data/lib/vindi/api_operations/list.rb +14 -0
  14. data/lib/vindi/api_operations/update.rb +14 -0
  15. data/lib/vindi/client.rb +69 -0
  16. data/lib/vindi/configuration.rb +14 -0
  17. data/lib/vindi/errors.rb +22 -0
  18. data/lib/vindi/railtie.rb +7 -0
  19. data/lib/vindi/resource.rb +31 -0
  20. data/lib/vindi/resources/affiliate.rb +11 -0
  21. data/lib/vindi/resources/bill.rb +14 -0
  22. data/lib/vindi/resources/bill_item.rb +11 -0
  23. data/lib/vindi/resources/charge.rb +13 -0
  24. data/lib/vindi/resources/customer.rb +14 -0
  25. data/lib/vindi/resources/discount.rb +13 -0
  26. data/lib/vindi/resources/export_batch.rb +12 -0
  27. data/lib/vindi/resources/import_batch.rb +12 -0
  28. data/lib/vindi/resources/invoice.rb +11 -0
  29. data/lib/vindi/resources/issue.rb +12 -0
  30. data/lib/vindi/resources/merchant.rb +11 -0
  31. data/lib/vindi/resources/merchant_user.rb +11 -0
  32. data/lib/vindi/resources/message.rb +11 -0
  33. data/lib/vindi/resources/movement.rb +11 -0
  34. data/lib/vindi/resources/notification.rb +11 -0
  35. data/lib/vindi/resources/partner.rb +11 -0
  36. data/lib/vindi/resources/payment_method.rb +11 -0
  37. data/lib/vindi/resources/payment_profile.rb +13 -0
  38. data/lib/vindi/resources/period.rb +11 -0
  39. data/lib/vindi/resources/plan.rb +14 -0
  40. data/lib/vindi/resources/product.rb +14 -0
  41. data/lib/vindi/resources/product_item.rb +14 -0
  42. data/lib/vindi/resources/public.rb +9 -0
  43. data/lib/vindi/resources/role.rb +11 -0
  44. data/lib/vindi/resources/subscription.rb +14 -0
  45. data/lib/vindi/resources/transaction.rb +12 -0
  46. data/lib/vindi/resources/usage.rb +13 -0
  47. data/lib/vindi/resources/user.rb +11 -0
  48. data/lib/vindi/version.rb +5 -0
  49. data/lib/vindi.rb +59 -0
  50. data/vindi-rails.gemspec +33 -0
  51. metadata +109 -0
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vindi
4
+ class Partner < Resource
5
+ extend APIOperations::List
6
+
7
+ def self.endpoint
8
+ "partner"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vindi
4
+ class PaymentMethod < Resource
5
+ extend APIOperations::List
6
+
7
+ def self.endpoint
8
+ "payment_methods"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vindi
4
+ class PaymentProfile < Resource
5
+ extend APIOperations::List
6
+ extend APIOperations::Create
7
+ extend APIOperations::Delete
8
+
9
+ def self.endpoint
10
+ "payment_profiles"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vindi
4
+ class Period < Resource
5
+ extend APIOperations::List
6
+
7
+ def self.endpoint
8
+ "periods"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vindi
4
+ class Plan < Resource
5
+ extend APIOperations::List
6
+ extend APIOperations::Create
7
+ extend APIOperations::Update
8
+ extend APIOperations::Delete
9
+
10
+ def self.endpoint
11
+ "plans"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vindi
4
+ class Product < Resource
5
+ extend APIOperations::List
6
+ extend APIOperations::Create
7
+ extend APIOperations::Update
8
+ extend APIOperations::Delete
9
+
10
+ def self.endpoint
11
+ "products"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vindi
4
+ class ProductItem < Resource
5
+ extend APIOperations::List
6
+ extend APIOperations::Create
7
+ extend APIOperations::Update
8
+ extend APIOperations::Delete
9
+
10
+ def self.endpoint
11
+ "product_items"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vindi
4
+ class Public < Resource
5
+ def self.endpoint
6
+ "public"
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vindi
4
+ class Role < Resource
5
+ extend APIOperations::List
6
+
7
+ def self.endpoint
8
+ "roles"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vindi
4
+ class Subscription < Resource
5
+ extend APIOperations::List
6
+ extend APIOperations::Create
7
+ extend APIOperations::Update
8
+ extend APIOperations::Delete
9
+
10
+ def self.endpoint
11
+ "subscriptions"
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vindi
4
+ class Transaction < Resource
5
+ extend APIOperations::List
6
+ extend APIOperations::Create
7
+
8
+ def self.endpoint
9
+ "transactions"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vindi
4
+ class Usage < Resource
5
+ extend APIOperations::List
6
+ extend APIOperations::Create
7
+ extend APIOperations::Delete
8
+
9
+ def self.endpoint
10
+ "usages"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vindi
4
+ class User < Resource
5
+ extend APIOperations::List
6
+
7
+ def self.endpoint
8
+ "users"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vindi
4
+ VERSION = "0.2.0"
5
+ end
data/lib/vindi.rb ADDED
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rest-client"
4
+ require "json"
5
+
6
+ require_relative "vindi/version"
7
+ require_relative "vindi/configuration"
8
+ require_relative "vindi/errors"
9
+ require_relative "vindi/client"
10
+ require_relative "vindi/api_operations/create"
11
+ require_relative "vindi/api_operations/delete"
12
+ require_relative "vindi/api_operations/list"
13
+ require_relative "vindi/api_operations/update"
14
+ require_relative "vindi/resource"
15
+ require_relative "vindi/railtie" if defined?(Rails)
16
+
17
+ # Load all resources
18
+ require_relative "vindi/resources/customer"
19
+ require_relative "vindi/resources/payment_profile"
20
+ require_relative "vindi/resources/subscription"
21
+ require_relative "vindi/resources/charge"
22
+ require_relative "vindi/resources/plan"
23
+ require_relative "vindi/resources/product"
24
+ require_relative "vindi/resources/payment_method"
25
+ require_relative "vindi/resources/discount"
26
+ require_relative "vindi/resources/product_item"
27
+ require_relative "vindi/resources/period"
28
+ require_relative "vindi/resources/bill"
29
+ require_relative "vindi/resources/bill_item"
30
+ require_relative "vindi/resources/transaction"
31
+ require_relative "vindi/resources/usage"
32
+ require_relative "vindi/resources/invoice"
33
+ require_relative "vindi/resources/movement"
34
+ require_relative "vindi/resources/message"
35
+ require_relative "vindi/resources/export_batch"
36
+ require_relative "vindi/resources/import_batch"
37
+ require_relative "vindi/resources/issue"
38
+ require_relative "vindi/resources/notification"
39
+ require_relative "vindi/resources/merchant"
40
+ require_relative "vindi/resources/merchant_user"
41
+ require_relative "vindi/resources/role"
42
+ require_relative "vindi/resources/user"
43
+ require_relative "vindi/resources/public"
44
+ require_relative "vindi/resources/affiliate"
45
+ require_relative "vindi/resources/partner"
46
+
47
+ module Vindi
48
+ class << self
49
+ attr_writer :configuration
50
+
51
+ def configuration
52
+ @configuration ||= Configuration.new
53
+ end
54
+
55
+ def configure
56
+ yield(configuration)
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/vindi/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "vindi-rails"
7
+ spec.version = Vindi::VERSION
8
+ spec.authors = ["Wesley Lima"]
9
+ spec.email = ["wesleyskap@gmail.com"]
10
+
11
+ spec.summary = "Ruby/Rails integration SDK for the Vindi API v1 (recurring billing platform)."
12
+ spec.description = "Allows interaction with the Vindi API in an elegant and integrated way with Ruby/Rails."
13
+ spec.homepage = "https://github.com/wesleyskap/vindi-rails"
14
+ spec.license = "MIT"
15
+ spec.required_ruby_version = ">= 3.0.0"
16
+
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = spec.homepage
19
+
20
+ spec.files = Dir.chdir(__dir__) do
21
+ `git ls-files -z`.split("\x0").reject do |f|
22
+ (File.expand_path(f) == __FILE__) ||
23
+ f.start_with?(*%w[bin/ test/ spec/ features/ .git .circleci appveyor Gemfile])
24
+ end
25
+ rescue StandardError
26
+ Dir["lib/**/*"]
27
+ end
28
+ spec.bindir = "exe"
29
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
30
+ spec.require_paths = ["lib"]
31
+
32
+ spec.add_dependency "rest-client", "~> 2.1"
33
+ end
metadata ADDED
@@ -0,0 +1,109 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: vindi-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Wesley Lima
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2026-06-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rest-client
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.1'
27
+ description: Allows interaction with the Vindi API in an elegant and integrated way
28
+ with Ruby/Rails.
29
+ email:
30
+ - wesleyskap@gmail.com
31
+ executables: []
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - ".agents/rules/code-style-ruby.md"
36
+ - CHANGELOG.md
37
+ - CHANGELOG.pt-BR.md
38
+ - README.md
39
+ - README.pt-BR.md
40
+ - WIKI.md
41
+ - WIKI.pt-BR.md
42
+ - lib/generators/vindi/install_generator.rb
43
+ - lib/generators/vindi/templates/vindi.rb
44
+ - lib/vindi.rb
45
+ - lib/vindi/api_operations/create.rb
46
+ - lib/vindi/api_operations/delete.rb
47
+ - lib/vindi/api_operations/list.rb
48
+ - lib/vindi/api_operations/update.rb
49
+ - lib/vindi/client.rb
50
+ - lib/vindi/configuration.rb
51
+ - lib/vindi/errors.rb
52
+ - lib/vindi/railtie.rb
53
+ - lib/vindi/resource.rb
54
+ - lib/vindi/resources/affiliate.rb
55
+ - lib/vindi/resources/bill.rb
56
+ - lib/vindi/resources/bill_item.rb
57
+ - lib/vindi/resources/charge.rb
58
+ - lib/vindi/resources/customer.rb
59
+ - lib/vindi/resources/discount.rb
60
+ - lib/vindi/resources/export_batch.rb
61
+ - lib/vindi/resources/import_batch.rb
62
+ - lib/vindi/resources/invoice.rb
63
+ - lib/vindi/resources/issue.rb
64
+ - lib/vindi/resources/merchant.rb
65
+ - lib/vindi/resources/merchant_user.rb
66
+ - lib/vindi/resources/message.rb
67
+ - lib/vindi/resources/movement.rb
68
+ - lib/vindi/resources/notification.rb
69
+ - lib/vindi/resources/partner.rb
70
+ - lib/vindi/resources/payment_method.rb
71
+ - lib/vindi/resources/payment_profile.rb
72
+ - lib/vindi/resources/period.rb
73
+ - lib/vindi/resources/plan.rb
74
+ - lib/vindi/resources/product.rb
75
+ - lib/vindi/resources/product_item.rb
76
+ - lib/vindi/resources/public.rb
77
+ - lib/vindi/resources/role.rb
78
+ - lib/vindi/resources/subscription.rb
79
+ - lib/vindi/resources/transaction.rb
80
+ - lib/vindi/resources/usage.rb
81
+ - lib/vindi/resources/user.rb
82
+ - lib/vindi/version.rb
83
+ - vindi-rails.gemspec
84
+ homepage: https://github.com/wesleyskap/vindi-rails
85
+ licenses:
86
+ - MIT
87
+ metadata:
88
+ homepage_uri: https://github.com/wesleyskap/vindi-rails
89
+ source_code_uri: https://github.com/wesleyskap/vindi-rails
90
+ post_install_message:
91
+ rdoc_options: []
92
+ require_paths:
93
+ - lib
94
+ required_ruby_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: 3.0.0
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ requirements: []
105
+ rubygems_version: 3.5.22
106
+ signing_key:
107
+ specification_version: 4
108
+ summary: Ruby/Rails integration SDK for the Vindi API v1 (recurring billing platform).
109
+ test_files: []