dox 1.0.0.alpha → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,6 @@
1
1
  module Dox
2
2
  module Printers
3
3
  class BasePrinter
4
-
5
4
  def initialize(output)
6
5
  @output = output
7
6
  end
@@ -20,16 +19,20 @@ module Dox
20
19
  return if desc.blank?
21
20
 
22
21
  if desc.to_s =~ /.*\.md$/
23
- if fullpath
24
- path = desc
25
- else
26
- path = descriptions_folder_path.join(desc).to_s
27
- end
28
- "<!-- include(#{path}) -->"
22
+ path = if fullpath
23
+ desc
24
+ else
25
+ descriptions_folder_path.join(desc).to_s
26
+ end
27
+ content(path)
29
28
  else
30
29
  desc
31
30
  end
32
31
  end
32
+
33
+ def content(path)
34
+ File.read(path)
35
+ end
33
36
  end
34
37
  end
35
38
  end
@@ -1,7 +1,6 @@
1
1
  module Dox
2
2
  module Printers
3
3
  class DocumentPrinter < BasePrinter
4
-
5
4
  def print(passed_examples)
6
5
  print_meta_info
7
6
 
@@ -23,7 +22,6 @@ module Dox
23
22
  def api_desc_path
24
23
  Dox.config.header_file_path
25
24
  end
26
-
27
25
  end
28
26
  end
29
27
  end
@@ -1,22 +1,85 @@
1
1
  module Dox
2
2
  module Printers
3
3
  class ExamplePrinter < BasePrinter
4
-
5
4
  def print(example)
6
- @output.puts "\n+ Request #{example.request_identifier} (#{example.request_content_type})"
5
+ self.example = example
6
+ print_example_request
7
+ print_example_response
8
+ end
7
9
 
8
- if example.request_parameters.present?
9
- @output.puts "\n#{indent_lines(8, pretty_json(example.request_parameters))}\n"
10
- end
10
+ private
11
+
12
+ attr_accessor :example
11
13
 
12
- @output.puts "+ Response #{example.response_status} (#{example.response_content_type})"
14
+ def print_example_request
15
+ @output.puts example_request_title
16
+ @output.puts example_request_headers
17
+ return unless example.request_parameters.present?
13
18
 
14
- if example.response_body.present?
15
- @output.puts "\n#{indent_lines(8, pretty_json(safe_json_parse(example.response_body)))}\n"
19
+ @output.puts example_request_body
20
+ end
21
+
22
+ def print_example_response
23
+ @output.puts example_response_title
24
+
25
+ if example.response_headers.present?
26
+ @output.puts example_response_headers
16
27
  end
28
+
29
+ return unless example.response_body.present?
30
+ @output.puts example_response_body
17
31
  end
18
32
 
19
- private
33
+ def example_request_title
34
+ <<-HEREDOC
35
+
36
+ + Request #{example.request_identifier}
37
+ **#{example.request_method.upcase}**&nbsp;&nbsp;`#{CGI.unescape(example.request_fullpath)}`
38
+ HEREDOC
39
+ end
40
+
41
+ def example_request_headers
42
+ <<-HEREDOC
43
+
44
+ + Headers
45
+
46
+ #{indent_lines(12, print_headers(example.request_headers))}
47
+ HEREDOC
48
+ end
49
+
50
+ def example_request_body
51
+ <<-HEREDOC
52
+
53
+ + Body
54
+
55
+ #{indent_lines(12, pretty_json(example.request_parameters))}
56
+ HEREDOC
57
+ end
58
+
59
+ def example_response_title
60
+ <<-HEREDOC
61
+
62
+ + Response #{example.response_status}
63
+ HEREDOC
64
+ end
65
+
66
+ def example_response_headers
67
+ <<-HEREDOC
68
+
69
+ + Headers
70
+
71
+ #{indent_lines(12, print_headers(example.response_headers))}
72
+ HEREDOC
73
+ end
74
+
75
+ def example_response_body
76
+ <<-HEREDOC
77
+
78
+ + Body
79
+
80
+ #{indent_lines(12, pretty_json(safe_json_parse(example.response_body)))}
81
+ HEREDOC
82
+ end
20
83
 
21
84
  def safe_json_parse(json_string)
22
85
  json_string.length >= 2 ? JSON.parse(json_string) : nil
@@ -30,6 +93,12 @@ module Dox
30
93
  end
31
94
  end
32
95
 
96
+ def print_headers(headers)
97
+ headers.map do |key, value|
98
+ "#{key}: #{value}"
99
+ end.join("\n")
100
+ end
101
+
33
102
  def indent_lines(number_of_spaces, string)
34
103
  string
35
104
  .split("\n")
@@ -1,9 +1,9 @@
1
1
  module Dox
2
2
  module Printers
3
3
  class ResourceGroupPrinter < BasePrinter
