receipts 0.2.2 → 1.0.3
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.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +12 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +15 -0
- data/README.md +66 -8
- data/Rakefile +59 -1
- data/examples/gorails.png +0 -0
- data/examples/invoice.pdf +0 -0
- data/examples/receipt.pdf +0 -0
- data/lib/receipts.rb +1 -0
- data/lib/receipts/invoice.rb +125 -0
- data/lib/receipts/receipt.rb +8 -4
- data/lib/receipts/version.rb +1 -1
- data/receipts.gemspec +2 -1
- metadata +29 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 225c91cdad16636a1e15291e308eedce0d9e47c27e9fd831ab1a3870e2fe208d
|
|
4
|
+
data.tar.gz: a92e20ae450a54d5f78ce44955e8a20c14b672f740e41b6e877a328e8deee9ff
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2a25e8b39b2f534353d7f4afe84169f31e76add4d709ca98c441f57f94b9b35e663c91854c8f77ab19d1ef7a880bc9a23d9e5b1194642d5a4b2d8ca400a82b02
|
|
7
|
+
data.tar.gz: 562bc42aacd3aea8f84e1ff23dd7b7d3da86cf8eb196679dad60e5621f5180a9b456c914a1d7519aba19fd77100ccc19e9d04c468efa582315c7548f8ffe4c79
|
data/.github/FUNDING.yml
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# These are supported funding model platforms
|
|
2
|
+
|
|
3
|
+
github: [excid3] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
|
4
|
+
patreon: # Replace with a single Patreon username
|
|
5
|
+
open_collective: # Replace with a single Open Collective username
|
|
6
|
+
ko_fi: # Replace with a single Ko-fi username
|
|
7
|
+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
|
8
|
+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
|
9
|
+
liberapay: # Replace with a single Liberapay username
|
|
10
|
+
issuehunt: # Replace with a single IssueHunt username
|
|
11
|
+
otechie: # Replace with a single Otechie username
|
|
12
|
+
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
data/.gitignore
CHANGED
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Receipts for your Rails application that works with any payment provider.
|
|
6
6
|
|
|
7
|
-
Check out
|
|
7
|
+
Check out the [example receipt](https://github.com/excid3/receipts/blob/master/examples/receipt.pdf?raw=true) and [example invoice](https://github.com/excid3/receipts/blob/master/examples/invoice.pdf?raw=true) PDFs.
|
|
8
8
|
|
|
9
9
|
## Installation
|
|
10
10
|
|
|
@@ -60,12 +60,13 @@ class Charge < ActiveRecord::Base
|
|
|
60
60
|
def receipt
|
|
61
61
|
Receipts::Receipt.new(
|
|
62
62
|
id: id,
|
|
63
|
+
subheading: "RECEIPT FOR CHARGE #%{id}",
|
|
63
64
|
product: "GoRails",
|
|
64
65
|
company: {
|
|
65
|
-
name: "
|
|
66
|
-
address: "
|
|
67
|
-
email: "
|
|
68
|
-
logo: Rails.root.join("app/assets/images/
|
|
66
|
+
name: "GoRails, LLC.",
|
|
67
|
+
address: "123 Fake Street\nNew York City, NY 10012",
|
|
68
|
+
email: "support@example.com",
|
|
69
|
+
logo: Rails.root.join("app/assets/images/logo.png")
|
|
69
70
|
},
|
|
70
71
|
line_items: [
|
|
71
72
|
["Date", created_at.to_s],
|
|
@@ -104,11 +105,25 @@ Company consists of several required nested attributes.
|
|
|
104
105
|
* `name` - **Required**
|
|
105
106
|
* `address` - **Required**
|
|
106
107
|
* `email` - **Required**
|
|
108
|
+
* `line_items` - **Required**
|
|
109
|
+
|
|
110
|
+
You can set as many line items on the receipts as you want. Just pass in an array with each item containing a name and a value to display on the receipt.
|
|
111
|
+
|
|
107
112
|
* `logo` - *Optional*
|
|
108
113
|
|
|
109
|
-
|
|
114
|
+
The logo must be either a string path to a file or a file-like object.
|
|
110
115
|
|
|
111
|
-
|
|
116
|
+
```ruby
|
|
117
|
+
logo: Rails.root.join("app/assets/images/logo.png")
|
|
118
|
+
# or
|
|
119
|
+
logo: File.open("app/assets/images/logo.png", "rb")
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
To use an image from a URL, we recommend using `open-uri` to open the remote file as a StringIO object.
|
|
123
|
+
|
|
124
|
+
`require 'open-uri'`
|
|
125
|
+
|
|
126
|
+
`logo: URI.open("https://www.ruby-lang.org/images/header-ruby-logo@2x.png")`
|
|
112
127
|
|
|
113
128
|
* `font` - *Optional*
|
|
114
129
|
|
|
@@ -169,9 +184,52 @@ resources :charges
|
|
|
169
184
|
<%= link_to "Download Receipt", charge_path(@charge, format: :pdf) %>
|
|
170
185
|
```
|
|
171
186
|
|
|
187
|
+
## Invoices
|
|
188
|
+
|
|
189
|
+
Invoices follow the exact same set of steps as above, with a few minor changes and have a few extra arguments you can use:
|
|
190
|
+
|
|
191
|
+
* `issue_date` - Date the invoice was issued
|
|
192
|
+
|
|
193
|
+
* `due_date` - Date the invoice payment is due
|
|
194
|
+
|
|
195
|
+
* `status` - A status for the invoice (Pending, Paid, etc)
|
|
196
|
+
|
|
197
|
+
* `bill_to` - A string or Array of lines with billing details
|
|
198
|
+
|
|
199
|
+
You can also use line_items to flexibly generate and display the table with items in it, including subtotal, taxes, and total amount.
|
|
200
|
+
|
|
201
|
+
```ruby
|
|
202
|
+
Receipts::Invoice.new(
|
|
203
|
+
id: "123",
|
|
204
|
+
issue_date: Date.today,
|
|
205
|
+
due_date: Date.today + 30,
|
|
206
|
+
status: "<b><color rgb='#5eba7d'>PAID</color></b>",
|
|
207
|
+
bill_to: [
|
|
208
|
+
"GoRails, LLC",
|
|
209
|
+
"123 Fake Street",
|
|
210
|
+
"New York City, NY 10012",
|
|
211
|
+
nil,
|
|
212
|
+
"mail@example.com",
|
|
213
|
+
],
|
|
214
|
+
company: {
|
|
215
|
+
name: "GoRails, LLC",
|
|
216
|
+
address: "123 Fake Street\nNew York City, NY 10012",
|
|
217
|
+
email: "support@example.com",
|
|
218
|
+
logo: File.expand_path("./examples/gorails.png")
|
|
219
|
+
},
|
|
220
|
+
line_items: [
|
|
221
|
+
["<b>Item</b>", "<b>Unit Cost</b>", "<b>Quantity</b>", "<b>Amount</b>"],
|
|
222
|
+
["GoRails Subscription", "$19.00", "1", "$19.00"],
|
|
223
|
+
[nil, nil, "Subtotal", "$19.00"],
|
|
224
|
+
[nil, nil, "Tax Rate", "0%"],
|
|
225
|
+
[nil, nil, "Total", "$19.00"],
|
|
226
|
+
],
|
|
227
|
+
)
|
|
228
|
+
```
|
|
229
|
+
|
|
172
230
|
## Contributing
|
|
173
231
|
|
|
174
|
-
1. Fork it ( https://github.com/
|
|
232
|
+
1. Fork it ( https://github.com/excid3/receipts/fork )
|
|
175
233
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
176
234
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
|
177
235
|
4. Push to the branch (`git push origin my-new-feature`)
|
data/Rakefile
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
require "bundler/gem_tasks"
|
|
2
|
-
require
|
|
2
|
+
require "rspec/core/rake_task"
|
|
3
|
+
require "open-uri"
|
|
3
4
|
|
|
4
5
|
RSpec::Core::RakeTask.new('spec')
|
|
5
6
|
|
|
@@ -10,3 +11,60 @@ task :test => :spec
|
|
|
10
11
|
task :console do
|
|
11
12
|
exec "irb -r receipts -I ./lib"
|
|
12
13
|
end
|
|
14
|
+
|
|
15
|
+
task :receipt do
|
|
16
|
+
require "./lib/receipts"
|
|
17
|
+
|
|
18
|
+
Receipts::Receipt.new(
|
|
19
|
+
id: "123",
|
|
20
|
+
subheading: "RECEIPT FOR CHARGE #1",
|
|
21
|
+
product: "GoRails",
|
|
22
|
+
company: {
|
|
23
|
+
name: "GoRails, LLC",
|
|
24
|
+
address: "123 Fake Street\nNew York City, NY 10012",
|
|
25
|
+
email: "support@example.com",
|
|
26
|
+
logo: URI.open("https://www.ruby-lang.org/images/header-ruby-logo@2x.png")
|
|
27
|
+
},
|
|
28
|
+
line_items: [
|
|
29
|
+
["Date", Time.now.to_s],
|
|
30
|
+
["Account Billed", "Example User (user@example.com)"],
|
|
31
|
+
["Product", "GoRails"],
|
|
32
|
+
["Amount", "$19.00"],
|
|
33
|
+
["Charged to", "Visa (**** **** **** 1234)"],
|
|
34
|
+
["Transaction ID", "123456"]
|
|
35
|
+
],
|
|
36
|
+
).render_file "examples/receipt.pdf"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
task :invoice do
|
|
40
|
+
require "./lib/receipts"
|
|
41
|
+
|
|
42
|
+
Receipts::Invoice.new(
|
|
43
|
+
id: "123",
|
|
44
|
+
issue_date: Date.today,
|
|
45
|
+
due_date: Date.today + 30,
|
|
46
|
+
status: "<b><color rgb='#5eba7d'>PAID</color></b>",
|
|
47
|
+
bill_to: [
|
|
48
|
+
"GoRails, LLC",
|
|
49
|
+
"Address",
|
|
50
|
+
"City, State Zipcode",
|
|
51
|
+
nil,
|
|
52
|
+
"mail@example.com",
|
|
53
|
+
],
|
|
54
|
+
company: {
|
|
55
|
+
name: "GoRails, LLC",
|
|
56
|
+
address: "123 Fake Street\nNew York City, NY 10012",
|
|
57
|
+
email: "support@example.com",
|
|
58
|
+
#logo: Rails.root.join("app/assets/images/gorails.png")
|
|
59
|
+
#logo: File.expand_path("./examples/gorails.png")
|
|
60
|
+
logo: File.open("./examples/gorails.png")
|
|
61
|
+
},
|
|
62
|
+
line_items: [
|
|
63
|
+
["<b>Item</b>", "<b>Unit Cost</b>", "<b>Quantity</b>", "<b>Amount</b>"],
|
|
64
|
+
["GoRails Subscription", "$19.00", "1", "$19.00"],
|
|
65
|
+
[nil, nil, "Subtotal", "$19.00"],
|
|
66
|
+
[nil, nil, "Tax Rate", "0%"],
|
|
67
|
+
[nil, nil, "Amount Due", "$19.00"],
|
|
68
|
+
],
|
|
69
|
+
).render_file "examples/invoice.pdf"
|
|
70
|
+
end
|
|
Binary file
|
|
Binary file
|
data/examples/receipt.pdf
CHANGED
|
Binary file
|
data/lib/receipts.rb
CHANGED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
require 'prawn'
|
|
2
|
+
require 'prawn/table'
|
|
3
|
+
|
|
4
|
+
module Receipts
|
|
5
|
+
class Invoice < Prawn::Document
|
|
6
|
+
attr_reader :attributes, :id, :company, :custom_font, :line_items, :logo, :message, :product, :subheading, :bill_to, :issue_date, :due_date, :status
|
|
7
|
+
|
|
8
|
+
def initialize(attributes)
|
|
9
|
+
@attributes = attributes
|
|
10
|
+
@id = attributes.fetch(:id)
|
|
11
|
+
@company = attributes.fetch(:company)
|
|
12
|
+
@line_items = attributes.fetch(:line_items)
|
|
13
|
+
@custom_font = attributes.fetch(:font, {})
|
|
14
|
+
@message = attributes.fetch(:message) { default_message }
|
|
15
|
+
@subheading = attributes.fetch(:subheading) { default_subheading }
|
|
16
|
+
@bill_to = Array(attributes.fetch(:bill_to)).join("\n")
|
|
17
|
+
@issue_date = attributes.fetch(:issue_date)
|
|
18
|
+
@due_date = attributes.fetch(:due_date)
|
|
19
|
+
@status = attributes.fetch(:status)
|
|
20
|
+
|
|
21
|
+
super(margin: 0)
|
|
22
|
+
|
|
23
|
+
setup_fonts if custom_font.any?
|
|
24
|
+
generate
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
def default_message
|
|
30
|
+
"For questions, contact us anytime at <color rgb='326d92'><link href='mailto:#{company.fetch(:email)}?subject=Charge ##{id}'><b>#{company.fetch(:email)}</b></link></color>."
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def default_subheading
|
|
34
|
+
"INVOICE #%{id}"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def setup_fonts
|
|
38
|
+
font_families.update "Primary" => custom_font
|
|
39
|
+
font "Primary"
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def generate
|
|
43
|
+
bounding_box [0, 792], width: 612, height: 792 do
|
|
44
|
+
bounding_box [85, 792], width: 442, height: 792 do
|
|
45
|
+
header
|
|
46
|
+
charge_details
|
|
47
|
+
footer
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def header
|
|
53
|
+
move_down 60
|
|
54
|
+
|
|
55
|
+
logo = company[:logo]
|
|
56
|
+
|
|
57
|
+
if logo.nil?
|
|
58
|
+
move_down 32
|
|
59
|
+
elsif logo.is_a?(String)
|
|
60
|
+
image open(logo), height: 32
|
|
61
|
+
else
|
|
62
|
+
image logo, height: 32
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
move_down 8
|
|
66
|
+
label (subheading % {id: id})
|
|
67
|
+
|
|
68
|
+
move_down 10
|
|
69
|
+
|
|
70
|
+
# Cache the Y value so we can have both boxes at the same height
|
|
71
|
+
top = y
|
|
72
|
+
bounding_box([0, y], width: 200) do
|
|
73
|
+
label "BILL TO"
|
|
74
|
+
|
|
75
|
+
move_down 5
|
|
76
|
+
text_box bill_to, at: [0, cursor], width: 200, height: 75, inline_format: true, size: 10, leading: 4, overflow: :shrink_to_fit
|
|
77
|
+
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
bounding_box([250, top], width: 200) do
|
|
81
|
+
label "INVOICE DATE"
|
|
82
|
+
|
|
83
|
+
move_down 5
|
|
84
|
+
text issue_date.to_s, inline_format: true, size: 12, leading: 4
|
|
85
|
+
|
|
86
|
+
move_down 10
|
|
87
|
+
label "DUE DATE"
|
|
88
|
+
|
|
89
|
+
move_down 5
|
|
90
|
+
text due_date.to_s, inline_format: true, size: 12, leading: 4
|
|
91
|
+
|
|
92
|
+
move_down 10
|
|
93
|
+
label "STATUS"
|
|
94
|
+
|
|
95
|
+
move_down 5
|
|
96
|
+
text status, inline_format: true, size: 12, leading: 4
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def charge_details
|
|
101
|
+
move_down 30
|
|
102
|
+
|
|
103
|
+
borders = line_items.length - 2
|
|
104
|
+
|
|
105
|
+
table(line_items, width: bounds.width, cell_style: { border_color: 'cccccc', inline_format: true }) do
|
|
106
|
+
cells.padding = 12
|
|
107
|
+
cells.borders = []
|
|
108
|
+
row(0..borders).borders = [:bottom]
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def footer
|
|
113
|
+
move_down 30
|
|
114
|
+
text message, inline_format: true, size: 12, leading: 4
|
|
115
|
+
|
|
116
|
+
move_down 30
|
|
117
|
+
text company.fetch(:name), inline_format: true
|
|
118
|
+
text "<color rgb='888888'>#{company.fetch(:address)}</color>", inline_format: true
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def label(text)
|
|
122
|
+
text "<color rgb='a6a6a6'>#{text}</color>", inline_format: true, size: 8
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
end
|
data/lib/receipts/receipt.rb
CHANGED
|
@@ -48,10 +48,14 @@ module Receipts
|
|
|
48
48
|
def header
|
|
49
49
|
move_down 60
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
logo = company[:logo]
|
|
52
|
+
|
|
53
|
+
if logo.nil?
|
|
54
54
|
move_down 32
|
|
55
|
+
elsif logo.is_a?(String)
|
|
56
|
+
image open(logo), height: 32
|
|
57
|
+
else
|
|
58
|
+
image logo, height: 32
|
|
55
59
|
end
|
|
56
60
|
|
|
57
61
|
move_down 8
|
|
@@ -66,7 +70,7 @@ module Receipts
|
|
|
66
70
|
|
|
67
71
|
borders = line_items.length - 2
|
|
68
72
|
|
|
69
|
-
table(line_items, cell_style: { border_color: 'cccccc' }) do
|
|
73
|
+
table(line_items, width: bounds.width, cell_style: { border_color: 'cccccc', inline_format: true }) do
|
|
70
74
|
cells.padding = 12
|
|
71
75
|
cells.borders = []
|
|
72
76
|
row(0..borders).borders = [:bottom]
|
data/lib/receipts/version.rb
CHANGED
data/receipts.gemspec
CHANGED
|
@@ -18,11 +18,12 @@ Gem::Specification.new do |spec|
|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
19
19
|
spec.require_paths = ["lib"]
|
|
20
20
|
|
|
21
|
-
spec.add_development_dependency "bundler"
|
|
21
|
+
spec.add_development_dependency "bundler"
|
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
|
23
23
|
spec.add_development_dependency "rspec"
|
|
24
24
|
spec.add_development_dependency "pry"
|
|
25
25
|
|
|
26
26
|
spec.add_dependency 'prawn', '>= 1.3.0', '< 3.0.0'
|
|
27
27
|
spec.add_dependency 'prawn-table', '~> 0.2.1'
|
|
28
|
+
spec.add_dependency 'ttfunk', '~> 1.5.1'
|
|
28
29
|
end
|
metadata
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: receipts
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Chris Oliver
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-07-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '0'
|
|
20
20
|
type: :development
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- - "
|
|
24
|
+
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
26
|
+
version: '0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rake
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -100,6 +100,20 @@ dependencies:
|
|
|
100
100
|
- - "~>"
|
|
101
101
|
- !ruby/object:Gem::Version
|
|
102
102
|
version: 0.2.1
|
|
103
|
+
- !ruby/object:Gem::Dependency
|
|
104
|
+
name: ttfunk
|
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - "~>"
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: 1.5.1
|
|
110
|
+
type: :runtime
|
|
111
|
+
prerelease: false
|
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
113
|
+
requirements:
|
|
114
|
+
- - "~>"
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: 1.5.1
|
|
103
117
|
description: Receipts for your Rails application that works with any payment provider.
|
|
104
118
|
email:
|
|
105
119
|
- excid3@gmail.com
|
|
@@ -107,14 +121,19 @@ executables: []
|
|
|
107
121
|
extensions: []
|
|
108
122
|
extra_rdoc_files: []
|
|
109
123
|
files:
|
|
124
|
+
- ".github/FUNDING.yml"
|
|
110
125
|
- ".gitignore"
|
|
111
126
|
- ".travis.yml"
|
|
127
|
+
- CHANGELOG.md
|
|
112
128
|
- Gemfile
|
|
113
129
|
- LICENSE.txt
|
|
114
130
|
- README.md
|
|
115
131
|
- Rakefile
|
|
132
|
+
- examples/gorails.png
|
|
133
|
+
- examples/invoice.pdf
|
|
116
134
|
- examples/receipt.pdf
|
|
117
135
|
- lib/receipts.rb
|
|
136
|
+
- lib/receipts/invoice.rb
|
|
118
137
|
- lib/receipts/receipt.rb
|
|
119
138
|
- lib/receipts/version.rb
|
|
120
139
|
- receipts.gemspec
|
|
@@ -124,7 +143,7 @@ homepage: ''
|
|
|
124
143
|
licenses:
|
|
125
144
|
- MIT
|
|
126
145
|
metadata: {}
|
|
127
|
-
post_install_message:
|
|
146
|
+
post_install_message:
|
|
128
147
|
rdoc_options: []
|
|
129
148
|
require_paths:
|
|
130
149
|
- lib
|
|
@@ -139,9 +158,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
139
158
|
- !ruby/object:Gem::Version
|
|
140
159
|
version: '0'
|
|
141
160
|
requirements: []
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
signing_key:
|
|
161
|
+
rubygems_version: 3.1.4
|
|
162
|
+
signing_key:
|
|
145
163
|
specification_version: 4
|
|
146
164
|
summary: Receipts for your Rails application that works with any payment provider.
|
|
147
165
|
test_files:
|