dubai 0.0.1 → 0.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 +7 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +24 -24
- data/README.md +42 -3
- data/dubai.gemspec +8 -7
- data/lib/dubai/commands/build.rb +13 -5
- data/lib/dubai/commands/generate.rb +4 -4
- data/lib/dubai/version.rb +3 -0
- data/lib/dubai.rb +0 -4
- metadata +64 -46
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5b8813005f42ca1e096f3bd925f507d9e056e669
|
4
|
+
data.tar.gz: 2d8e8602879ff9c301ce9f3452b1cd91844d6715
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d1602e056e7fc1b49641d9f9a6f66ba4eed55665917950ad0294397ad404266363b60223eba033b557c2d3d67a18010ba9c709b96d3db9a7afe8e4d33e508400
|
7
|
+
data.tar.gz: 2d2ef1545812da0e34a1c53543a430aee51d78304b8dbc05e8d5e3de94a3deaf5636062c8b689d0a74cba7a61b7b07d80c6a37cc712dea2800ee480169376250
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,45 +1,45 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
dubai (0.0.
|
5
|
-
commander (~> 4.1
|
6
|
-
json
|
4
|
+
dubai (0.0.3)
|
5
|
+
commander (~> 4.1)
|
6
|
+
json
|
7
7
|
rubyzip
|
8
|
-
sinatra
|
9
|
-
terminal-table (~> 1.4
|
8
|
+
sinatra (~> 1.3)
|
9
|
+
terminal-table (~> 1.4)
|
10
10
|
|
11
11
|
GEM
|
12
|
-
remote:
|
12
|
+
remote: https://rubygems.org/
|
13
13
|
specs:
|
14
14
|
commander (4.1.3)
|
15
15
|
highline (~> 1.6.11)
|
16
|
-
diff-lcs (1.
|
17
|
-
highline (1.6.
|
16
|
+
diff-lcs (1.2.4)
|
17
|
+
highline (1.6.18)
|
18
18
|
json (1.7.7)
|
19
|
-
multi_json (1.
|
19
|
+
multi_json (1.7.2)
|
20
20
|
rack (1.5.2)
|
21
|
-
rack-protection (1.
|
21
|
+
rack-protection (1.5.0)
|
22
22
|
rack
|
23
|
-
rake (10.0.
|
24
|
-
rspec (2.
|
25
|
-
rspec-core (~> 2.
|
26
|
-
rspec-expectations (~> 2.
|
27
|
-
rspec-mocks (~> 2.
|
28
|
-
rspec-core (2.
|
29
|
-
rspec-expectations (2.
|
30
|
-
diff-lcs (
|
31
|
-
rspec-mocks (2.
|
23
|
+
rake (10.0.4)
|
24
|
+
rspec (2.13.0)
|
25
|
+
rspec-core (~> 2.13.0)
|
26
|
+
rspec-expectations (~> 2.13.0)
|
27
|
+
rspec-mocks (~> 2.13.0)
|
28
|
+
rspec-core (2.13.1)
|
29
|
+
rspec-expectations (2.13.0)
|
30
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
31
|
+
rspec-mocks (2.13.1)
|
32
32
|
rubyzip (0.9.9)
|
33
33
|
simplecov (0.7.1)
|
34
34
|
multi_json (~> 1.0)
|
35
35
|
simplecov-html (~> 0.7.1)
|
36
36
|
simplecov-html (0.7.1)
|
37
|
-
sinatra (1.
|
38
|
-
rack (~> 1.
|
39
|
-
rack-protection (~> 1.
|
40
|
-
tilt (~> 1.3, >= 1.3.
|
37
|
+
sinatra (1.4.2)
|
38
|
+
rack (~> 1.5, >= 1.5.2)
|
39
|
+
rack-protection (~> 1.4)
|
40
|
+
tilt (~> 1.3, >= 1.3.4)
|
41
41
|
terminal-table (1.4.5)
|
42
|
-
tilt (1.3.
|
42
|
+
tilt (1.3.7)
|
43
43
|
|
44
44
|
PLATFORMS
|
45
45
|
ruby
|
data/README.md
CHANGED
@@ -1,19 +1,58 @@
|
|
1
1
|
# Dubai
|
2
2
|
**Generate and Preview Passbook Passes**
|
3
3
|
|
4
|
+
[Passbook](http://www.apple.com/ios/whats-new/#passbook) is an iOS 6 feature that manages boarding passes, movie tickets, retail coupons, & loyalty cards. Using the [PassKit API](https://developer.apple.com/library/prerelease/ios/#documentation/UserExperience/Reference/PassKit_Framework/_index.html), developers can register web services to automatically update content on the pass, such as gate changes on a boarding pass, or adding credit to a loyalty card.
|
5
|
+
|
6
|
+
Dubai makes it easy to generate `.pkpass` from a script or the command line, allowing you to rapidly iterate on the design and content of your passes, or generate one-offs on the fly.
|
7
|
+
|
8
|
+
Pairs nicely with [Rack::Passbook](https://github.com/mattt/rack-passbook).
|
9
|
+
|
10
|
+
> Dubai is named for [Dubai, UAE](http://en.wikipedia.org/wiki/Dubai), a center of commerce and trade (and as [Dave Rupert was all-too-eager to point out](https://twitter.com/davatron5000/status/304321180259721216), an unfortunate pun on "Do Buy!").
|
11
|
+
> It's part of a series of world-class command-line utilities for iOS development, which includes [Cupertino](https://github.com/mattt/cupertino) (Apple Dev Center management), [Shenzhen](https://github.com/mattt/shenzhen) (Building & Distribution), [Houston](https://github.com/mattt/houston) (Push Notifications), and [Venice](https://github.com/mattt/venice) (In-App Purchase Receipt Verification).
|
12
|
+
|
4
13
|
## Installation
|
5
14
|
|
6
15
|
$ gem install dubai
|
7
16
|
|
17
|
+
## Usage
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
require 'dubai'
|
21
|
+
|
22
|
+
Dubai::Passbook.certificate, Dubai::Passbook.password = "/path/to/certificate.p12, "..."
|
23
|
+
|
24
|
+
# Example.pass is a directory with files "pass.png", "icon.png" & "icon@2x.png"
|
25
|
+
File.open("Example.pkpass", 'w') do |f|
|
26
|
+
f.write Dubai::Passbook::Pass.new("Example.pass").pkpass.string
|
27
|
+
end
|
28
|
+
```
|
29
|
+
|
30
|
+
<p align="center" >
|
31
|
+
<img src="http://f.cl.ly/items/1U3o0K2A1L1i0R2r3d2Z/dubai-screentshot.png" alt="Dubai Screenshot" title="Dubai Screenshot">
|
32
|
+
</p>
|
8
33
|
|
9
34
|
## Comand Line Interface
|
10
35
|
|
11
36
|
Dubai also comes with the `pk` binary, which provides a convenient way to generate and preview passes
|
12
37
|
|
38
|
+
$ pk generate Example.pass -T boarding-pass
|
39
|
+
|
40
|
+
Dubai comes with templates for all of the different Passbook layouts:
|
41
|
+
|
42
|
+
- `boarding-pass`
|
43
|
+
- `coupon`
|
44
|
+
- `event-ticket`
|
45
|
+
- `store-card`
|
46
|
+
- `generic`
|
47
|
+
|
48
|
+
Build a `.pkpass` file (which can previewed with a drag-and-drop onto the iOS Simulator):
|
49
|
+
|
50
|
+
$ pk build Example.pass -c /path/to/certificate.p12
|
51
|
+
|
52
|
+
...or serve them from a webserver (which can be previewed by visiting the address on a device or the simulator):
|
13
53
|
|
14
|
-
$ pk
|
15
|
-
$
|
16
|
-
$ open http://localhost:4000
|
54
|
+
$ pk serve Example.pass -c /path/to/certificate.p12
|
55
|
+
$ open http://localhost:4567
|
17
56
|
|
18
57
|
## Contact
|
19
58
|
|
data/dubai.gemspec
CHANGED
@@ -1,21 +1,22 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require "dubai"
|
3
|
+
require "dubai/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "dubai"
|
7
7
|
s.authors = ["Mattt Thompson"]
|
8
8
|
s.email = "m@mattt.me"
|
9
|
+
s.license = "MIT"
|
9
10
|
s.homepage = "http://github.com/mattt/dubai"
|
10
11
|
s.version = Dubai::VERSION
|
11
12
|
s.platform = Gem::Platform::RUBY
|
12
|
-
s.summary = "
|
13
|
-
s.description = ""
|
13
|
+
s.summary = "Dubai"
|
14
|
+
s.description = "Passbook pass generation and preview."
|
14
15
|
|
15
|
-
s.add_dependency "json"
|
16
|
-
s.add_dependency "commander", "~> 4.1
|
17
|
-
s.add_dependency "terminal-table", "~> 1.4
|
18
|
-
s.add_dependency "sinatra"
|
16
|
+
s.add_dependency "json"
|
17
|
+
s.add_dependency "commander", "~> 4.1"
|
18
|
+
s.add_dependency "terminal-table", "~> 1.4"
|
19
|
+
s.add_dependency "sinatra", "~> 1.3"
|
19
20
|
s.add_dependency "rubyzip"
|
20
21
|
|
21
22
|
s.add_development_dependency "rspec"
|
data/lib/dubai/commands/build.rb
CHANGED
@@ -22,18 +22,26 @@ command :build do |c|
|
|
22
22
|
|
23
23
|
Dubai::Passbook.certificate, Dubai::Passbook.password = @certificate, @password
|
24
24
|
|
25
|
-
|
26
|
-
|
25
|
+
begin
|
26
|
+
File.open(@filepath, 'w') do |f|
|
27
|
+
f.write Dubai::Passbook::Pass.new(@directory).pkpass.string
|
28
|
+
end
|
29
|
+
rescue OpenSSL::PKCS12::PKCS12Error => error
|
30
|
+
say_error "Error: #{error.message}"
|
31
|
+
say_warning "You may be getting this error because the certificate password is either incorrect or missing"
|
32
|
+
abort
|
33
|
+
rescue => error
|
34
|
+
say_error "Error: #{error.message}" and abort
|
27
35
|
end
|
28
36
|
end
|
29
37
|
end
|
30
38
|
|
31
|
-
|
32
|
-
|
39
|
+
alias_command :archive, :build
|
40
|
+
alias_command :b, :build
|
33
41
|
|
34
42
|
private
|
35
43
|
|
36
44
|
def validate_output_filepath!
|
37
45
|
say_error "Filepath required" and abort if @filepath.nil? or @filepath.empty?
|
38
46
|
say_error "#{@filepath} already exists" and abort if File.exist?(@filepath)
|
39
|
-
end
|
47
|
+
end
|
@@ -7,9 +7,9 @@ command :generate do |c|
|
|
7
7
|
|
8
8
|
c.example 'description', 'pk generate mypass'
|
9
9
|
c.option '-T', '--type [boardingPass|coupon|eventTicket|storeCard|generic]', 'Type of pass'
|
10
|
-
|
10
|
+
|
11
11
|
c.action do |args, options|
|
12
|
-
@directory = args.first
|
12
|
+
@directory = args.first
|
13
13
|
@directory ||= ask "Enter a passbook name: "
|
14
14
|
|
15
15
|
say_error "Missing pass name" and abort if @directory.nil? or @directory.empty?
|
@@ -30,8 +30,8 @@ command :generate do |c|
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
|
34
|
-
|
33
|
+
alias_command :new, :generate
|
34
|
+
alias_command :g, :generate
|
35
35
|
|
36
36
|
private
|
37
37
|
|
data/lib/dubai.rb
CHANGED
metadata
CHANGED
@@ -1,105 +1,128 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dubai
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Mattt Thompson
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-04-28 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: json
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: commander
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
31
|
- - ~>
|
31
32
|
- !ruby/object:Gem::Version
|
32
|
-
version: 4.1
|
33
|
+
version: '4.1'
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '4.1'
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: terminal-table
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
45
|
- - ~>
|
42
46
|
- !ruby/object:Gem::Version
|
43
|
-
version: 1.4
|
47
|
+
version: '1.4'
|
44
48
|
type: :runtime
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.4'
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: sinatra
|
49
|
-
requirement:
|
50
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - ~>
|
53
60
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
61
|
+
version: '1.3'
|
55
62
|
type: :runtime
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.3'
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: rubyzip
|
60
|
-
requirement:
|
61
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
62
72
|
requirements:
|
63
73
|
- - ! '>='
|
64
74
|
- !ruby/object:Gem::Version
|
65
75
|
version: '0'
|
66
76
|
type: :runtime
|
67
77
|
prerelease: false
|
68
|
-
version_requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rspec
|
71
|
-
requirement:
|
72
|
-
none: false
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
73
86
|
requirements:
|
74
87
|
- - ! '>='
|
75
88
|
- !ruby/object:Gem::Version
|
76
89
|
version: '0'
|
77
90
|
type: :development
|
78
91
|
prerelease: false
|
79
|
-
version_requirements:
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
80
97
|
- !ruby/object:Gem::Dependency
|
81
98
|
name: rake
|
82
|
-
requirement:
|
83
|
-
none: false
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
84
100
|
requirements:
|
85
101
|
- - ! '>='
|
86
102
|
- !ruby/object:Gem::Version
|
87
103
|
version: '0'
|
88
104
|
type: :development
|
89
105
|
prerelease: false
|
90
|
-
version_requirements:
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
91
111
|
- !ruby/object:Gem::Dependency
|
92
112
|
name: simplecov
|
93
|
-
requirement:
|
94
|
-
none: false
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
95
114
|
requirements:
|
96
115
|
- - ! '>='
|
97
116
|
- !ruby/object:Gem::Version
|
98
117
|
version: '0'
|
99
118
|
type: :development
|
100
119
|
prerelease: false
|
101
|
-
version_requirements:
|
102
|
-
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ! '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
description: Passbook pass generation and preview.
|
103
126
|
email: m@mattt.me
|
104
127
|
executables:
|
105
128
|
- pk
|
@@ -120,6 +143,7 @@ files:
|
|
120
143
|
- ./lib/dubai/templates/event-ticket.json
|
121
144
|
- ./lib/dubai/templates/generic.json
|
122
145
|
- ./lib/dubai/templates/store-card.json
|
146
|
+
- ./lib/dubai/version.rb
|
123
147
|
- ./lib/dubai.rb
|
124
148
|
- ./LICENSE
|
125
149
|
- ./Rakefile
|
@@ -127,34 +151,28 @@ files:
|
|
127
151
|
- spec/spec_helper.rb
|
128
152
|
- bin/pk
|
129
153
|
homepage: http://github.com/mattt/dubai
|
130
|
-
licenses:
|
154
|
+
licenses:
|
155
|
+
- MIT
|
156
|
+
metadata: {}
|
131
157
|
post_install_message:
|
132
158
|
rdoc_options: []
|
133
159
|
require_paths:
|
134
160
|
- lib
|
135
161
|
required_ruby_version: !ruby/object:Gem::Requirement
|
136
|
-
none: false
|
137
162
|
requirements:
|
138
163
|
- - ! '>='
|
139
164
|
- !ruby/object:Gem::Version
|
140
165
|
version: '0'
|
141
|
-
segments:
|
142
|
-
- 0
|
143
|
-
hash: -3634839724726580605
|
144
166
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
167
|
requirements:
|
147
168
|
- - ! '>='
|
148
169
|
- !ruby/object:Gem::Version
|
149
170
|
version: '0'
|
150
|
-
segments:
|
151
|
-
- 0
|
152
|
-
hash: -3634839724726580605
|
153
171
|
requirements: []
|
154
172
|
rubyforge_project:
|
155
|
-
rubygems_version:
|
173
|
+
rubygems_version: 2.0.3
|
156
174
|
signing_key:
|
157
|
-
specification_version:
|
158
|
-
summary:
|
175
|
+
specification_version: 4
|
176
|
+
summary: Dubai
|
159
177
|
test_files:
|
160
178
|
- spec/spec_helper.rb
|