had 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|