apiaryio 0.0.4 → 0.0.5

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/.travis.yml ADDED
@@ -0,0 +1,18 @@
1
+ language: ruby
2
+ rvm:
3
+ - "1.8.7"
4
+ - "1.9.2"
5
+ - "1.9.3"
6
+ - jruby-18mode # JRuby in 1.8 mode
7
+ - jruby-19mode # JRuby in 1.9 mode
8
+ - rbx-18mode
9
+ - rbx-19mode
10
+
11
+ notifications:
12
+ email:
13
+ recipients:
14
+ - lukas@apiary.io
15
+ on_success: change
16
+ on_failure: always
17
+ hipchat:
18
+ - secure: "HqBUrmf4P2bgvwb4b9PL1tBae2wcZaXadOgwRwAFhdhDZFHaKXIXlJRUW8tN\ntdO83OZgatxJrpWWQj8VYTfDuhlE3b3NxVWeXc3PkfrHmuvejQf4veh7kwR0\njLVE6jb+ZbFIwRE2W0VFLFKYQHI6PLem4W0OKXW5Shqzy8Ewlow="
data/apiary.gemspec CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |gem|
19
19
  gem.add_dependency "rest-client", "~> 1.6.7"
20
20
  gem.add_dependency "rack", "~> 1.4.1"
21
21
  gem.add_dependency "json"
22
+ gem.add_dependency "rake"
22
23
 
23
24
  gem.add_development_dependency "rspec", "~> 2.11.0"
24
25
  gem.add_development_dependency "yard", "~> 0.8.2.1"
data/lib/apiary/cli.rb CHANGED
@@ -28,6 +28,10 @@ module Apiary
28
28
  options[:api_host] = api_host
29
29
  end
30
30
 
31
+ opts.on("--api-name API_HOST") do |api_name|
32
+ options[:api_name] = api_name
33
+ end
34
+
31
35
  opts.on("--browser BROWSER") do |browser|
32
36
  options[:browser] = browser
33
37
  end
@@ -22,6 +22,7 @@ module Apiary
22
22
  puts "\tpreview --api_host [HOST] Specify apiary host"
23
23
  puts "\tpreview --server Start standalone web server on port 8080"
24
24
  puts "\tpreview --server --port [PORT] Start standalone web server on specified port"
25
+ puts "\tpublish --api-name [API_NAME] Publish apiary.apib on docs.API_NAME.apiary.io"
25
26
  puts "\tokapi help Show okapi testing tool help"
26
27
  puts "\n"
27
28
  puts "\thelp Show this help"
@@ -0,0 +1,74 @@
1
+ # encoding: utf-8
2
+ require 'rest_client'
3
+ require 'rack'
4
+ require 'ostruct'
5
+
6
+ module Apiary
7
+ module Command
8
+ # Display preview of local blueprint file
9
+ class Publish
10
+
11
+ attr_reader :options
12
+
13
+ # TODO: use OpenStruct to store @options
14
+ def initialize(opts)
15
+ @options = OpenStruct.new(opts)
16
+ @options.path ||= "apiary.apib"
17
+ @options.api_host ||= "api.apiary.io"
18
+ @options.port ||= 8080
19
+ @options.api_name ||= false
20
+ @options.api_key ||= ENV['APIARY_API_KEY']
21
+ @options.headers ||= {
22
+ :accept => "text/html",
23
+ :content_type => "text/plain",
24
+ :authentication => "Token #{@options.api_key}"
25
+ }
26
+ end
27
+
28
+ def self.execute(args)
29
+ new(args).publish_on_apiary
30
+ end
31
+
32
+ def publish_on_apiary
33
+ unless @options.api_name
34
+ abort "Please provide an api-name option (subdomain part from your http://docs.<api-name>.apiary.io/)"
35
+ end
36
+
37
+ unless @options.api_key
38
+ abort "API key must be provided through environment variable APIARY_API_KEY. Please go to https://login.apiary.io/tokens to obtain it."
39
+ end
40
+
41
+ self.query_apiary(@options.api_host, @options.path)
42
+
43
+ end
44
+
45
+ def validate_apib_file(apib_file)
46
+ unless File.exist?(apib_file)
47
+ abort "Apiary definition file hasn't been found: #{apib_file.inspect}"
48
+ end
49
+ end
50
+
51
+ def path
52
+ @options.path || "#{File.basename(Dir.pwd)}.apib"
53
+ end
54
+
55
+ def query_apiary(host, path)
56
+ url = "https://#{host}/blueprint/publish/#{@options.api_name}"
57
+ data = {
58
+ :code => File.read(path)
59
+ }
60
+ response = RestClient.post url, data, @options.headers
61
+
62
+ unless response.code == 201
63
+ abort "Request failed with code #{response.code}"
64
+ end
65
+ end
66
+
67
+ private
68
+ def api_name
69
+ "-a"
70
+ end
71
+
72
+ end
73
+ end
74
+ end
@@ -1,3 +1,3 @@
1
1
  module Apiary
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,114 +1,123 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: apiaryio
3
- version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 4
10
- version: 0.0.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Apiary Ltd.
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-05-20 00:00:00 +02:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2013-07-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: rest-client
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
18
+ requirements:
27
19
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 1
30
- segments:
31
- - 1
32
- - 6
33
- - 7
20
+ - !ruby/object:Gem::Version
34
21
  version: 1.6.7
