dox 1.0.0.alpha → 1.0.0

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.
@@ -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