Class: Dubai::Passbook::Pass
- Inherits:
-
Object
- Object
- Dubai::Passbook::Pass
- Defined in:
- lib/dubai/pass.rb
Constant Summary collapse
- TYPES =
['boarding-pass', 'coupon', 'event-ticket', 'store-card', 'generic']
Instance Attribute Summary collapse
-
#assets ⇒ Object
readonly
Returns the value of attribute assets.
-
#pass ⇒ Object
readonly
Returns the value of attribute pass.
Instance Method Summary collapse
-
#initialize(directory) ⇒ Pass
constructor
A new instance of Pass.
- #manifest ⇒ Object
- #pkpass ⇒ Object
Constructor Details
#initialize(directory) ⇒ Pass
Returns a new instance of Pass.
46 47 48 49 |
# File 'lib/dubai/pass.rb', line 46 def initialize(directory) @assets = Dir[File.join(directory, '*')] @pass = File.read(@assets.delete(@assets.detect{|file| File.basename(file) == 'pass.json'})) end |
Instance Attribute Details
#assets ⇒ Object (readonly)
Returns the value of attribute assets.
42 43 44 |
# File 'lib/dubai/pass.rb', line 42 def assets @assets end |
#pass ⇒ Object (readonly)
Returns the value of attribute pass.
42 43 44 |
# File 'lib/dubai/pass.rb', line 42 def pass @pass end |
Instance Method Details
#manifest ⇒ Object
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/dubai/pass.rb', line 51 def manifest checksums = {} checksums['pass.json'] = Digest::SHA1.hexdigest(@pass) @assets.each do |file| checksums[File.basename(file)] = Digest::SHA1.file(file).hexdigest end checksums.to_json end |
#pkpass ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/dubai/pass.rb', line 62 def pkpass Zip::OutputStream.write_buffer do |zip| zip.put_next_entry 'pass.json' and zip.write @pass zip.put_next_entry 'manifest.json' and zip.write manifest zip.put_next_entry 'signature' and zip.write signature(manifest) @assets.each do |file| zip.put_next_entry File.basename(file) and zip.print IO.read(file) end end end |