35
22
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: rack
39
23
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 1.6.7
30
+ - !ruby/object:Gem::Dependency
31
+ name: rack
32
+ requirement: !ruby/object:Gem::Requirement
41
33
  none: false
42
- requirements:
34
+ requirements:
43
35
  - - ~>
44
- - !ruby/object:Gem::Version
45
- hash: 5
46
- segments:
47
- - 1
48
- - 4
49
- - 1
36
+ - !ruby/object:Gem::Version
50
37
  version: 1.4.1
51
38
  type: :runtime
52
- version_requirements: *id002
53
- - !ruby/object:Gem::Dependency
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 1.4.1
46
+ - !ruby/object:Gem::Dependency
54
47
  name: json
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
55
  prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
57
57
  none: false
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- hash: 3
62
- segments:
63
- - 0
64
- version: "0"
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rake
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
65
70
  type: :runtime
66
- version_requirements: *id003
67
- - !ruby/object:Gem::Dependency
68
- name: rspec
69
71
  prerelease: false
70
- requirement: &id004 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rspec
80
+ requirement: !ruby/object:Gem::Requirement
71
81
  none: false
72
- requirements:
82
+ requirements:
73
83
  - - ~>
74
- - !ruby/object:Gem::Version
75
- hash: 35
76
- segments:
77
- - 2
78
- - 11
79
- - 0
84
+ - !ruby/object:Gem::Version
80
85
  version: 2.11.0
81
86
  type: :development
82
- version_requirements: *id004
83
- - !ruby/object:Gem::Dependency
84
- name: yard
85
87
  prerelease: false
86
- requirement: &id005 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
87
89
  none: false
88
- requirements:
90
+ requirements:
89
91
  - - ~>
90
- - !ruby/object:Gem::Version
91
- hash: 5
92
- segments:
93
- - 0
94
- - 8
95
- - 2
96
- - 1
92
+ - !ruby/object:Gem::Version
93
+ version: 2.11.0
94
+ - !ruby/object:Gem::Dependency
95
+ name: yard
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
97
101
  version: 0.8.2.1
98
102
  type: :development
99
- version_requirements: *id005
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 0.8.2.1
100
110
  description: Apiary.io CLI
101
- email:
111
+ email:
102
112
  - team@apiary.io
103
- executables:
113
+ executables:
104
114
  - apiary
105
115
  extensions: []
106
-
107
116
  extra_rdoc_files: []
108
-
109
- files:
117
+ files:
110
118
  - .gitignore
111
119
  - .rspec
120
+ - .travis.yml
112
121
  - Gemfile
113
122
  - Gemfile.lock
114
123
  - LICENSE
@@ -141,6 +150,7 @@ files:
141
150
  - lib/apiary/cli.rb
142
151
  - lib/apiary/command/help.rb
143
152
  - lib/apiary/command/preview.rb
153
+ - lib/apiary/command/publish.rb
144
154
  - lib/apiary/command/runner.rb
145
155
  - lib/apiary/command/version.rb
146
156
  - lib/apiary/version.rb
@@ -163,40 +173,32 @@ files:
163
173
  - lib/okapi/test.rb
164
174
  - spec/cli_spec.rb
165
175
  - spec/spec_helper.rb
166
- has_rdoc: true
167
176
  homepage: http://apiary.io
168
- licenses:
177
+ licenses:
169
178
  - MIT
170
179
  post_install_message:
171
180
  rdoc_options: []
172
-
173
- require_paths:
181
+ require_paths:
174
182
  - lib
175
- required_ruby_version: !ruby/object:Gem::Requirement
183
+ required_ruby_version: !ruby/object:Gem::Requirement
176
184
  none: false
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- hash: 3
181
- segments:
182
- - 0
183
- version: "0"
184
- required_rubygems_version: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ! '>='
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ required_rubygems_version: !ruby/object:Gem::Requirement
185
190
  none: false
186
- requirements:
187
- - - ">="
188
- - !ruby/object:Gem::Version
189
- hash: 3
190
- segments:
191
- - 0
192
- version: "0"
191
+ requirements:
192
+ - - ! '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
193
195
  requirements: []
194
-
195
196
  rubyforge_project:
196
- rubygems_version: 1.3.7
197
+ rubygems_version: 1.8.24
197
198
  signing_key:
198
199
  specification_version: 3
199
200
  summary: Apiary.io CLI
200
- test_files:
201
+ test_files:
201
202
  - spec/cli_spec.rb
202
203
  - spec/spec_helper.rb
204
+ has_rdoc: