had 0.1.0 → 0.1.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.
- checksums.yaml +4 -4
- data/README.md +4 -4
- data/lib/had/collector.rb +25 -13
- data/lib/had/configuration.rb +11 -1
- data/lib/had/version.rb +1 -1
- data/lib/had.rb +0 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42ede04649baa5183ebe5f3de682f6b5b9456182
|
4
|
+
data.tar.gz: 49b469fdae7230489412c82f019ecd3b973705d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58792ce4aa9616fe5316a492da9da5468d1c4fb2a651fdb5e084673427fc600d635a7eb21686e4c858d0a668590b16eab731d3ccc33089f5ec61dc6700412fb6
|
7
|
+
data.tar.gz: a8ded0d4a2adb62bab1a2a5ef047c42839732bd96450110e20726bfb9a05b710868e0aede00623b92a0001157c39bc3799aeecf12385aa4d926820f197b8b757
|
data/README.md
CHANGED
@@ -20,7 +20,10 @@ If necessary, add `require "had"` to your `spec/spec_helper.rb` file
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
-
|
23
|
+
Before start you need to setup environment.
|
24
|
+
`export APP_ROOT=/path/to/your/application`
|
25
|
+
|
26
|
+
By default `had` is not active (this may be configured!). To activate it, run `rspec` with
|
24
27
|
|
25
28
|
`HAD_RUN=1 bundle exec rspec --order=defined`
|
26
29
|
|
@@ -34,9 +37,6 @@ Documentation will be put into your application's `/doc` folder
|
|
34
37
|
# @param category[title] required String Category title
|
35
38
|
# @param category[weight] in which order Category will be shown
|
36
39
|
# param text may also be multiline
|
37
|
-
# @method GET
|
38
|
-
# @path /example/path
|
39
|
-
# @host example.com
|
40
40
|
def call(params)
|
41
41
|
# action code
|
42
42
|
end
|
data/lib/had/collector.rb
CHANGED
@@ -77,8 +77,9 @@ module Had
|
|
77
77
|
if request.params.env && (request_params = request.params)
|
78
78
|
action = request.class.name.split('::').last
|
79
79
|
controller = request.class.name.split('::')[-2]
|
80
|
-
description
|
80
|
+
description = get_action_description(controller, action)
|
81
81
|
# description = request.class.to_s
|
82
|
+
routes_params = get_routes_params(controller, action)
|
82
83
|
params = get_action_params(controller, action)
|
83
84
|
query_parameters = request_params.to_h.reject { |p| %w[controller action format].include? p }
|
84
85
|
backend_parameters = request_params.to_h.reject { |p| !%w[controller action format].include? p }
|
@@ -98,11 +99,11 @@ module Had
|
|
98
99
|
description: description,
|
99
100
|
params: params,
|
100
101
|
request: {
|
101
|
-
host:
|
102
|
-
url:
|
103
|
-
path:
|
104
|
-
symbolized_path:
|
105
|
-
method:
|
102
|
+
host: Had.host,
|
103
|
+
url: Had.host + routes_params['path'],
|
104
|
+
path: routes_params['path'],
|
105
|
+
symbolized_path: Had.host + routes_params['path'],
|
106
|
+
method: routes_params['method'],
|
106
107
|
query_parameters: query_parameters,
|
107
108
|
backend_parameters: backend_parameters,
|
108
109
|
body: request.instance_variable_get("@_body"),
|
@@ -261,6 +262,23 @@ module Had
|
|
261
262
|
['not found']
|
262
263
|
end
|
263
264
|
|
265
|
+
# returns routes information
|
266
|
+
# example TODO
|
267
|
+
def get_routes_params(controller, action)
|
268
|
+
lines = File.readlines(File.join(Had.root, 'config', 'routes.rb'))
|
269
|
+
data = {}
|
270
|
+
|
271
|
+
lines.each do |line|
|
272
|
+
if line.match(/\s*#{controller.downcase}##{action.downcase}/)
|
273
|
+
array = line.split(' ')
|
274
|
+
data['method'] = array[0].upcase
|
275
|
+
data['path'] = array[1].split("'")[1]
|
276
|
+
end
|
277
|
+
end
|
278
|
+
|
279
|
+
data
|
280
|
+
end
|
281
|
+
|
264
282
|
# returns description action comments
|
265
283
|
# example TODO
|
266
284
|
def get_action_description(controller, action)
|
@@ -278,16 +296,10 @@ module Had
|
|
278
296
|
break
|
279
297
|
end
|
280
298
|
end
|
281
|
-
elsif line.match(/\s*# @method/)
|
282
|
-
info['method'] = line.split(' ').last
|
283
|
-
elsif line.match(/\s*# @path/)
|
284
|
-
info['path'] = line.split(' ').last
|
285
|
-
elsif line.match(/\s*# @host/)
|
286
|
-
info['host'] = line.split(' ').last
|
287
299
|
end
|
288
300
|
end
|
289
301
|
|
290
|
-
|
302
|
+
description.join(' ')
|
291
303
|
end
|
292
304
|
|
293
305
|
# returns params action comments
|
data/lib/had/configuration.rb
CHANGED
@@ -20,12 +20,22 @@ module Had
|
|
20
20
|
configuration.root
|
21
21
|
end
|
22
22
|
|
23
|
+
def host
|
24
|
+
configuration.host
|
25
|
+
end
|
26
|
+
|
23
27
|
class Configuration
|
24
28
|
DEFAULT_FORMATTERS = %w(html json)
|
25
29
|
|
26
30
|
def initialize
|
27
31
|
Had.logger.level = Logger::INFO
|
28
32
|
|
33
|
+
if ENV['APP_HOST'].nil?
|
34
|
+
@host = "example.com"
|
35
|
+
else
|
36
|
+
@host = ENV['APP_HOST']
|
37
|
+
end
|
38
|
+
|
29
39
|
if ENV['APP_ROOT'].nil?
|
30
40
|
raise 'APP_ROOT is not defined'
|
31
41
|
else
|
@@ -47,6 +57,6 @@ module Had
|
|
47
57
|
attr_accessor :output_path
|
48
58
|
attr_accessor :title
|
49
59
|
attr_accessor :formatters
|
50
|
-
attr_reader :root
|
60
|
+
attr_reader :root, :host
|
51
61
|
end
|
52
62
|
end
|
data/lib/had/version.rb
CHANGED
data/lib/had.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: had
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nsheremet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: coderay
|