require "bundler/gem_tasks"
require "rspec/core/rake_task"
require "open-uri"
RSpec::Core::RakeTask.new("spec")
# If you want to make this the default task
task default: :spec
task test: :spec
task :console do
exec "irb -r receipts -I ./lib"
end
task :examples do
[:receipt, :invoice, :statement].each { |t| Rake::Task[t].invoke }
puts "Use `open examples` to view example PDFs."
end
task :receipt do
require "./lib/receipts"
Receipts::Receipt.new(
id: "123",
subheading: "RECEIPT FOR CHARGE #1",
product: "GoRails",
company: {
name: "GoRails, LLC",
address: "123 Fake Street\nNew York City, NY 10012",
email: "support@example.com",
logo: "https://www.ruby-lang.org/images/header-ruby-logo@2x.png"
},
line_items: [
["Date", Time.now.to_s],
["Account Billed", "Example User (user@example.com)"],
["Product", "GoRails"],
["Amount", "$19.00"],
["Charged to", "Visa (**** **** **** 1234)"],
["Transaction ID", "123456"]
]
).render_file "examples/receipt.pdf"
end
task :invoice do
require "./lib/receipts"
Receipts::Invoice.new(
id: "123",
issue_date: Date.today,
due_date: Date.today + 30,
status: "PAID",
bill_to: [
"GoRails, LLC",
"Address",
"City, State Zipcode",
nil,
"mail@example.com"
],
company: {
name: "GoRails, LLC",
address: "123 Fake Street\nNew York City, NY 10012",
email: "support@example.com",
# logo: Rails.root.join("app/assets/images/gorails.png")
# logo: File.expand_path("./examples/gorails.png")
logo: File.open("./examples/gorails.png")
},
line_items: [
["Item", "Unit Cost", "Quantity", "Amount"],
["GoRails Subscription", "$19.00", "1", "$19.00"],
[nil, nil, "Subtotal", "$19.00"],
[nil, nil, "Tax Rate", "0%"],
[nil, nil, "Amount Due", "$19.00"]
]
).render_file "examples/invoice.pdf"
end
task :statement do
require "./lib/receipts"
Receipts::Statement.new(
id: "123",
issue_date: Date.today,
start_date: Date.today - 30,
end_date: Date.today,
bill_to: [
"GoRails, LLC",
"123 Fake Street",
"New York City, NY 10012",
nil,
"mail@example.com"
],
company: {
name: "GoRails, LLC",
address: "123 Fake Street\nNew York City, NY 10012",
email: "support@example.com",
logo: File.expand_path("./examples/gorails.png")
},
line_items: [
["Item", "Unit Cost", "Quantity", "Amount"],
["GoRails Subscription", "$19.00", "1", "$19.00"],
[nil, nil, "Subtotal", "$19.00"],
[nil, nil, "Tax Rate", "0%"],
[nil, nil, "Total", "$19.00"]
]
).render_file "examples/statement.pdf"
end