herdic 1.0.0 → 1.0.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/herdic.gemspec +1 -1
- data/lib/herdic.rb +7 -7
- data/lib/herdic/client.rb +3 -10
- data/lib/herdic/color.rb +1 -0
- data/lib/herdic/printer.rb +26 -14
- data/lib/herdic/util.rb +32 -11
- data/lib/herdic/version.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef268be629514bf377f23553f43f248b81b4be1d
|
4
|
+
data.tar.gz: 5650ca841a9f2755592bd60175970edf92bd7ace
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f43967abd1f488067ab213c43401b1e5bd2e66fd85f53c87965c6359e19133632780a52588f71af2fb37c945b2a8efc767ec4334e2ad3660afcdf04f1cb90ed8
|
7
|
+
data.tar.gz: fe1f500659727cb2fb901720673c467eb8dc82aa3c956af6212315e4d4f2ee3b5c3d8396f5a8ba500ef42175cc6cb1abb7ac7018a76bc8b9dede286d09cd1329
|
data/herdic.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
21
|
spec.add_dependency 'activesupport', '~> 4.1', '>= 3.2'
|
22
|
-
spec.add_dependency
|
22
|
+
spec.add_dependency "pygments.rb"
|
23
23
|
|
24
24
|
spec.add_development_dependency 'bundler', '~> 1.6'
|
25
25
|
spec.add_development_dependency 'rake', '~> 10.3'
|
data/lib/herdic.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
require_relative 'herdic/version'
|
2
|
+
require_relative 'herdic/util'
|
3
|
+
require_relative 'herdic/store'
|
4
|
+
require_relative 'herdic/loader'
|
5
|
+
require_relative 'herdic/printer'
|
6
|
+
require_relative 'herdic/client'
|
7
7
|
|
8
8
|
require 'fileutils'
|
9
9
|
|
@@ -23,7 +23,7 @@ module Herdic
|
|
23
23
|
@herdic_path = File.expand_path '~/.herdic'
|
24
24
|
@store_path = File.join @herdic_path, 'store'
|
25
25
|
@edit_request_file = File.join @herdic_path, 'edit_request.yml'
|
26
|
-
@config_filename = '
|
26
|
+
@config_filename = 'herdic.yml'
|
27
27
|
end
|
28
28
|
|
29
29
|
end
|
data/lib/herdic/client.rb
CHANGED
@@ -78,15 +78,8 @@ module Herdic
|
|
78
78
|
|
79
79
|
response = http.start do
|
80
80
|
case @meta['method']
|
81
|
-
when 'GET'
|
82
|
-
uri.
|
83
|
-
http.get uri.request_uri, @header
|
84
|
-
when 'POST'
|
85
|
-
http.post uri.request_uri, @body.to_query, @header
|
86
|
-
when 'PATCH'
|
87
|
-
http.patch uri.request_uri, @body.to_query, @header
|
88
|
-
when 'DELETE'
|
89
|
-
http.delete uri.request_uri, @header
|
81
|
+
when 'GET', 'POST', 'PATCH', 'PUT', 'DELETE'
|
82
|
+
http.send_request @meta['method'], uri.request_uri, @body.to_query, @header
|
90
83
|
else
|
91
84
|
raise "Unsupported method: #{@meta['method']}"
|
92
85
|
end
|
@@ -105,7 +98,7 @@ module Herdic
|
|
105
98
|
private def setup_spec(spec)
|
106
99
|
@meta = spec.slice 'title', 'method', 'endpoint'
|
107
100
|
@register = spec['register'] || {}
|
108
|
-
@header
|
101
|
+
@header = spec['header'] || {}
|
109
102
|
@body = spec['body'] || {}
|
110
103
|
|
111
104
|
@meta['method'].upcase!
|
data/lib/herdic/color.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
class Her
|
data/lib/herdic/printer.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
require '
|
1
|
+
require 'json'
|
2
|
+
require 'pygments'
|
2
3
|
|
3
4
|
|
4
5
|
module Herdic
|
@@ -16,11 +17,11 @@ module Herdic
|
|
16
17
|
puts "\n\n"
|
17
18
|
hr rule: '=', color: :green
|
18
19
|
|
19
|
-
puts [meta['method']
|
20
|
+
puts [Util.color(meta['method'], :green), meta['endpoint']].join(' ')
|
20
21
|
|
21
22
|
if meta['title']
|
22
23
|
indent = ' ' * meta['method'].size
|
23
|
-
puts [indent, meta['title']
|
24
|
+
puts [indent, Util.color(meta['title'], :white)].join(' ')
|
24
25
|
end
|
25
26
|
|
26
27
|
hr rule: '=', color: :green
|
@@ -28,22 +29,22 @@ module Herdic
|
|
28
29
|
|
29
30
|
def subtitle(text)
|
30
31
|
puts
|
31
|
-
puts
|
32
|
-
|
32
|
+
puts Util.color(text, :green)
|
33
|
+
hr color: :green
|
33
34
|
end
|
34
35
|
|
35
36
|
def request(header, body)
|
36
37
|
subtitle 'Request'
|
37
38
|
|
38
39
|
if header.empty?
|
39
|
-
puts 'no header'
|
40
|
+
puts Util.color('no header', :white)
|
40
41
|
else
|
41
42
|
print_header header
|
42
43
|
end
|
43
44
|
|
44
45
|
hr
|
45
46
|
|
46
|
-
|
47
|
+
print_json body
|
47
48
|
end
|
48
49
|
|
49
50
|
def response(response, body)
|
@@ -54,25 +55,36 @@ module Herdic
|
|
54
55
|
hr
|
55
56
|
|
56
57
|
if body.empty?
|
57
|
-
puts 'no body'
|
58
|
+
puts Util.color('no body', :white)
|
58
59
|
elsif 'application/json' == response.content_type
|
59
|
-
|
60
|
-
elsif @options['html']
|
61
|
-
puts body
|
60
|
+
print_json body
|
62
61
|
else
|
63
|
-
puts
|
62
|
+
puts body
|
64
63
|
end
|
65
64
|
end
|
66
65
|
|
67
66
|
private def print_header(header)
|
68
67
|
max_cols = header.keys.map(&:size).max
|
69
68
|
header.each do |k, v|
|
70
|
-
puts [("%#{max_cols}s" % k)
|
69
|
+
puts [Util.color("%#{max_cols}s" % k, :white), v].join ' '
|
71
70
|
end
|
72
71
|
end
|
73
72
|
|
73
|
+
private def print_json(json)
|
74
|
+
if json.empty?
|
75
|
+
puts '{}'
|
76
|
+
return
|
77
|
+
end
|
78
|
+
|
79
|
+
puts Pygments.highlight(JSON.pretty_generate(json), {
|
80
|
+
formatter: 'terminal',
|
81
|
+
lexer: 'json',
|
82
|
+
options: { encoding: 'utf-8' },
|
83
|
+
})
|
84
|
+
end
|
85
|
+
|
74
86
|
private def hr(rule: '-', color: :black)
|
75
|
-
puts (rule * terminal_cols
|
87
|
+
puts Util.color(rule * terminal_cols, color)
|
76
88
|
end
|
77
89
|
|
78
90
|
private def terminal_cols
|
data/lib/herdic/util.rb
CHANGED
@@ -1,24 +1,45 @@
|
|
1
|
+
require 'cgi'
|
2
|
+
|
3
|
+
|
1
4
|
module Herdic
|
2
5
|
module Util
|
6
|
+
class << self
|
7
|
+
|
8
|
+
def find_files_upward(filename, base, count = 0)
|
9
|
+
found = []
|
10
|
+
found_count = 0
|
11
|
+
|
12
|
+
while count == 0 || found_count <= count
|
13
|
+
file = File.join base, filename
|
3
14
|
|
4
|
-
|
5
|
-
|
15
|
+
if File.exists? file
|
16
|
+
found << file
|
17
|
+
found_count += 1
|
18
|
+
end
|
6
19
|
|
7
|
-
|
8
|
-
file = File.join base, filename
|
20
|
+
break if '.' == base || '/' == base
|
9
21
|
|
10
|
-
|
11
|
-
found << file
|
12
|
-
count -= 1
|
22
|
+
base = File.dirname base
|
13
23
|
end
|
14
24
|
|
15
|
-
|
25
|
+
found
|
26
|
+
end
|
27
|
+
|
28
|
+
COLORS = {
|
29
|
+
black: 0,
|
30
|
+
red: 1,
|
31
|
+
green: 2,
|
32
|
+
yellow: 3,
|
33
|
+
blue: 4,
|
34
|
+
magenta: 5,
|
35
|
+
cyan: 6,
|
36
|
+
white: 7,
|
37
|
+
}
|
16
38
|
|
17
|
-
|
39
|
+
def color(str, c)
|
40
|
+
"\e[1;#{30+COLORS[c]}m#{str}\e[0m"
|
18
41
|
end
|
19
42
|
|
20
|
-
found
|
21
43
|
end
|
22
|
-
|
23
44
|
end
|
24
45
|
end
|
data/lib/herdic/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: herdic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuki Iwanaga
|
@@ -31,19 +31,19 @@ dependencies:
|
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '3.2'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
34
|
+
name: pygments.rb
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '
|
39
|
+
version: '0'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- - "
|
44
|
+
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '
|
46
|
+
version: '0'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: bundler
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -91,6 +91,7 @@ files:
|
|
91
91
|
- herdic.gemspec
|
92
92
|
- lib/herdic.rb
|
93
93
|
- lib/herdic/client.rb
|
94
|
+
- lib/herdic/color.rb
|
94
95
|
- lib/herdic/loader.rb
|
95
96
|
- lib/herdic/printer.rb
|
96
97
|
- lib/herdic/store.rb
|