apiaryio 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +5 -4
- data/doc/Apiary.html +2 -2
- data/doc/Apiary/CLI.html +45 -19
- data/doc/Apiary/Command.html +1 -1
- data/doc/Apiary/Command/Fetch.html +111 -31
- data/doc/Apiary/Command/Help.html +1 -1
- data/doc/Apiary/Command/Preview.html +93 -65
- data/doc/Apiary/Command/Publish.html +51 -31
- data/doc/Apiary/Command/Runner.html +1 -1
- data/doc/Apiary/Command/Version.html +1 -1
- data/doc/_index.html +1 -1
- data/doc/file.README.html +4 -3
- data/doc/index.html +4 -3
- data/doc/method_list.html +26 -20
- data/doc/top-level-namespace.html +1 -1
- data/lib/apiary/cli.rb +22 -9
- data/lib/apiary/command/fetch.rb +11 -6
- data/lib/apiary/command/preview.rb +16 -1
- data/lib/apiary/command/publish.rb +14 -3
- data/lib/apiary/version.rb +1 -1
- metadata +7 -5
@@ -191,7 +191,7 @@
|
|
191
191
|
</div>
|
192
192
|
|
193
193
|
<div id="footer">
|
194
|
-
Generated on
|
194
|
+
Generated on Thu Apr 17 13:30:52 2014 by
|
195
195
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
196
196
|
0.8.7.3 (ruby-2.1.0).
|
197
197
|
</div>
|
@@ -191,7 +191,7 @@
|
|
191
191
|
</div>
|
192
192
|
|
193
193
|
<div id="footer">
|
194
|
-
Generated on
|
194
|
+
Generated on Thu Apr 17 13:30:52 2014 by
|
195
195
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
196
196
|
0.8.7.3 (ruby-2.1.0).
|
197
197
|
</div>
|
data/doc/_index.html
CHANGED
@@ -205,7 +205,7 @@
|
|
205
205
|
</div>
|
206
206
|
|
207
207
|
<div id="footer">
|
208
|
-
Generated on
|
208
|
+
Generated on Thu Apr 17 13:30:51 2014 by
|
209
209
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
210
210
|
0.8.7.3 (ruby-2.1.0).
|
211
211
|
</div>
|
data/doc/file.README.html
CHANGED
@@ -89,12 +89,13 @@ Currently available apiary commands are:
|
|
89
89
|
|
90
90
|
preview Show API documentation in default browser
|
91
91
|
preview --browser [chrome|safari|firefox] Show API documentation in specified browser
|
92
|
+
preview --output [FILE] Write generated HTML into specified file
|
92
93
|
preview --path [PATH] Specify path to blueprint file
|
93
94
|
preview --api_host [HOST] Specify apiary host
|
94
95
|
preview --server Start standalone web server on port 8080
|
95
96
|
preview --server --port [PORT] Start standalone web server on specified port
|
96
|
-
publish --api-name [API_NAME] Publish apiary.apib on docs.API_NAME.apiary.io
|
97
|
-
fetch --api-name [API_NAME] Fetch apiary.apib from API_NAME.apiary.io
|
97
|
+
publish --api-name [API_NAME] Publish apiary.apib on docs.API_NAME.apiary.io
|
98
|
+
fetch --api-name [API_NAME] Fetch apiary.apib from API_NAME.apiary.io
|
98
99
|
|
99
100
|
help Show help
|
100
101
|
|
@@ -125,7 +126,7 @@ Currently available apiary commands are:
|
|
125
126
|
</div></div>
|
126
127
|
|
127
128
|
<div id="footer">
|
128
|
-
Generated on
|
129
|
+
Generated on Thu Apr 17 13:30:51 2014 by
|
129
130
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
130
131
|
0.8.7.3 (ruby-2.1.0).
|
131
132
|
</div>
|
data/doc/index.html
CHANGED
@@ -89,12 +89,13 @@ Currently available apiary commands are:
|
|
89
89
|
|
90
90
|
preview Show API documentation in default browser
|
91
91
|
preview --browser [chrome|safari|firefox] Show API documentation in specified browser
|
92
|
+
preview --output [FILE] Write generated HTML into specified file
|
92
93
|
preview --path [PATH] Specify path to blueprint file
|
93
94
|
preview --api_host [HOST] Specify apiary host
|
94
95
|
preview --server Start standalone web server on port 8080
|
95
96
|
preview --server --port [PORT] Start standalone web server on specified port
|
96
|
-
publish --api-name [API_NAME] Publish apiary.apib on docs.API_NAME.apiary.io
|
97
|
-
fetch --api-name [API_NAME] Fetch apiary.apib from API_NAME.apiary.io
|
97
|
+
publish --api-name [API_NAME] Publish apiary.apib on docs.API_NAME.apiary.io
|
98
|
+
fetch --api-name [API_NAME] Fetch apiary.apib from API_NAME.apiary.io
|
98
99
|
|
99
100
|
help Show help
|
100
101
|
|
@@ -125,7 +126,7 @@ Currently available apiary commands are:
|
|
125
126
|
</div></div>
|
126
127
|
|
127
128
|
<div id="footer">
|
128
|
-
Generated on
|
129
|
+
Generated on Thu Apr 17 13:30:51 2014 by
|
129
130
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
130
131
|
0.8.7.3 (ruby-2.1.0).
|
131
132
|
</div>
|
data/doc/method_list.html
CHANGED
@@ -72,14 +72,14 @@
|
|
72
72
|
|
73
73
|
|
74
74
|
<li class="r1 ">
|
75
|
-
<span class='object_link'><a href="Apiary/Command/
|
76
|
-
<small>Apiary::Command::
|
75
|
+
<span class='object_link'><a href="Apiary/Command/Help.html#execute-class_method" title="Apiary::Command::Help.execute (method)">execute</a></span>
|
76
|
+
<small>Apiary::Command::Help</small>
|
77
77
|
</li>
|
78
78
|
|
79
79
|
|
80
80
|
<li class="r2 ">
|
81
|
-
<span class='object_link'><a href="Apiary/Command/
|
82
|
-
<small>Apiary::Command::
|
81
|
+
<span class='object_link'><a href="Apiary/Command/Publish.html#execute-class_method" title="Apiary::Command::Publish.execute (method)">execute</a></span>
|
82
|
+
<small>Apiary::Command::Publish</small>
|
83
83
|
</li>
|
84
84
|
|
85
85
|
|
@@ -90,14 +90,14 @@
|
|
90
90
|
|
91
91
|
|
92
92
|
<li class="r2 ">
|
93
|
-
<span class='object_link'><a href="Apiary/Command/
|
94
|
-
<small>Apiary::Command::
|
93
|
+
<span class='object_link'><a href="Apiary/Command/Preview.html#execute-class_method" title="Apiary::Command::Preview.execute (method)">execute</a></span>
|
94
|
+
<small>Apiary::Command::Preview</small>
|
95
95
|
</li>
|
96
96
|
|
97
97
|
|
98
98
|
<li class="r1 ">
|
99
|
-
<span class='object_link'><a href="Apiary/Command/
|
100
|
-
<small>Apiary::Command::
|
99
|
+
<span class='object_link'><a href="Apiary/Command/Fetch.html#execute-class_method" title="Apiary::Command::Fetch.execute (method)">execute</a></span>
|
100
|
+
<small>Apiary::Command::Fetch</small>
|
101
101
|
</li>
|
102
102
|
|
103
103
|
|
@@ -114,14 +114,14 @@
|
|
114
114
|
|
115
115
|
|
116
116
|
<li class="r2 ">
|
117
|
-
<span class='object_link'><a href="Apiary/Command/
|
118
|
-
<small>Apiary::Command::
|
117
|
+
<span class='object_link'><a href="Apiary/Command/Publish.html#initialize-instance_method" title="Apiary::Command::Publish#initialize (method)">#initialize</a></span>
|
118
|
+
<small>Apiary::Command::Publish</small>
|
119
119
|
</li>
|
120
120
|
|
121
121
|
|
122
122
|
<li class="r1 ">
|
123
|
-
<span class='object_link'><a href="Apiary/
|
124
|
-
<small>Apiary::
|
123
|
+
<span class='object_link'><a href="Apiary/CLI.html#initialize-instance_method" title="Apiary::CLI#initialize (method)">#initialize</a></span>
|
124
|
+
<small>Apiary::CLI</small>
|
125
125
|
</li>
|
126
126
|
|
127
127
|
|
@@ -132,8 +132,8 @@
|
|
132
132
|
|
133
133
|
|
134
134
|
<li class="r1 ">
|
135
|
-
<span class='object_link'><a href="Apiary/
|
136
|
-
<small>Apiary::
|
135
|
+
<span class='object_link'><a href="Apiary/Command/Fetch.html#initialize-instance_method" title="Apiary::Command::Fetch#initialize (method)">#initialize</a></span>
|
136
|
+
<small>Apiary::Command::Fetch</small>
|
137
137
|
</li>
|
138
138
|
|
139
139
|
|
@@ -144,20 +144,20 @@
|
|
144
144
|
|
145
145
|
|
146
146
|
<li class="r1 ">
|
147
|
-
<span class='object_link'><a href="Apiary/Command/
|
148
|
-
<small>Apiary::Command::
|
147
|
+
<span class='object_link'><a href="Apiary/Command/Preview.html#options-instance_method" title="Apiary::Command::Preview#options (method)">#options</a></span>
|
148
|
+
<small>Apiary::Command::Preview</small>
|
149
149
|
</li>
|
150
150
|
|
151
151
|
|
152
152
|
<li class="r2 ">
|
153
|
-
<span class='object_link'><a href="Apiary/Command/
|
154
|
-
<small>Apiary::Command::
|
153
|
+
<span class='object_link'><a href="Apiary/Command/Publish.html#options-instance_method" title="Apiary::Command::Publish#options (method)">#options</a></span>
|
154
|
+
<small>Apiary::Command::Publish</small>
|
155
155
|
</li>
|
156
156
|
|
157
157
|
|
158
158
|
<li class="r1 ">
|
159
|
-
<span class='object_link'><a href="Apiary/Command/
|
160
|
-
<small>Apiary::Command::
|
159
|
+
<span class='object_link'><a href="Apiary/Command/Fetch.html#options-instance_method" title="Apiary::Command::Fetch#options (method)">#options</a></span>
|
160
|
+
<small>Apiary::Command::Fetch</small>
|
161
161
|
</li>
|
162
162
|
|
163
163
|
|
@@ -269,6 +269,12 @@
|
|
269
269
|
</li>
|
270
270
|
|
271
271
|
|
272
|
+
<li class="r2 ">
|
273
|
+
<span class='object_link'><a href="Apiary/Command/Fetch.html#write_generated_path-instance_method" title="Apiary::Command::Fetch#write_generated_path (method)">#write_generated_path</a></span>
|
274
|
+
<small>Apiary::Command::Fetch</small>
|
275
|
+
</li>
|
276
|
+
|
277
|
+
|
272
278
|
</ul>
|
273
279
|
</div>
|
274
280
|
</body>
|
@@ -103,7 +103,7 @@
|
|
103
103
|
</div>
|
104
104
|
|
105
105
|
<div id="footer">
|
106
|
-
Generated on
|
106
|
+
Generated on Thu Apr 17 13:30:51 2014 by
|
107
107
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
108
108
|
0.8.7.3 (ruby-2.1.0).
|
109
109
|
</div>
|
data/lib/apiary/cli.rb
CHANGED
@@ -7,57 +7,70 @@ module Apiary
|
|
7
7
|
|
8
8
|
def initialize(args)
|
9
9
|
options = parse_options!(args)
|
10
|
-
|
10
|
+
@command = options.delete(:command)
|
11
|
+
run(options)
|
11
12
|
end
|
12
13
|
|
13
|
-
def run(
|
14
|
-
command
|
15
|
-
command = @command if @command
|
16
|
-
Apiary::Command::Runner.run(command, options)
|
14
|
+
def run(options)
|
15
|
+
Apiary::Command::Runner.run(@command, options)
|
17
16
|
end
|
18
17
|
|
19
18
|
def parse_options!(args)
|
20
|
-
@command = nil
|
21
19
|
options = {}
|
20
|
+
command = nil
|
21
|
+
if args.first && !args.first.start_with?("-")
|
22
|
+
command = args.first
|
23
|
+
end
|
24
|
+
|
22
25
|
options_parser = OptionParser.new do |opts|
|
23
26
|
opts.on("--path [PATH]") do |path|
|
27
|
+
raise OptionParser::InvalidOption unless ["fetch", "preview", "publish"].include? command
|
24
28
|
options[:path] = path
|
25
29
|
end
|
26
30
|
|
27
31
|
opts.on("--output [PATH]") do |path|
|
28
|
-
|
32
|
+
raise OptionParser::InvalidOption unless ["fetch", "preview"].include? command
|
33
|
+
options[:output] = path
|
29
34
|
end
|
30
35
|
|
31
36
|
opts.on("--api_host API_HOST") do |api_host|
|
37
|
+
raise OptionParser::InvalidOption unless ["fetch", "preview", "publish"].include? command
|
32
38
|
options[:api_host] = api_host
|
33
39
|
end
|
34
40
|
|
35
41
|
opts.on("--api-name API_HOST") do |api_name|
|
42
|
+
raise OptionParser::InvalidOption unless ["fetch", "publish"].include? command
|
36
43
|
options[:api_name] = api_name
|
37
44
|
end
|
38
45
|
|
39
46
|
opts.on("--browser BROWSER") do |browser|
|
47
|
+
raise OptionParser::InvalidOption if command != "preview"
|
40
48
|
options[:browser] = browser
|
41
49
|
end
|
42
50
|
|
43
51
|
opts.on("--server") do
|
52
|
+
raise OptionParser::InvalidOption if command != "preview"
|
44
53
|
options[:server] = true
|
45
54
|
end
|
46
55
|
|
47
56
|
opts.on("--port [PORT]") do |port|
|
57
|
+
raise OptionParser::InvalidOption unless ["fetch", "preview", "publish"].include? command
|
48
58
|
options[:port] = port
|
49
59
|
end
|
50
60
|
|
51
61
|
opts.on('-v', '--version') do
|
52
|
-
|
62
|
+
raise OptionParser::InvalidOption if command
|
63
|
+
command = :version
|
53
64
|
end
|
54
65
|
|
55
66
|
opts.on( '-h', '--help') do
|
56
|
-
|
67
|
+
raise OptionParser::InvalidOption if command
|
68
|
+
command = :help
|
57
69
|
end
|
58
70
|
end
|
59
71
|
|
60
72
|
options_parser.parse!
|
73
|
+
options[:command] = command || :help
|
61
74
|
options
|
62
75
|
|
63
76
|
rescue OptionParser::InvalidOption => e
|
data/lib/apiary/command/fetch.rb
CHANGED
@@ -19,15 +19,16 @@ module Apiary
|
|
19
19
|
@options.port ||= 8080
|
20
20
|
@options.api_name ||= false
|
21
21
|
@options.api_key ||= ENV['APIARY_API_KEY']
|
22
|
+
@options.proxy ||= ENV['http_proxy']
|
22
23
|
@options.headers ||= {
|
23
24
|
:accept => "text/html",
|
24
25
|
:content_type => "text/plain",
|
25
26
|
:authentication => "Token #{@options.api_key}"
|
26
|
-
}
|
27
|
+
}
|
27
28
|
end
|
28
29
|
|
29
30
|
def self.execute(args)
|
30
|
-
response = new(args).fetch_from_apiary
|
31
|
+
response = new(args).fetch_from_apiary
|
31
32
|
if response.instance_of? String
|
32
33
|
puts response
|
33
34
|
end
|
@@ -56,10 +57,14 @@ module Apiary
|
|
56
57
|
|
57
58
|
def query_apiary(host, path)
|
58
59
|
url = "https://#{host}/blueprint/get/#{@options.api_name}"
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
60
|
+
RestClient.proxy = @options.proxy
|
61
|
+
|
62
|
+
begin
|
63
|
+
response = RestClient.get url, @options.headers
|
64
|
+
rescue RestClient::Exception => e
|
65
|
+
abort "Apiary service responded with an error: #{e.message}"
|
66
|
+
end
|
67
|
+
|
63
68
|
JSON.parse response.body
|
64
69
|
end
|
65
70
|
|
@@ -2,6 +2,7 @@
|
|
2
2
|
require 'rest_client'
|
3
3
|
require 'rack'
|
4
4
|
require 'ostruct'
|
5
|
+
require 'json'
|
5
6
|
|
6
7
|
module Apiary
|
7
8
|
module Command
|
@@ -23,6 +24,7 @@ module Apiary
|
|
23
24
|
@options.api_host ||= "api.apiary.io"
|
24
25
|
@options.headers ||= {:accept => "text/html", :content_type => "text/plain"}
|
25
26
|
@options.port ||= 8080
|
27
|
+
@options.proxy ||= ENV['http_proxy']
|
26
28
|
end
|
27
29
|
|
28
30
|
def self.execute(args)
|
@@ -73,7 +75,20 @@ module Apiary
|
|
73
75
|
def query_apiary(host, path)
|
74
76
|
url = "https://#{host}/blueprint/generate"
|
75
77
|
data = File.read(path)
|
76
|
-
RestClient.
|
78
|
+
RestClient.proxy = @options.proxy
|
79
|
+
|
80
|
+
begin
|
81
|
+
RestClient.post(url, data, @options.headers)
|
82
|
+
rescue RestClient::BadRequest => e
|
83
|
+
err = JSON.parse e.response
|
84
|
+
if err.has_key? 'parserError'
|
85
|
+
abort "#{err['message']}: #{err['parserError']}"
|
86
|
+
else
|
87
|
+
abort "Apiary service responded with an error: #{err['message']}"
|
88
|
+
end
|
89
|
+
rescue RestClient::Exception => e
|
90
|
+
abort "Apiary service responded with an error: #{e.message}"
|
91
|
+
end
|
77
92
|
end
|
78
93
|
|
79
94
|
# TODO: add linux and windows systems
|
@@ -2,6 +2,7 @@
|
|
2
2
|
require 'rest_client'
|
3
3
|
require 'rack'
|
4
4
|
require 'ostruct'
|
5
|
+
require 'json'
|
5
6
|
|
6
7
|
module Apiary
|
7
8
|
module Command
|
@@ -18,6 +19,7 @@ module Apiary
|
|
18
19
|
@options.port ||= 8080
|
19
20
|
@options.api_name ||= false
|
20
21
|
@options.api_key ||= ENV['APIARY_API_KEY']
|
22
|
+
@options.proxy ||= ENV['http_proxy']
|
21
23
|
@options.headers ||= {
|
22
24
|
:accept => "text/html",
|
23
25
|
:content_type => "text/plain",
|
@@ -57,10 +59,19 @@ module Apiary
|
|
57
59
|
data = {
|
58
60
|
:code => File.read(path)
|
59
61
|
}
|
60
|
-
|
62
|
+
RestClient.proxy = @options.proxy
|
61
63
|
|
62
|
-
|
63
|
-
|
64
|
+
begin
|
65
|
+
RestClient.post url, data, @options.headers
|
66
|
+
rescue RestClient::BadRequest => e
|
67
|
+
err = JSON.parse e.response
|
68
|
+
if err.has_key? 'parserError'
|
69
|
+
abort "#{err['message']}: #{err['parserError']}"
|
70
|
+
else
|
71
|
+
abort "Apiary service responded with an error: #{err['message']}"
|
72
|
+
end
|
73
|
+
rescue RestClient::Exception => e
|
74
|
+
abort "Apiary service responded with an error: #{e.message}"
|
64
75
|
end
|
65
76
|
end
|
66
77
|
|
data/lib/apiary/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: apiaryio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 0.0.9
|
10
|
+
version: 0.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Apiary Ltd.
|
@@ -15,7 +15,8 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2014-
|
18
|
+
date: 2014-04-17 00:00:00 +00:00
|
19
|
+
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: rest-client
|
@@ -167,6 +168,7 @@ files:
|
|
167
168
|
- spec/cli_spec.rb
|
168
169
|
- spec/command/fetch_spec.rb
|
169
170
|
- spec/spec_helper.rb
|
171
|
+
has_rdoc: true
|
170
172
|
homepage: http://apiary.io
|
171
173
|
licenses:
|
172
174
|
- MIT
|
@@ -196,7 +198,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
196
198
|
requirements: []
|
197
199
|
|
198
200
|
rubyforge_project:
|
199
|
-
rubygems_version: 1.
|
201
|
+
rubygems_version: 1.6.2
|
200
202
|
signing_key:
|
201
203
|
specification_version: 3
|
202
204
|
summary: Apiary.io CLI
|