strobe 0.3.7 → 0.3.8
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.
- data/lib/strobe/cli/deploys.rb +2 -2
- data/lib/strobe/cli/main.rb +84 -13
- data/lib/strobe/cli/users.rb +3 -3
- data/lib/strobe/cli.rb +5 -1
- data/lib/strobe/connection.rb +13 -6
- data/lib/strobe/version.rb +1 -1
- data/lib/strobe.rb +6 -0
- metadata +132 -72
data/lib/strobe/cli/deploys.rb
CHANGED
@@ -4,7 +4,7 @@ module Strobe
|
|
4
4
|
class CLI::Deploys < CLI
|
5
5
|
|
6
6
|
method_option "application-id", :type => :numeric, :banner => "Use application with given id"
|
7
|
-
action "list", "
|
7
|
+
action "list", "List all deploys for an application" do
|
8
8
|
app = get_application(options)
|
9
9
|
deploys = app.deploys.all
|
10
10
|
|
@@ -14,7 +14,7 @@ module Strobe
|
|
14
14
|
method_option "application-id", :type => :numeric, :banner => "Use application with given id"
|
15
15
|
method_option "full", :type => :boolean, :banner => "Display full deploy info"
|
16
16
|
method_option "include-builds", :type => :boolean, :banner => "Include builds data"
|
17
|
-
action "show", "
|
17
|
+
action "show", "Show the last deploy for an application" do |*args|
|
18
18
|
sha = args.first
|
19
19
|
|
20
20
|
app = get_application(options)
|
data/lib/strobe/cli/main.rb
CHANGED
@@ -7,9 +7,25 @@ module Strobe
|
|
7
7
|
class CLI::Main < CLI
|
8
8
|
include CLI::Preview
|
9
9
|
|
10
|
+
|
11
|
+
def self.help(shell, subcommand = false)
|
12
|
+
shell.say <<LONGDESC
|
13
|
+
strobe-cli (v#{Strobe::VERSION}) - cli tool for the Strobe Platform
|
14
|
+
|
15
|
+
Deploy and manage your applications on the Strobe Platform.
|
16
|
+
|
17
|
+
To get started, just run `strobe deploy` in your application directory.
|
18
|
+
|
19
|
+
LONGDESC
|
20
|
+
|
21
|
+
super shell, subcommand
|
22
|
+
end
|
23
|
+
|
10
24
|
def help(*args)
|
11
25
|
if args.first == "users"
|
12
26
|
CLI::Users.start( [ "help" ] + args[1..-1] )
|
27
|
+
elsif args.first == "deploys"
|
28
|
+
CLI::Deploys.start( [ "help" ] + args[1..-1] )
|
13
29
|
else
|
14
30
|
super
|
15
31
|
end
|
@@ -23,7 +39,15 @@ module Strobe
|
|
23
39
|
|
24
40
|
method_option "global", :type => :boolean, :banner => "Set option globally (for all applications)"
|
25
41
|
method_option "unset", :type => :boolean, :banner => "Unset a config option"
|
26
|
-
|
42
|
+
long_desc <<-LONGDESC
|
43
|
+
Set configuration variables for your application(s). These are primarily used by
|
44
|
+
the `strobe preview` server.
|
45
|
+
|
46
|
+
For example, you set up the social add-on with:
|
47
|
+
|
48
|
+
> $ strobe config social.twitter.consumer_key [YOUR_CONSUMER_KEY]
|
49
|
+
LONGDESC
|
50
|
+
action "config", "Set configuration variables", :usage => "config KEY [VALUE]" do |key, *val|
|
27
51
|
val = val.first
|
28
52
|
case
|
29
53
|
when val
|
@@ -46,14 +70,14 @@ module Strobe
|
|
46
70
|
end
|
47
71
|
end
|
48
72
|
|
49
|
-
action "users", '
|
73
|
+
action "users", 'Manage users' do |*args|
|
50
74
|
argv = $__ARGV[1..-1]
|
51
75
|
argv = [ 'list' ] + argv if args.empty?
|
52
76
|
CLI::Users.start(argv)
|
53
77
|
end
|
54
78
|
|
55
79
|
method_option "production", :type => :boolean, :banner => "open production version of this application"
|
56
|
-
action "open", "
|
80
|
+
action "open", "Opens your application in a web browser" do
|
57
81
|
resource get_application
|
58
82
|
|
59
83
|
environment = options[:production] ? "production" : "staging"
|
@@ -62,13 +86,13 @@ module Strobe
|
|
62
86
|
Launchy.open("http://#{url}")
|
63
87
|
end
|
64
88
|
|
65
|
-
action "deploys", "
|
89
|
+
action "deploys", "Manage deploys" do |*args|
|
66
90
|
argv = $__ARGV[1..-1]
|
67
91
|
argv = [ 'list' ] + argv if args.empty?
|
68
92
|
CLI::Deploys.start(argv)
|
69
93
|
end
|
70
94
|
|
71
|
-
action "signup", "
|
95
|
+
action "signup", "Sign up for a new Strobe account" do
|
72
96
|
resource Signup.new :account => { :name => 'default' }
|
73
97
|
|
74
98
|
if settings[:token]
|
@@ -98,7 +122,7 @@ module Strobe
|
|
98
122
|
end
|
99
123
|
end
|
100
124
|
|
101
|
-
action "login", "
|
125
|
+
action "login", "Register this computer with an existing Strobe account" do
|
102
126
|
resource Me.new
|
103
127
|
|
104
128
|
until_success do
|
@@ -116,14 +140,32 @@ module Strobe
|
|
116
140
|
end
|
117
141
|
|
118
142
|
method_option "port", :type => :string, :banner => "port to start server on", :aliases => "-p", :default => "9292"
|
119
|
-
|
143
|
+
long_desc <<-LONGDESC
|
144
|
+
Preview your application as it would show up on Strobe Platform.
|
145
|
+
|
146
|
+
This command runs a development server that mimics the Strobe
|
147
|
+
Platform on your local computer, making it possible to check your
|
148
|
+
code without having to deploy it.
|
149
|
+
|
150
|
+
By default the preview server runs on port 9292 but you can specify
|
151
|
+
a different port with the `--port` option.
|
152
|
+
LONGDESC
|
153
|
+
action "preview", "Preview your application as it would show up on Strobe Platform" do
|
120
154
|
preview_strobe_application(options[:port])
|
121
155
|
end
|
122
156
|
|
123
157
|
application_path_option
|
124
158
|
method_option "message", :type => :string, :banner => "add rollback message", :aliases => "-m"
|
125
159
|
method_option "production", :type => :boolean, :banner => "rollback a production environment"
|
126
|
-
|
160
|
+
long_desc <<-LONGDESC
|
161
|
+
Rollback an application to the state specified by a given deploy key.
|
162
|
+
|
163
|
+
This is useful if you discovered that you deployed bad code and allows
|
164
|
+
you to quickly return to a known good state.
|
165
|
+
|
166
|
+
For a list of deploy keys, run `strobe deploys list`.
|
167
|
+
LONGDESC
|
168
|
+
action "rollback", "Rollback application to a state from given deploy", :usage => "rollback KEY" do |sha|
|
127
169
|
ensure_computer_is_registered
|
128
170
|
|
129
171
|
id = options['application-id'] || config[:application_id]
|
@@ -150,7 +192,16 @@ module Strobe
|
|
150
192
|
method_option "sc-build", :type => :boolean, :banner => "run `sc-build -c` before deploying"
|
151
193
|
method_option "no-sc-build", :type => :boolean, :banner => "skip the `sc-build -c` step"
|
152
194
|
method_option "url", :banner => "set application's url"
|
153
|
-
|
195
|
+
long_desc <<-LONGDESC
|
196
|
+
Deploy your application to the Strobe Platform.
|
197
|
+
|
198
|
+
If you have not yet logged in or created an application, you will
|
199
|
+
be prompted to do so.
|
200
|
+
|
201
|
+
By default your application is deployed to the staging enviroment.
|
202
|
+
To deploy to production, use `--production`.
|
203
|
+
LONGDESC
|
204
|
+
action "deploy", "Deploy your application to Strobe Platform" do
|
154
205
|
ensure_computer_is_registered
|
155
206
|
env = (options[:production] ? "production" : "staging")
|
156
207
|
|
@@ -218,14 +269,22 @@ module Strobe
|
|
218
269
|
end
|
219
270
|
|
220
271
|
|
221
|
-
action "applications", "
|
272
|
+
action "applications", "List all of your applications" do
|
222
273
|
empty = "You do not have any applications. Try deploying one with `strobe deploy`."
|
223
274
|
list_applications :empty => empty
|
224
275
|
end
|
225
276
|
|
226
277
|
method_option "url", :type => :string
|
227
278
|
application_path_option
|
228
|
-
|
279
|
+
long_desc <<-LONGDESC
|
280
|
+
Update the settings for your Application.
|
281
|
+
|
282
|
+
At the moment, this command is only used for setting your application's URL.
|
283
|
+
To do this, run as:
|
284
|
+
|
285
|
+
> $ strobe set --url URL
|
286
|
+
LONGDESC
|
287
|
+
action "set", "Update the settings for the application" do
|
229
288
|
resource get_application
|
230
289
|
|
231
290
|
if options['url'].blank?
|
@@ -241,7 +300,12 @@ module Strobe
|
|
241
300
|
|
242
301
|
application_path_option
|
243
302
|
method_option "application-id", :type => :numeric, :banner => "Delete application with given id"
|
244
|
-
|
303
|
+
long_desc <<-LONGDESC
|
304
|
+
Delete a specific application.
|
305
|
+
|
306
|
+
This is a dangerous and permanant action. Fortunately, we confirm it with you before proceeding.
|
307
|
+
LONGDESC
|
308
|
+
action "delete", "Delete a specific application" do
|
245
309
|
id = options['application-id'] || (application_dir? && config[:application_id])
|
246
310
|
resource(id ? Application.get!(id) : pick_application)
|
247
311
|
|
@@ -263,7 +327,14 @@ module Strobe
|
|
263
327
|
|
264
328
|
application_path_option
|
265
329
|
method_option "application-id", :type => :numeric, :banner => "The ID of the remote application"
|
266
|
-
|
330
|
+
long_desc <<-LONGDESC
|
331
|
+
Register a local application with an existing Strobe application.
|
332
|
+
|
333
|
+
In the event that you have already set up a Strobe application elsewhere
|
334
|
+
(i.e. via the web interface or on another computer), you can use this
|
335
|
+
command to link your local application to the one on Strobe Platform.
|
336
|
+
LONGDESC
|
337
|
+
action "register", "Registers a local application with an existing Strobe application" do
|
267
338
|
if config[:application_id] && app = Application.get(config[:application_id])
|
268
339
|
say "The directory is already registered with the application `#{app[:name]}`"
|
269
340
|
say "Aborting..."
|
data/lib/strobe/cli/users.rb
CHANGED
@@ -2,7 +2,7 @@ module Strobe
|
|
2
2
|
class CLI::Users < CLI
|
3
3
|
|
4
4
|
application_path_option
|
5
|
-
action "list", "
|
5
|
+
action "list", "List users that have access to this application" do
|
6
6
|
@team = get_current_team!
|
7
7
|
if @team.memberships.any?
|
8
8
|
say "The following users also have access to the application"
|
@@ -18,7 +18,7 @@ module Strobe
|
|
18
18
|
end
|
19
19
|
|
20
20
|
application_path_option
|
21
|
-
action "add", "
|
21
|
+
action "add", "Give a user access to this application",
|
22
22
|
:usage => "users add <email>" do |email|
|
23
23
|
@team = get_current_team!
|
24
24
|
@team.memberships.create! :email => email
|
@@ -27,7 +27,7 @@ module Strobe
|
|
27
27
|
end
|
28
28
|
|
29
29
|
application_path_option
|
30
|
-
action "remove", "
|
30
|
+
action "remove", "Remove a user's access to this application",
|
31
31
|
:usage => "users remove <email>" do |email|
|
32
32
|
@team = get_current_team!
|
33
33
|
@team.memberships.each do |m|
|
data/lib/strobe/cli.rb
CHANGED
@@ -68,8 +68,12 @@ module Strobe
|
|
68
68
|
options = args.last if args.last.is_a?(Hash)
|
69
69
|
usage = if options && options[:usage]
|
70
70
|
options[:usage]
|
71
|
+
elsif self == Users
|
72
|
+
"users #{name}"
|
73
|
+
elsif self == Deploys
|
74
|
+
"deploys #{name}"
|
71
75
|
else
|
72
|
-
|
76
|
+
name
|
73
77
|
end
|
74
78
|
desc usage, *args
|
75
79
|
define_method("__hax__#{name}", &blk)
|
data/lib/strobe/connection.rb
CHANGED
@@ -89,17 +89,17 @@ module Strobe
|
|
89
89
|
end
|
90
90
|
|
91
91
|
def validate!
|
92
|
-
msg = body['errors'] && body['errors']['request']
|
93
92
|
case status
|
94
93
|
when 401
|
95
|
-
|
96
|
-
raise UnauthenticatedError, msg
|
94
|
+
raise UnauthenticatedError, error_message
|
97
95
|
when 404
|
98
|
-
raise ResourceNotFoundError,
|
96
|
+
raise ResourceNotFoundError, error_message
|
99
97
|
when 412
|
100
|
-
raise OutdatedStrobeVersionError,
|
98
|
+
raise OutdatedStrobeVersionError, error_message
|
99
|
+
when 503
|
100
|
+
headers["x-strobe-maintenance"] ? raise(UnderMaintenanceError) : server_error
|
101
101
|
when 500...600
|
102
|
-
|
102
|
+
server_error
|
103
103
|
end
|
104
104
|
|
105
105
|
self
|
@@ -123,12 +123,19 @@ module Strobe
|
|
123
123
|
end
|
124
124
|
end
|
125
125
|
|
126
|
+
def error_message
|
127
|
+
body['errors'] && body['errors']['request']
|
128
|
+
end
|
129
|
+
|
126
130
|
def json_decode(data)
|
127
131
|
ActiveSupport::JSON.decode(@response.body)
|
128
132
|
rescue ActiveSupport::JSON.parse_error => e
|
129
133
|
raise JSONParseError.new(e, data)
|
130
134
|
end
|
131
135
|
|
136
|
+
def server_error
|
137
|
+
raise ServerError.new("The server encountered an error", :response => to_hash, :request => @request.to_hash)
|
138
|
+
end
|
132
139
|
end
|
133
140
|
|
134
141
|
class Request
|
data/lib/strobe/version.rb
CHANGED
data/lib/strobe.rb
CHANGED
@@ -45,6 +45,12 @@ module Strobe
|
|
45
45
|
class ValidationError < StrobeError ; end
|
46
46
|
class OutdatedStrobeVersionError < StrobeError ; end
|
47
47
|
class InvalidPortError < StrobeError ; end
|
48
|
+
class UnderMaintenanceError < StrobeError
|
49
|
+
def initialize
|
50
|
+
super("We are currently down for maintenance. You can check our status " \
|
51
|
+
"at http://twitter.com/strobestatus. Please try again soon.")
|
52
|
+
end
|
53
|
+
end
|
48
54
|
|
49
55
|
class NotifiableError < StrobeError
|
50
56
|
attr_reader :data
|
metadata
CHANGED
@@ -1,113 +1,160 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: strobe
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
- 8
|
10
|
+
version: 0.3.8
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Carl Lerche
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2011-09-20 00:00:00 -07:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
15
22
|
name: activemodel
|
16
|
-
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
25
|
none: false
|
18
|
-
requirements:
|
26
|
+
requirements:
|
19
27
|
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 7
|
30
|
+
segments:
|
31
|
+
- 3
|
32
|
+
- 0
|
33
|
+
- 0
|
21
34
|
version: 3.0.0
|
22
35
|
type: :runtime
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
26
38
|
name: mime-types
|
27
|
-
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
41
|
none: false
|
29
|
-
requirements:
|
42
|
+
requirements:
|
30
43
|
- - ~>
|
31
|
-
- !ruby/object:Gem::Version
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 87
|
46
|
+
segments:
|
47
|
+
- 1
|
48
|
+
- 16
|
49
|
+
- 0
|
32
50
|
version: 1.16.0
|
33
51
|
type: :runtime
|
34
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
52
|
+
version_requirements: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
37
54
|
name: rack
|
38
|
-
|
55
|
+
prerelease: false
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
57
|
none: false
|
40
|
-
requirements:
|
58
|
+
requirements:
|
41
59
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 27
|
62
|
+
segments:
|
63
|
+
- 1
|
64
|
+
- 3
|
65
|
+
- 0
|
43
66
|
version: 1.3.0
|
44
67
|
type: :runtime
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
68
|
+
version_requirements: *id003
|
69
|
+
- !ruby/object:Gem::Dependency
|
48
70
|
name: thin
|
49
|
-
|
71
|
+
prerelease: false
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
73
|
none: false
|
51
|
-
requirements:
|
74
|
+
requirements:
|
52
75
|
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
hash: 31
|
78
|
+
segments:
|
79
|
+
- 1
|
80
|
+
- 2
|
81
|
+
- 0
|
54
82
|
version: 1.2.0
|
55
83
|
type: :runtime
|
56
|
-
|
57
|
-
|
58
|
-
- !ruby/object:Gem::Dependency
|
84
|
+
version_requirements: *id004
|
85
|
+
- !ruby/object:Gem::Dependency
|
59
86
|
name: em-http-request
|
60
|
-
|
87
|
+
prerelease: false
|
88
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
89
|
none: false
|
62
|
-
requirements:
|
90
|
+
requirements:
|
63
91
|
- - ~>
|
64
|
-
- !ruby/object:Gem::Version
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
hash: 31098193
|
94
|
+
segments:
|
95
|
+
- 1
|
96
|
+
- 0
|
97
|
+
- 0
|
98
|
+
- beta
|
65
99
|
version: 1.0.0.beta
|
66
100
|
type: :runtime
|
67
|
-
|
68
|
-
|
69
|
-
- !ruby/object:Gem::Dependency
|
101
|
+
version_requirements: *id005
|
102
|
+
- !ruby/object:Gem::Dependency
|
70
103
|
name: thor
|
71
|
-
|
104
|
+
prerelease: false
|
105
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
72
106
|
none: false
|
73
|
-
requirements:
|
107
|
+
requirements:
|
74
108
|
- - ~>
|
75
|
-
- !ruby/object:Gem::Version
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
hash: 39
|
111
|
+
segments:
|
112
|
+
- 0
|
113
|
+
- 14
|
114
|
+
- 0
|
76
115
|
version: 0.14.0
|
77
116
|
type: :runtime
|
78
|
-
|
79
|
-
|
80
|
-
- !ruby/object:Gem::Dependency
|
117
|
+
version_requirements: *id006
|
118
|
+
- !ruby/object:Gem::Dependency
|
81
119
|
name: oauth
|
82
|
-
|
120
|
+
prerelease: false
|
121
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
83
122
|
none: false
|
84
|
-
requirements:
|
123
|
+
requirements:
|
85
124
|
- - ~>
|
86
|
-
- !ruby/object:Gem::Version
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
hash: 5
|
127
|
+
segments:
|
128
|
+
- 0
|
129
|
+
- 4
|
130
|
+
- 5
|
87
131
|
version: 0.4.5
|
88
132
|
type: :runtime
|
89
|
-
|
90
|
-
|
91
|
-
- !ruby/object:Gem::Dependency
|
133
|
+
version_requirements: *id007
|
134
|
+
- !ruby/object:Gem::Dependency
|
92
135
|
name: launchy
|
93
|
-
|
136
|
+
prerelease: false
|
137
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
94
138
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
hash: 3
|
143
|
+
segments:
|
144
|
+
- 0
|
145
|
+
version: "0"
|
99
146
|
type: :runtime
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
platform
|
104
|
-
email:
|
147
|
+
version_requirements: *id008
|
148
|
+
description: The client library for deploying applications to Strobe's HTML5 deployment platform
|
149
|
+
email:
|
105
150
|
- carl@strobecorp.com
|
106
|
-
executables:
|
151
|
+
executables:
|
107
152
|
- strobe
|
108
153
|
extensions: []
|
154
|
+
|
109
155
|
extra_rdoc_files: []
|
110
|
-
|
156
|
+
|
157
|
+
files:
|
111
158
|
- lib/strobe/addons/social/facebook.rb
|
112
159
|
- lib/strobe/addons/social/twitter.rb
|
113
160
|
- lib/strobe/addons/social.rb
|
@@ -154,28 +201,41 @@ files:
|
|
154
201
|
- README.md
|
155
202
|
- lib/strobe/certs/cacert.pem
|
156
203
|
- bin/strobe
|
204
|
+
has_rdoc: true
|
157
205
|
homepage: http://rubygems.org/gems/strobe
|
158
206
|
licenses: []
|
207
|
+
|
159
208
|
post_install_message:
|
160
209
|
rdoc_options: []
|
161
|
-
|
210
|
+
|
211
|
+
require_paths:
|
162
212
|
- lib
|
163
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
213
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
164
214
|
none: false
|
165
|
-
requirements:
|
166
|
-
- -
|
167
|
-
- !ruby/object:Gem::Version
|
168
|
-
|
169
|
-
|
215
|
+
requirements:
|
216
|
+
- - ">="
|
217
|
+
- !ruby/object:Gem::Version
|
218
|
+
hash: 3
|
219
|
+
segments:
|
220
|
+
- 0
|
221
|
+
version: "0"
|
222
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
223
|
none: false
|
171
|
-
requirements:
|
172
|
-
- -
|
173
|
-
- !ruby/object:Gem::Version
|
224
|
+
requirements:
|
225
|
+
- - ">="
|
226
|
+
- !ruby/object:Gem::Version
|
227
|
+
hash: 23
|
228
|
+
segments:
|
229
|
+
- 1
|
230
|
+
- 3
|
231
|
+
- 6
|
174
232
|
version: 1.3.6
|
175
233
|
requirements: []
|
234
|
+
|
176
235
|
rubyforge_project: strobe
|
177
|
-
rubygems_version: 1.
|
236
|
+
rubygems_version: 1.6.2
|
178
237
|
signing_key:
|
179
238
|
specification_version: 3
|
180
239
|
summary: A deployment tool for HTML5 applications
|
181
240
|
test_files: []
|
241
|
+
|