console_utils 0.1.6 → 0.2.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.
- checksums.yaml +4 -4
- data/README.md +2 -1
- data/lib/console_utils.rb +39 -20
- data/lib/console_utils/request_utils.rb +1 -9
- data/lib/console_utils/request_utils/request_params.rb +20 -14
- data/lib/console_utils/request_utils/requester.rb +0 -1
- data/lib/console_utils/version.rb +1 -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: 885596f011ab0c949a352aa22abe4e9c85d93ac2
|
4
|
+
data.tar.gz: bd7daaf39ea1b539f5bae93ac4a0751580ca08a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bee127748adcea9da28b3372869aa3770dc14048b54b31454ea6e78d2945c9893375c8391bda662c9b8c8919b1b741e6613c1517b49c9e2fb2dd5b7735757b00
|
7
|
+
data.tar.gz: 6fab7992b4534b45d5058a54db989faee505a47b9839cbd7eb243196f4b94fa53a00edbf6a01e26cf2a437dd41205792d168a1009d5f58f00514c606d71bb94d
|
data/README.md
CHANGED
@@ -60,10 +60,11 @@ end
|
|
60
60
|
* `auto_token` - Enable auto-fetch of user's auth token in requests (default: `true`)
|
61
61
|
* `curl_bin` - Binary path to curl (using in remote requests). (default: `"curl"`)
|
62
62
|
* `curl_silence` - Disable print out generated curl command with remote requests. (default: `false`)
|
63
|
+
* `default_token` - A plain string of the default token used to authorize user (default: `nil`)
|
63
64
|
* `default_uid` - ID of the user which will be used by default in requests (default: `1`)
|
64
65
|
* `disabled_modules` - An array of disabled modules' names (default: `[]`)
|
65
66
|
* `jq_command` - Command for jq json formatter (default: `"jq . -C"`)
|
66
|
-
* `json_formatter` - JSON formatter used in API request helpers (
|
67
|
+
* `json_formatter` - JSON formatter used in API request helpers (`:default` or `:jq`)
|
67
68
|
* `logger` - Output logger (Rails.logger by default)
|
68
69
|
* `remote_endpoint` - Remote endpoint used in remote API request helpers (default: `"http://example.com"`)
|
69
70
|
* `token_param` - A name of the request parameter used to authorize user by a token (default: `:token`)
|
data/lib/console_utils.rb
CHANGED
@@ -90,6 +90,11 @@ module ConsoleUtils
|
|
90
90
|
mattr_accessor(:token_param) { :token }
|
91
91
|
##
|
92
92
|
# :attr:
|
93
|
+
# A plain string of the default token used to authorize user
|
94
|
+
# (default: <tt>nil</tt>)
|
95
|
+
mattr_accessor(:default_token)
|
96
|
+
##
|
97
|
+
# :attr:
|
93
98
|
# JSON formatter used in API request helpers
|
94
99
|
# (<tt>:default</tt> or <tt>:jq</tt>)
|
95
100
|
mattr_accessor(:json_formatter) { :default }
|
@@ -120,39 +125,61 @@ module ConsoleUtils
|
|
120
125
|
# :section: Class Methods
|
121
126
|
|
122
127
|
class << self
|
123
|
-
|
124
|
-
self
|
125
|
-
end
|
128
|
+
alias_method :config, :itself
|
126
129
|
|
127
130
|
# :method: self.configure
|
128
131
|
def configure
|
129
132
|
yield(config)
|
130
133
|
end
|
131
134
|
|
135
|
+
def enabled_modules
|
136
|
+
ConsoleUtils::MODULES - disabled_modules
|
137
|
+
end
|
138
|
+
|
139
|
+
# Yields each enabled module with a given block
|
140
|
+
def each_enabled_module
|
141
|
+
enabled_modules.each { |mod| yield const_get(mod) }
|
142
|
+
end
|
143
|
+
|
132
144
|
# Returns User's class set in the <tt>:user_class_name</tt>
|
133
145
|
def user_model
|
134
146
|
Object.const_get(user_model_name)
|
135
147
|
end
|
136
148
|
alias_method :user_class, :user_model
|
137
149
|
|
150
|
+
def user_scope(scope = nil)
|
151
|
+
case scope
|
152
|
+
when nil then user_model
|
153
|
+
when Symbol then user_model.public_send(scope)
|
154
|
+
else user_model.all.merge(scope)
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
138
158
|
# Finds +user_model+ by +user_primary_key+.
|
139
159
|
# If the first argument is <tt>:any</tt>, gets a random user.
|
140
160
|
def find_user(id, scope: nil)
|
141
|
-
|
142
|
-
|
143
|
-
|
161
|
+
if id == :any
|
162
|
+
user_scope(scope).anyone.tap do |u|
|
163
|
+
puts "random user #{user_primary_key}: #{u.public_send(user_primary_key)}"
|
164
|
+
end
|
144
165
|
else
|
145
|
-
(scope
|
166
|
+
user_scope(scope).where(user_primary_key => id).first!
|
146
167
|
end
|
147
168
|
end
|
148
169
|
|
149
|
-
def
|
150
|
-
|
170
|
+
def auto_token_for(id)
|
171
|
+
user = find_user(id, scope: user_model.select([:id, user_token_column]))
|
172
|
+
user.public_send(user_token_column)
|
151
173
|
end
|
152
174
|
|
153
|
-
#
|
154
|
-
def
|
155
|
-
|
175
|
+
# Setup enabled modules for IRB context
|
176
|
+
def irb!
|
177
|
+
setup_modules_to(ReplContext.instance.irb!)
|
178
|
+
end
|
179
|
+
|
180
|
+
# Setup enabled modules for Pry context
|
181
|
+
def pry!
|
182
|
+
setup_modules_to(ReplContext.instance.pry!)
|
156
183
|
end
|
157
184
|
|
158
185
|
# Setup enabled modules by extending given context
|
@@ -163,14 +190,6 @@ module ConsoleUtils
|
|
163
190
|
puts "Console instance: #{context.inspect}" if ENV["CONSOLE_UTILS_DEBUG"]
|
164
191
|
each_enabled_module { |mod| context.send(:extend, mod) }
|
165
192
|
end
|
166
|
-
|
167
|
-
def irb!
|
168
|
-
setup_modules_to(ReplContext.instance.irb!)
|
169
|
-
end
|
170
|
-
|
171
|
-
def pry!
|
172
|
-
setup_modules_to(ReplContext.instance.pry!)
|
173
|
-
end
|
174
193
|
end
|
175
194
|
|
176
195
|
ActiveSupport.run_load_hooks(:console_utils, self)
|
@@ -24,9 +24,7 @@ module ConsoleUtils #:nodoc:
|
|
24
24
|
#
|
25
25
|
# Returns user's token by primary key. Use <tt>:any</tt> to get random user.
|
26
26
|
def autoken(id)
|
27
|
-
|
28
|
-
puts "User #{user.public_send(ConsoleUtils.user_primary_key)}" if id == :any
|
29
|
-
user.public_send(ConsoleUtils.user_token_column)
|
27
|
+
ConsoleUtils.auto_token_for(id)
|
30
28
|
end
|
31
29
|
|
32
30
|
# :call-seq:
|
@@ -73,11 +71,5 @@ module ConsoleUtils #:nodoc:
|
|
73
71
|
def remo
|
74
72
|
Remo.new(self)
|
75
73
|
end
|
76
|
-
|
77
|
-
private
|
78
|
-
|
79
|
-
def user_scope
|
80
|
-
ConsoleUtils.user_model.select([:id, :auth_token])
|
81
|
-
end
|
82
74
|
end
|
83
75
|
end
|
@@ -3,10 +3,8 @@ module ConsoleUtils::RequestUtils
|
|
3
3
|
def initialize(uid_or_params = true, params = nil, headers_or_env = nil)
|
4
4
|
if ConsoleUtils.auto_token
|
5
5
|
@uid = case uid_or_params
|
6
|
-
when Numeric, true, false, nil
|
7
|
-
|
8
|
-
when headers_or_env.nil?
|
9
|
-
need_shift!
|
6
|
+
when Numeric, true, false, nil then uid_or_params
|
7
|
+
when headers_or_env.nil? then need_shift!
|
10
8
|
end
|
11
9
|
else
|
12
10
|
need_shift!
|
@@ -14,28 +12,36 @@ module ConsoleUtils::RequestUtils
|
|
14
12
|
|
15
13
|
params, headers_or_env = [uid_or_params, params] if need_shift?
|
16
14
|
|
17
|
-
@params
|
18
|
-
@
|
15
|
+
@params = params.is_a?(Hash) ? params : {}
|
16
|
+
@headers = headers_or_env.to_h
|
19
17
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
@
|
24
|
-
|
18
|
+
if need_default_token?
|
19
|
+
use_token ConsoleUtils.default_token
|
20
|
+
else
|
21
|
+
@uid = ConsoleUtils.default_uid if need_default_uid?
|
22
|
+
use_token ConsoleUtils.auto_token_for(@uid) if @uid.present?
|
25
23
|
end
|
26
24
|
end
|
27
25
|
|
28
26
|
def to_a
|
29
|
-
[@params.presence, @
|
27
|
+
[@params.presence, @headers.presence].tap(&:compact!)
|
28
|
+
end
|
29
|
+
|
30
|
+
def use_token value
|
31
|
+
@params[ConsoleUtils.token_param] ||= value
|
30
32
|
end
|
31
33
|
|
32
34
|
def with_default(default_params = nil)
|
33
|
-
@params.merge!(default_params.
|
35
|
+
@params.merge!(default_params.to_h)
|
34
36
|
to_a
|
35
37
|
end
|
36
38
|
|
37
39
|
def need_default_uid?
|
38
|
-
@uid == true
|
40
|
+
@uid == true && ConsoleUtils.default_token.nil?
|
41
|
+
end
|
42
|
+
|
43
|
+
def need_default_token?
|
44
|
+
@uid == true && ConsoleUtils.default_token.present?
|
39
45
|
end
|
40
46
|
|
41
47
|
def need_shift!
|
@@ -6,7 +6,6 @@ module ConsoleUtils::RequestUtils #:nodoc:
|
|
6
6
|
REQUEST_METHODS = %i(get post put delete patch).freeze
|
7
7
|
INFO_HASH_FIELDS = %i(url size time human_size human_time).freeze
|
8
8
|
INFO_FORMAT = "%#-.50{url} | %#10{human_size} | %#10{human_time}\n".freeze
|
9
|
-
AUTOAUTH_FORMAT = %('ID: %s' %p\n).freeze
|
10
9
|
NO_RESPONSE = Term::ANSIColor.red(" \u27A7 Empty response's body.").freeze
|
11
10
|
PBCOPY_MESSAGE = Term::ANSIColor.green(" \u27A4 Response body copied to pasteboard\n").freeze
|
12
11
|
COMPLETE_IN = Term::ANSIColor.green("Complete in %s").freeze
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: console_utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|