nimbu 0.4 → 0.5.1
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/nimbu.rb +3 -19
- data/lib/nimbu/auth.rb +106 -95
- data/lib/nimbu/cli.rb +20 -3
- data/lib/nimbu/command.rb +138 -68
- data/lib/nimbu/command/auth.rb +21 -3
- data/lib/nimbu/command/base.rb +38 -75
- data/lib/nimbu/command/browse.rb +63 -0
- data/lib/nimbu/command/help.rb +1 -1
- data/lib/nimbu/command/helpers.rb +6 -4
- data/lib/nimbu/command/init.rb +5 -6
- data/lib/nimbu/command/server.rb +119 -55
- data/lib/nimbu/command/sites.rb +32 -0
- data/lib/nimbu/command/themes.rb +29 -52
- data/lib/nimbu/helpers.rb +268 -89
- data/lib/nimbu/server/base.rb +56 -41
- data/lib/nimbu/ssh.rb +54 -0
- data/lib/nimbu/version.rb +1 -1
- metadata +128 -42
- data/lib/nimbu/client.rb +0 -289
- data/lib/nimbu/client/rendezvous.rb +0 -76
- data/lib/nimbu/server/views/index.haml +0 -1
data/lib/nimbu/server/base.rb
CHANGED
@@ -6,6 +6,7 @@ require 'term/ansicolor'
|
|
6
6
|
require "base64"
|
7
7
|
require "sinatra/json"
|
8
8
|
require 'json'
|
9
|
+
require 'rack/streaming_proxy'
|
9
10
|
|
10
11
|
module Nimbu
|
11
12
|
module Server
|
@@ -21,13 +22,18 @@ module Nimbu
|
|
21
22
|
set :method_override, true
|
22
23
|
set :static, true # set up static file routing
|
23
24
|
set :public_folder, Dir.pwd # set up the static dir (with images/js/css inside)
|
24
|
-
|
25
|
+
|
25
26
|
set :views, File.expand_path('../views', __FILE__) # set up the views dir
|
26
27
|
set :haml, { :format => :html5 } # if you use haml
|
27
|
-
|
28
|
+
|
28
29
|
# Your "actions" go here…
|
29
30
|
#
|
30
31
|
|
32
|
+
get '/media/*' do
|
33
|
+
proxy = Rack::StreamingProxy::ProxyRequest.new(request,"http://#{nimbu.host}/media/#{params[:splat].first}")
|
34
|
+
return [proxy.status, proxy.headers, proxy]
|
35
|
+
end
|
36
|
+
|
31
37
|
get '/__sinatra__/*' do
|
32
38
|
return ""
|
33
39
|
end
|
@@ -51,7 +57,7 @@ module Nimbu
|
|
51
57
|
if request.get? then "get"
|
52
58
|
elsif request.post? then "post"
|
53
59
|
elsif request.put? then "put"
|
54
|
-
elsif request.delete? then "delete"
|
60
|
+
elsif request.delete? then "delete"
|
55
61
|
end
|
56
62
|
)
|
57
63
|
puts green("#{method.upcase} #{request.fullpath}")
|
@@ -89,7 +95,7 @@ module Nimbu
|
|
89
95
|
# begin
|
90
96
|
# result = json_decode(nimbu.get_template({:path => path, :extra => params, :method => "get", :extra => params, :client_session => session, :ajax => request.xhr? }))
|
91
97
|
# puts result if Nimbu.debug
|
92
|
-
# parse_session(result)
|
98
|
+
# parse_session(result)
|
93
99
|
# rescue Exception => e
|
94
100
|
# return e.http_body
|
95
101
|
# end
|
@@ -103,12 +109,12 @@ module Nimbu
|
|
103
109
|
params = ({} || params).merge({:simulator => {
|
104
110
|
:host => request.host,
|
105
111
|
:port => request.port,
|
106
|
-
:path => path,
|
107
|
-
:method => method,
|
108
|
-
:session => session,
|
112
|
+
:path => path,
|
113
|
+
:method => method,
|
114
|
+
:session => session,
|
109
115
|
:headers => request.env.to_json,
|
110
116
|
}})
|
111
|
-
result =
|
117
|
+
result = nimbu.simulator(:subdomain => Nimbu::Auth.site).recipe(params)
|
112
118
|
puts result if Nimbu.debug
|
113
119
|
rescue Exception => e
|
114
120
|
if e.respond_to?(:http_body)
|
@@ -117,7 +123,7 @@ module Nimbu
|
|
117
123
|
raise e
|
118
124
|
end
|
119
125
|
end
|
120
|
-
|
126
|
+
|
121
127
|
if result["template"].nil?
|
122
128
|
raise Sinatra::NotFound
|
123
129
|
end
|
@@ -128,10 +134,15 @@ module Nimbu
|
|
128
134
|
puts green(" => using template '#{template}'")
|
129
135
|
# Read the template file
|
130
136
|
template_file = File.join(Dir.pwd,'templates',template)
|
137
|
+
template_file_haml = File.join(Dir.pwd,'templates',"#{template}.haml")
|
138
|
+
|
131
139
|
if File.exists?(template_file)
|
132
140
|
template_code = IO.read(template_file)
|
141
|
+
elsif File.exists?(template_file_haml)
|
142
|
+
template_code = IO.read(template_file_haml)
|
143
|
+
template = "#{template}.haml"
|
133
144
|
else
|
134
|
-
puts red("Layout file '#{template_file}' is missing...")
|
145
|
+
puts red("Layout file '#{template_file}' is missing...")
|
135
146
|
return render_missing(File.join('templates',template),'template')
|
136
147
|
end
|
137
148
|
|
@@ -150,10 +161,15 @@ module Nimbu
|
|
150
161
|
|
151
162
|
# Read the layout file
|
152
163
|
layout_file = File.join(Dir.pwd,'layouts',layout)
|
164
|
+
layout_file_haml = File.join(Dir.pwd,'layouts',"#{layout}.haml")
|
165
|
+
|
153
166
|
if File.exists?(layout_file)
|
154
167
|
layout_code = IO.read(layout_file)
|
168
|
+
elsif File.exists?(layout_file_haml)
|
169
|
+
layout = "#{layout}.haml"
|
170
|
+
layout_code = IO.read(layout_file_haml)
|
155
171
|
else
|
156
|
-
puts red("Layout file '#{layout_file}' is missing...")
|
172
|
+
puts red("Layout file '#{layout_file}' is missing...")
|
157
173
|
return render_missing(File.join('layouts',layout),'layout')
|
158
174
|
end
|
159
175
|
|
@@ -164,7 +180,7 @@ module Nimbu
|
|
164
180
|
snippets = parse_snippets(layout_code,snippets)
|
165
181
|
rescue Exception => e
|
166
182
|
# If there is a snippet missing, we raise an error
|
167
|
-
puts red("Snippet file '#{e.message}' is missing...")
|
183
|
+
puts red("Snippet file '#{e.message}' is missing...")
|
168
184
|
return render_missing(e.message,'snippet')
|
169
185
|
end
|
170
186
|
|
@@ -179,28 +195,35 @@ module Nimbu
|
|
179
195
|
# Send the templates to the browser
|
180
196
|
begin
|
181
197
|
params = ({} || params).merge({:simulator => {
|
182
|
-
:path => path,
|
183
|
-
:
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
:
|
198
|
+
:path => path,
|
199
|
+
:code => {
|
200
|
+
:template_name => template,
|
201
|
+
:template => template_code,
|
202
|
+
:layout_name => layout,
|
203
|
+
:layout => layout_code,
|
204
|
+
:snippets => snippets,
|
205
|
+
},
|
206
|
+
:request => {
|
207
|
+
:host => request.host,
|
208
|
+
:port => request.port,
|
209
|
+
:method => method,
|
210
|
+
:session => session,
|
211
|
+
:headers => request.env.to_json
|
212
|
+
}
|
191
213
|
}})
|
192
|
-
results =
|
214
|
+
results = nimbu.simulator(:subdomain => Nimbu::Auth.site).render(params)
|
193
215
|
puts results["status"] if Nimbu.debug
|
194
216
|
puts results["headers"] if Nimbu.debug
|
195
|
-
puts results["body"].gsub(/\n/,'') if Nimbu.debug
|
217
|
+
puts Base64.decode64(results["body"]).gsub(/\n/,'') if Nimbu.debug
|
196
218
|
|
197
219
|
status results["status"]
|
198
220
|
headers results["headers"] unless results["headers"] == ""
|
199
|
-
body results["body"]
|
200
|
-
rescue
|
221
|
+
body Base64.decode64(results["body"])
|
222
|
+
rescue Exception => error
|
223
|
+
puts "Error!"
|
201
224
|
puts "Error! #{error.http_body}"
|
202
225
|
html = error.http_body
|
203
|
-
end
|
226
|
+
end
|
204
227
|
end
|
205
228
|
|
206
229
|
error 404 do
|
@@ -256,25 +279,11 @@ module Nimbu
|
|
256
279
|
rescue Nimbu::OkJson::ParserError
|
257
280
|
nil
|
258
281
|
end
|
259
|
-
|
282
|
+
|
260
283
|
def nimbu
|
261
284
|
Nimbu::Auth.client
|
262
285
|
end
|
263
286
|
|
264
|
-
# def parse_session(response)
|
265
|
-
# if !response["session"].nil?
|
266
|
-
# response["session"].each do |key,value|
|
267
|
-
# session[key.to_sym] = value
|
268
|
-
# #puts "Session: :#{key} => #{value}" if Nimbu.debug
|
269
|
-
# end
|
270
|
-
# session.each do |key,value|
|
271
|
-
# if !response["session"].has_key?(key.to_s)
|
272
|
-
# session.delete(key)
|
273
|
-
# end
|
274
|
-
# end
|
275
|
-
# end
|
276
|
-
# end
|
277
|
-
|
278
287
|
def parse_snippets(code, snippets = {})
|
279
288
|
# Parse template file for snippets
|
280
289
|
search = Regexp.new("\{\% include (.*) \%\}")
|
@@ -288,10 +297,16 @@ module Nimbu
|
|
288
297
|
end
|
289
298
|
# Read the snippet file
|
290
299
|
snippet_file = File.join(Dir.pwd,'snippets',snippet_name)
|
300
|
+
snippet_file_haml = File.join(Dir.pwd,'snippets',"#{snippet_name}.haml")
|
301
|
+
|
291
302
|
if File.exists?(snippet_file)
|
292
303
|
snippet_code = IO.read(snippet_file)
|
293
304
|
snippets[snippet_name.to_sym] = snippet_code
|
294
305
|
self.parse_snippets(snippet_code, snippets)
|
306
|
+
elsif File.exists?(snippet_file_haml)
|
307
|
+
snippet_code = IO.read(snippet_file_haml)
|
308
|
+
snippets["#{snippet_name}.haml".to_sym] = snippet_code
|
309
|
+
self.parse_snippets(snippet_code, snippets)
|
295
310
|
else
|
296
311
|
raise "#{snippet_file}"
|
297
312
|
end
|
data/lib/nimbu/ssh.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
require "yaml"
|
2
|
+
require "nimbu"
|
3
|
+
require "nimbu/helpers"
|
4
|
+
|
5
|
+
class Nimbu::Auth
|
6
|
+
class << self
|
7
|
+
|
8
|
+
include Nimbu::Helpers
|
9
|
+
def check_for_associated_ssh_key
|
10
|
+
return unless client.keys.empty?
|
11
|
+
associate_or_generate_ssh_key
|
12
|
+
end
|
13
|
+
|
14
|
+
def associate_or_generate_ssh_key
|
15
|
+
public_keys = Dir.glob("#{home_directory}/.ssh/*.pub").sort
|
16
|
+
|
17
|
+
case public_keys.length
|
18
|
+
when 0 then
|
19
|
+
display "Could not find an existing public key."
|
20
|
+
display "Would you like to generate one? [Yn] ", false
|
21
|
+
unless ask.strip.downcase == "n"
|
22
|
+
display "Generating new SSH public key."
|
23
|
+
generate_ssh_key("id_rsa")
|
24
|
+
associate_key("#{home_directory}/.ssh/id_rsa.pub")
|
25
|
+
end
|
26
|
+
when 1 then
|
27
|
+
display "Found existing public key: #{public_keys.first}"
|
28
|
+
associate_key(public_keys.first)
|
29
|
+
else
|
30
|
+
display "Found the following SSH public keys:"
|
31
|
+
public_keys.each_with_index do |key, index|
|
32
|
+
display "#{index+1}) #{File.basename(key)}"
|
33
|
+
end
|
34
|
+
display "Which would you like to use with your Nimbu account? ", false
|
35
|
+
chosen = public_keys[ask.to_i-1] rescue error("Invalid choice")
|
36
|
+
associate_key(chosen)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def generate_ssh_key(keyfile)
|
41
|
+
ssh_dir = File.join(home_directory, ".ssh")
|
42
|
+
unless File.exists?(ssh_dir)
|
43
|
+
FileUtils.mkdir_p ssh_dir
|
44
|
+
File.chmod(0700, ssh_dir)
|
45
|
+
end
|
46
|
+
`ssh-keygen -t rsa -N "" -f \"#{home_directory}/.ssh/#{keyfile}\" 2>&1`
|
47
|
+
end
|
48
|
+
|
49
|
+
def associate_key(key)
|
50
|
+
display "Uploading SSH public key #{key}"
|
51
|
+
client.add_key(File.read(key))
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
data/lib/nimbu/version.rb
CHANGED
metadata
CHANGED
@@ -1,66 +1,73 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nimbu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.4'
|
5
4
|
prerelease:
|
5
|
+
version: 0.5.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Zenjoy BVBA
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-04-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
17
16
|
none: false
|
18
17
|
requirements:
|
19
18
|
- - ~>
|
20
19
|
- !ruby/object:Gem::Version
|
21
20
|
version: 1.0.5
|
22
|
-
|
21
|
+
name: term-ansicolor
|
23
22
|
prerelease: false
|
24
|
-
|
23
|
+
requirement: !ruby/object:Gem::Requirement
|
25
24
|
none: false
|
26
25
|
requirements:
|
27
26
|
- - ~>
|
28
27
|
- !ruby/object:Gem::Version
|
29
28
|
version: 1.0.5
|
29
|
+
type: :runtime
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
|
31
|
+
version_requirements: !ruby/object:Gem::Requirement
|
32
|
+
none: false
|
33
|
+
requirements:
|
34
|
+
- - ! '>='
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0'
|
37
|
+
name: nimbu-api
|
38
|
+
prerelease: false
|
32
39
|
requirement: !ruby/object:Gem::Requirement
|
33
40
|
none: false
|
34
41
|
requirements:
|
35
|
-
- -
|
42
|
+
- - ! '>='
|
36
43
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
44
|
+
version: '0'
|
38
45
|
type: :runtime
|
39
|
-
|
46
|
+
- !ruby/object:Gem::Dependency
|
40
47
|
version_requirements: !ruby/object:Gem::Requirement
|
41
48
|
none: false
|
42
49
|
requirements:
|
43
|
-
- -
|
50
|
+
- - ! '>='
|
44
51
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
46
|
-
|
47
|
-
|
52
|
+
version: '0'
|
53
|
+
name: rubyzip
|
54
|
+
prerelease: false
|
48
55
|
requirement: !ruby/object:Gem::Requirement
|
49
56
|
none: false
|
50
57
|
requirements:
|
51
58
|
- - ! '>='
|
52
59
|
- !ruby/object:Gem::Version
|
53
|
-
version: 0
|
60
|
+
version: '0'
|
54
61
|
type: :runtime
|
55
|
-
|
62
|
+
- !ruby/object:Gem::Dependency
|
56
63
|
version_requirements: !ruby/object:Gem::Requirement
|
57
64
|
none: false
|
58
65
|
requirements:
|
59
66
|
- - ! '>='
|
60
67
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0
|
62
|
-
|
63
|
-
|
68
|
+
version: '0'
|
69
|
+
name: sinatra
|
70
|
+
prerelease: false
|
64
71
|
requirement: !ruby/object:Gem::Requirement
|
65
72
|
none: false
|
66
73
|
requirements:
|
@@ -68,15 +75,15 @@ dependencies:
|
|
68
75
|
- !ruby/object:Gem::Version
|
69
76
|
version: '0'
|
70
77
|
type: :runtime
|
71
|
-
|
78
|
+
- !ruby/object:Gem::Dependency
|
72
79
|
version_requirements: !ruby/object:Gem::Requirement
|
73
80
|
none: false
|
74
81
|
requirements:
|
75
82
|
- - ! '>='
|
76
83
|
- !ruby/object:Gem::Version
|
77
84
|
version: '0'
|
78
|
-
-
|
79
|
-
|
85
|
+
name: sinatra-contrib
|
86
|
+
prerelease: false
|
80
87
|
requirement: !ruby/object:Gem::Requirement
|
81
88
|
none: false
|
82
89
|
requirements:
|
@@ -84,15 +91,15 @@ dependencies:
|
|
84
91
|
- !ruby/object:Gem::Version
|
85
92
|
version: '0'
|
86
93
|
type: :runtime
|
87
|
-
|
94
|
+
- !ruby/object:Gem::Dependency
|
88
95
|
version_requirements: !ruby/object:Gem::Requirement
|
89
96
|
none: false
|
90
97
|
requirements:
|
91
98
|
- - ! '>='
|
92
99
|
- !ruby/object:Gem::Version
|
93
100
|
version: '0'
|
94
|
-
|
95
|
-
|
101
|
+
name: listen
|
102
|
+
prerelease: false
|
96
103
|
requirement: !ruby/object:Gem::Requirement
|
97
104
|
none: false
|
98
105
|
requirements:
|
@@ -100,15 +107,15 @@ dependencies:
|
|
100
107
|
- !ruby/object:Gem::Version
|
101
108
|
version: '0'
|
102
109
|
type: :runtime
|
103
|
-
|
110
|
+
- !ruby/object:Gem::Dependency
|
104
111
|
version_requirements: !ruby/object:Gem::Requirement
|
105
112
|
none: false
|
106
113
|
requirements:
|
107
114
|
- - ! '>='
|
108
115
|
- !ruby/object:Gem::Version
|
109
116
|
version: '0'
|
110
|
-
|
111
|
-
|
117
|
+
name: thin
|
118
|
+
prerelease: false
|
112
119
|
requirement: !ruby/object:Gem::Requirement
|
113
120
|
none: false
|
114
121
|
requirements:
|
@@ -116,15 +123,15 @@ dependencies:
|
|
116
123
|
- !ruby/object:Gem::Version
|
117
124
|
version: '0'
|
118
125
|
type: :runtime
|
119
|
-
|
126
|
+
- !ruby/object:Gem::Dependency
|
120
127
|
version_requirements: !ruby/object:Gem::Requirement
|
121
128
|
none: false
|
122
129
|
requirements:
|
123
130
|
- - ! '>='
|
124
131
|
- !ruby/object:Gem::Version
|
125
132
|
version: '0'
|
126
|
-
-
|
127
|
-
|
133
|
+
name: rack-streaming-proxy
|
134
|
+
prerelease: false
|
128
135
|
requirement: !ruby/object:Gem::Requirement
|
129
136
|
none: false
|
130
137
|
requirements:
|
@@ -132,49 +139,122 @@ dependencies:
|
|
132
139
|
- !ruby/object:Gem::Version
|
133
140
|
version: '0'
|
134
141
|
type: :runtime
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
version_requirements: !ruby/object:Gem::Requirement
|
144
|
+
none: false
|
145
|
+
requirements:
|
146
|
+
- - ~>
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
version: '1.3'
|
149
|
+
name: bundler
|
135
150
|
prerelease: false
|
151
|
+
requirement: !ruby/object:Gem::Requirement
|
152
|
+
none: false
|
153
|
+
requirements:
|
154
|
+
- - ~>
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: '1.3'
|
157
|
+
type: :development
|
158
|
+
- !ruby/object:Gem::Dependency
|
136
159
|
version_requirements: !ruby/object:Gem::Requirement
|
137
160
|
none: false
|
138
161
|
requirements:
|
139
162
|
- - ! '>='
|
140
163
|
- !ruby/object:Gem::Version
|
141
164
|
version: '0'
|
142
|
-
|
143
|
-
|
165
|
+
name: rake
|
166
|
+
prerelease: false
|
144
167
|
requirement: !ruby/object:Gem::Requirement
|
145
168
|
none: false
|
146
169
|
requirements:
|
147
170
|
- - ! '>='
|
148
171
|
- !ruby/object:Gem::Version
|
149
172
|
version: '0'
|
150
|
-
type: :
|
173
|
+
type: :development
|
174
|
+
- !ruby/object:Gem::Dependency
|
175
|
+
version_requirements: !ruby/object:Gem::Requirement
|
176
|
+
none: false
|
177
|
+
requirements:
|
178
|
+
- - ! '>='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
name: awesome_print
|
151
182
|
prerelease: false
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
none: false
|
185
|
+
requirements:
|
186
|
+
- - ! '>='
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: '0'
|
189
|
+
type: :development
|
190
|
+
- !ruby/object:Gem::Dependency
|
152
191
|
version_requirements: !ruby/object:Gem::Requirement
|
153
192
|
none: false
|
154
193
|
requirements:
|
155
194
|
- - ! '>='
|
156
195
|
- !ruby/object:Gem::Version
|
157
196
|
version: '0'
|
197
|
+
name: pry
|
198
|
+
prerelease: false
|
199
|
+
requirement: !ruby/object:Gem::Requirement
|
200
|
+
none: false
|
201
|
+
requirements:
|
202
|
+
- - ! '>='
|
203
|
+
- !ruby/object:Gem::Version
|
204
|
+
version: '0'
|
205
|
+
type: :development
|
158
206
|
- !ruby/object:Gem::Dependency
|
159
|
-
|
207
|
+
version_requirements: !ruby/object:Gem::Requirement
|
208
|
+
none: false
|
209
|
+
requirements:
|
210
|
+
- - ! '>='
|
211
|
+
- !ruby/object:Gem::Version
|
212
|
+
version: '0'
|
213
|
+
name: pry-remote
|
214
|
+
prerelease: false
|
160
215
|
requirement: !ruby/object:Gem::Requirement
|
161
216
|
none: false
|
162
217
|
requirements:
|
163
218
|
- - ! '>='
|
164
219
|
- !ruby/object:Gem::Version
|
165
220
|
version: '0'
|
166
|
-
type: :
|
221
|
+
type: :development
|
222
|
+
- !ruby/object:Gem::Dependency
|
223
|
+
version_requirements: !ruby/object:Gem::Requirement
|
224
|
+
none: false
|
225
|
+
requirements:
|
226
|
+
- - ! '>='
|
227
|
+
- !ruby/object:Gem::Version
|
228
|
+
version: '0'
|
229
|
+
name: pry-stack_explorer
|
167
230
|
prerelease: false
|
231
|
+
requirement: !ruby/object:Gem::Requirement
|
232
|
+
none: false
|
233
|
+
requirements:
|
234
|
+
- - ! '>='
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
237
|
+
type: :development
|
238
|
+
- !ruby/object:Gem::Dependency
|
168
239
|
version_requirements: !ruby/object:Gem::Requirement
|
169
240
|
none: false
|
170
241
|
requirements:
|
171
242
|
- - ! '>='
|
172
243
|
- !ruby/object:Gem::Version
|
173
244
|
version: '0'
|
245
|
+
name: pry-debugger
|
246
|
+
prerelease: false
|
247
|
+
requirement: !ruby/object:Gem::Requirement
|
248
|
+
none: false
|
249
|
+
requirements:
|
250
|
+
- - ! '>='
|
251
|
+
- !ruby/object:Gem::Version
|
252
|
+
version: '0'
|
253
|
+
type: :development
|
174
254
|
description: Client library and command-line tool to design and manage websites on
|
175
255
|
the Nimbu platform.
|
176
256
|
email:
|
177
|
-
- support@
|
257
|
+
- support@nimbu.io
|
178
258
|
executables:
|
179
259
|
- nimbu
|
180
260
|
extensions: []
|
@@ -184,22 +264,22 @@ files:
|
|
184
264
|
- lib/nimbu.rb
|
185
265
|
- lib/nimbu/auth.rb
|
186
266
|
- lib/nimbu/cli.rb
|
187
|
-
- lib/nimbu/client.rb
|
188
|
-
- lib/nimbu/client/rendezvous.rb
|
189
267
|
- lib/nimbu/command.rb
|
190
268
|
- lib/nimbu/command/auth.rb
|
191
269
|
- lib/nimbu/command/base.rb
|
270
|
+
- lib/nimbu/command/browse.rb
|
192
271
|
- lib/nimbu/command/help.rb
|
193
272
|
- lib/nimbu/command/helpers.rb
|
194
273
|
- lib/nimbu/command/init.rb
|
195
274
|
- lib/nimbu/command/server.rb
|
275
|
+
- lib/nimbu/command/sites.rb
|
196
276
|
- lib/nimbu/command/themes.rb
|
197
277
|
- lib/nimbu/helpers.rb
|
198
278
|
- lib/nimbu/server/base.rb
|
199
|
-
- lib/nimbu/
|
279
|
+
- lib/nimbu/ssh.rb
|
200
280
|
- lib/nimbu/version.rb
|
201
281
|
- lib/vendor/nimbu/okjson.rb
|
202
|
-
homepage:
|
282
|
+
homepage: https://www.nimbu.io
|
203
283
|
licenses: []
|
204
284
|
post_install_message:
|
205
285
|
rdoc_options: []
|
@@ -210,16 +290,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
210
290
|
requirements:
|
211
291
|
- - ! '>='
|
212
292
|
- !ruby/object:Gem::Version
|
293
|
+
segments:
|
294
|
+
- 0
|
295
|
+
hash: 4171643488340786911
|
213
296
|
version: '0'
|
214
297
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
215
298
|
none: false
|
216
299
|
requirements:
|
217
300
|
- - ! '>='
|
218
301
|
- !ruby/object:Gem::Version
|
302
|
+
segments:
|
303
|
+
- 0
|
304
|
+
hash: 4171643488340786911
|
219
305
|
version: '0'
|
220
306
|
requirements: []
|
221
307
|
rubyforge_project:
|
222
|
-
rubygems_version: 1.8.
|
308
|
+
rubygems_version: 1.8.25
|
223
309
|
signing_key:
|
224
310
|
specification_version: 3
|
225
311
|
summary: Client library and CLI to design websites on the Nimbu platform.
|