4
-
5
4
  def print(resource_group)
6
- @output.puts "\n# Group #{resource_group.name}\n\n#{print_desc(resource_group.desc)}\n"
5
+ self.resource_group = resource_group
6
+ @output.puts resource_group_title
7
7
 
8
8
  resource_group.resources.each do |_, resource|
9
9
  resource_printer.print(resource)
@@ -12,10 +12,19 @@ module Dox
12
12
 
13
13
  private
14
14
 
15
+ attr_accessor :resource_group
16
+
17
+ def resource_group_title
18
+ <<-HEREDOC
19
+
20
+ # Group #{resource_group.name}
21
+ #{print_desc(resource_group.desc)}
22
+ HEREDOC
23
+ end
24
+
15
25
  def resource_printer
16
26
  @resource_printer ||= ResourcePrinter.new(@output)
17
27
  end
18
-
19
28
  end
20
29
  end
21
30
  end
@@ -1,9 +1,9 @@
1
1
  module Dox
2
2
  module Printers
3
3
  class ResourcePrinter < BasePrinter
4
-
5
4
  def print(resource)
6
- @output.puts "\n## #{resource.name} [#{resource.endpoint}]\n\n#{print_desc(resource.desc)}\n"
5
+ self.resource = resource
6
+ @output.puts resource_title
7
7
 
8
8
  resource.actions.each do |_, action|
9
9
  action_printer.print(action)
@@ -12,10 +12,19 @@ module Dox
12
12
 
13
13
  private
14
14
 
15
+ attr_accessor :resource
16
+
17
+ def resource_title
18
+ <<-HEREDOC
19
+
20
+ ## #{resource.name} [#{resource.endpoint}]
21
+ #{print_desc(resource.desc)}
22
+ HEREDOC
23
+ end
24
+
15
25
  def action_printer
16
26
  @action_printer ||= ActionPrinter.new(@output)
17
27
  end
18
-
19
28
  end
20
29
  end
21
30
  end
@@ -0,0 +1,11 @@
1
+ module Dox
2
+ module Util
3
+ module Http
4
+ VERB = ['POST', 'GET', 'PUT', 'PATCH', 'DELETE', 'HEAD'].freeze
5
+
6
+ def self.verb?(value)
7
+ VERB.include?(value.upcase)
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module Dox
2
- VERSION = "1.0.0.alpha"
2
+ VERSION = '1.0.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dox
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.alpha
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Melita Kokot
8
+ - Vedran Hrnčić
8
9
  autorequire:
9
10
  bindir: exe
10
11
  cert_chain: []
11
- date: 2016-10-18 00:00:00.000000000 Z
12
+ date: 2017-05-06 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
@@ -66,6 +67,34 @@ dependencies:
66
67
  - - ">="
67
68
  - !ruby/object:Gem::Version
68
69
  version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: simplecov
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: codeclimate-test-reporter
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
69
98
  - !ruby/object:Gem::Dependency
70
99
  name: rspec-core
71
100
  requirement: !ruby/object:Gem::Requirement
@@ -97,13 +126,18 @@ dependencies:
97
126
  description:
98
127
  email:
99
128
  - melita.kokot@gmail.com
100
- executables: []
129
+ - vrabac266@gmail.com
130
+ executables:
131
+ - dox
101
132
  extensions: []
102
133
  extra_rdoc_files: []
103
134
  files:
104
135
  - ".gitignore"
105
136
  - ".rspec"
137
+ - ".rubocop.yml"
138
+ - ".ruby-version"
106
139
  - ".travis.yml"
140
+ - CHANGES.md
107
141
  - CODE_OF_CONDUCT.md
108
142
  - Gemfile
109
143
  - LICENSE.txt
@@ -112,6 +146,8 @@ files:
112
146
  - bin/console
113
147
  - bin/setup
114
148
  - dox.gemspec
149
+ - exe/dox
150
+ - infinum.png
115
151
  - lib/dox.rb
116
152
  - lib/dox/config.rb
117
153
  - lib/dox/dsl/action.rb
@@ -136,6 +172,7 @@ files:
136
172
  - lib/dox/printers/example_printer.rb
137
173
  - lib/dox/printers/resource_group_printer.rb
138
174
  - lib/dox/printers/resource_printer.rb
175
+ - lib/dox/util/http.rb
139
176
  - lib/dox/version.rb
140
177
  homepage: https://github.com/infinum/dox
141
178
  licenses:
@@ -153,9 +190,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
153
190
  version: '0'
154
191
  required_rubygems_version: !ruby/object:Gem::Requirement
155
192
  requirements:
156
- - - ">"
193
+ - - ">="
157
194
  - !ruby/object:Gem::Version
158
- version: 1.3.1
195
+ version: '0'
159
196
  requirements: []
160
197
  rubyforge_project:
161
198
  rubygems_version: 2.5.1