console_utils 0.5.0 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3607787694af8ed4bc9e4466f95e9d090c312d22
4
- data.tar.gz: fb4da9e048ac320e0aaa9d57fb919e90b2f505b2
3
+ metadata.gz: e948128135cc22042b253c75da22a6d9bd9febaa
4
+ data.tar.gz: 53cd176f69e9bf1757831b07f514cf974755ae1a
5
5
  SHA512:
6
- metadata.gz: 2027cc176a4275fb61bec377d9dfc369bb51f736c84bb10f436da81c131ed0692896032a14802277b3c9f5af6119cbde468342cbf9864a4dc8bd3a6cc59e390c
7
- data.tar.gz: 78be8092f07add77fca5eba1b95ff521af70f815c3818d76cc72b37da22ffb2bd95bf09ee4f3c974cbcfdd8312ffca77ce9aff7016b5ee9a9d797194eb67a60e
6
+ metadata.gz: 63a00ae0f1f4492c948caf7f5aa9336f425a5b9ad4a5027c87ac00ca568ad45190e8c2ae086d94c2b7aaf80da3b7ff23f055c3a86e584c9a418858c1c5d15fe5
7
+ data.tar.gz: cf73d753ad73eece8fc0bd3e8993f9ee6b65b9f87a85eca3663eb9cf0c593c1e5944a402c836e8d7ee09ed7e43e4fa11791248a4dde7d24ab0a90f965ab88db3
@@ -50,7 +50,6 @@ module ConsoleUtils
50
50
 
51
51
  MODULES = [
52
52
  :ActiveRecordUtils,
53
- :JSONOutput,
54
53
  :RequestUtils,
55
54
  :BenchUtils,
56
55
  :OtherUtils
@@ -58,6 +57,9 @@ module ConsoleUtils
58
57
 
59
58
  MODULES.each { |mod| autoload mod }
60
59
 
60
+ autoload :JSONOutput
61
+ autoload :ReplState
62
+
61
63
 
62
64
  # :section: Configuration
63
65
 
@@ -151,7 +153,7 @@ module ConsoleUtils
151
153
 
152
154
  def enabled_modules # :yields:
153
155
  unless block_given?
154
- return to_enum(__method__) { ConsoleUtils::MODULES.size - disabled_modules.dize }
156
+ return to_enum(__method__) { ConsoleUtils::MODULES.size - disabled_modules.size }
155
157
  end
156
158
 
157
159
  (ConsoleUtils::MODULES - disabled_modules).each do |mod|
@@ -192,36 +194,18 @@ module ConsoleUtils
192
194
 
193
195
  # Setup enabled modules for Pry context
194
196
  def pry!
195
- setup_modules_to { TOPLEVEL_BINDING.eval('self') }
197
+ setup_modules_to(TOPLEVEL_BINDING.eval('self'))
196
198
  end
197
199
 
198
200
  # Setup enabled modules by extending given context
199
- def setup_modules_to # :yields:
200
- logger.level = Logger::WARN
201
-
202
- logger.tagged(name) do
203
- unless block_given?
204
- logger.warn { "Trying to setup with empty context" }
205
- return
206
- end
207
-
208
- if ENV["CONSOLE_UTILS_DEBUG"] == "1"
209
- logger.level = Logger::DEBUG
210
- logger.debug { "Console instance: #{yield().inspect}" }
211
- end
212
-
213
- enabled_modules do |mod|
214
- logger.debug { "extending with #{mod.inspect}" }
215
- yield().extend(mod)
216
- end
217
- end
201
+ def setup_modules_to(context = nil)
202
+ ReplState.setup(context)
218
203
  end
219
-
220
204
  end
221
205
 
222
206
  ActiveSupport.run_load_hooks(:console_utils, self)
223
207
  end
224
208
 
225
- if defined?(Rails)
209
+ if defined? Rails
226
210
  require "console_utils/railtie"
227
211
  end
@@ -10,7 +10,14 @@ module ConsoleUtils
10
10
  options = app.config.console_utils
11
11
 
12
12
  options.disabled_modules ||= ConsoleUtils.disabled_modules
13
- options.disabled_modules << :ActiveRecordUtils unless defined?(ActiveRecord)
13
+
14
+ if !defined?(ActiveRecord) || !ConsoleUtils.disabled_modules.include?(:ActiveRecordUtils)
15
+ options.disabled_modules << :ActiveRecordUtils
16
+
17
+ ActiveSupport.on_load(:active_record) do
18
+ ConsoleUtils.disabled_modules.delete(:ActiveRecordUtils)
19
+ end
20
+ end
14
21
 
15
22
  ActiveSupport.on_load(:console_utils) do
16
23
  options.each { |k, v| public_send(:"#{k}=", v) }
@@ -0,0 +1,82 @@
1
+ module ConsoleUtils
2
+ class ReplState
3
+ IVAR = :"@__console_utils__"
4
+ EMPTY_CONTEXT_ALERT = "Trying to setup with empty context".freeze
5
+ ALREADY_EXTENDED_ALERT = "Trying to setup again on fully extended context".freeze
6
+ CONTEXT_DEBUG_MSG = "Console instance: %p".freeze
7
+ MODULE_EXTENDS_MSG = "extending context...".freeze
8
+
9
+ def self.setup(context)
10
+ state = context.instance_variable_get(IVAR) || ReplState.new
11
+
12
+ return true if state.frozen?
13
+
14
+ logger.tagged("console_utils-#{VERSION}") do
15
+ if context.nil?
16
+ logger.warn { EMPTY_CONTEXT_ALERT }
17
+ return
18
+ end
19
+
20
+ unless state.persisted?
21
+ logger.level = Logger::WARN
22
+
23
+ if ENV["CONSOLE_UTILS_DEBUG"]
24
+ logger.level = Logger::DEBUG
25
+ logger.debug { CONTEXT_DEBUG_MSG % context }
26
+ end
27
+ end
28
+
29
+ if state.fully_extended?
30
+ logger.warn { ALREADY_EXTENDED_ALERT }
31
+ else
32
+ ConsoleUtils.enabled_modules do |mod|
33
+ state.extending(mod.to_s) do
34
+ logger.debug { MODULE_EXTENDS_MSG }
35
+ context.extend(mod)
36
+ end
37
+ end
38
+ end
39
+ end
40
+
41
+ context.instance_variable_set(IVAR, state.persist!)
42
+ end
43
+
44
+ def self.logger
45
+ ConsoleUtils.logger
46
+ end
47
+
48
+ def initialize
49
+ @version = VERSION
50
+ @extensions = []
51
+ @persisted = false
52
+ end
53
+
54
+ def persisted?
55
+ @persisted
56
+ end
57
+
58
+ def persist!
59
+ @persisted = true
60
+ fully_extended? ? freeze : self
61
+ end
62
+
63
+ def fully_extended?
64
+ @persisted && @extensions.size == ConsoleUtils.enabled_modules.size
65
+ end
66
+
67
+ def extending(mod_name)
68
+ if include?(mod_name)
69
+ true
70
+ else
71
+ ConsoleUtils.logger.tagged(mod_name) { yield }
72
+ @extensions << mod_name
73
+ end
74
+ end
75
+
76
+ def include?(mod)
77
+ @extensions.include?(mod.to_s)
78
+ end
79
+
80
+ alias_method :extended_with?, :include?
81
+ end
82
+ end
@@ -1,9 +1,9 @@
1
1
  module ConsoleUtils::RequestUtils
2
2
  class DefaultAuthAutomator
3
3
  def self.call(rq)
4
+ p rq
4
5
  if rq.can_auto_auth?
5
- rq.params[ConsoleUtils.token_param] ||=
6
- ConsoleUtils.default_token.presence or ConsoleUtils.auto_token_for(rq.uid)
6
+ rq.params[ConsoleUtils.token_param] ||= ConsoleUtils.default_token.presence || ConsoleUtils.auto_token_for(rq.uid)
7
7
  end
8
8
  end
9
9
  end
@@ -5,7 +5,11 @@ module ConsoleUtils::RequestUtils #:nodoc:
5
5
  INSPECT_FORMAT = "<Local: %s (%s)>".freeze
6
6
 
7
7
  ConsoleUtils.request_methods.each do |reqm|
8
- define_method(reqm) { |*args| resp_wrap(reqm, *args) }
8
+ define_method(reqm) do |*args|
9
+ @url, *@_args = args
10
+ app.public_send(reqm, @url, *normalize_args)
11
+ self
12
+ end
9
13
  end
10
14
 
11
15
  def to_s
@@ -29,11 +33,5 @@ module ConsoleUtils::RequestUtils #:nodoc:
29
33
  def response_body
30
34
  app.controller.try(:response_body) || response.try(:body)
31
35
  end
32
-
33
- def resp_wrap(meth, url, *args)
34
- @url, @_args = url, args
35
- app.send(meth, url, *normalize_args)
36
- self
37
- end
38
36
  end
39
37
  end
@@ -3,12 +3,14 @@ module ConsoleUtils::RequestUtils
3
3
  attr_accessor :uid
4
4
 
5
5
  def initialize(uid_or_params = true, params = nil, headers = nil)
6
+ # puts "Request params: uid_or_params=#{uid_or_params} | params=#{params} | headers=#{headers}"
7
+
6
8
  if uid_or_params.is_a? Hash
7
9
  headers, params, uid_or_params = [params, uid_or_params, nil]
8
10
  end
9
11
 
10
- @params = params
11
- @headers = headers
12
+ @params = params if params
13
+ @headers = headers if headers
12
14
  @uid = auto_auth? && ((uid_or_params.nil? || uid_or_params == true) ? ConsoleUtils.default_uid : uid_or_params)
13
15
 
14
16
  ConsoleUtils.logger.debug { "#{uid}, #{params()}, #{headers()}" }
@@ -1,3 +1,3 @@
1
1
  module ConsoleUtils
2
- VERSION = "0.5.0"
2
+ VERSION = "0.6.0"
3
3
  end
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.5.0
4
+ version: 0.6.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-09-26 00:00:00.000000000 Z
11
+ date: 2015-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -164,6 +164,7 @@ files:
164
164
  - lib/console_utils/other_utils.rb
165
165
  - lib/console_utils/pry.rb
166
166
  - lib/console_utils/railtie.rb
167
+ - lib/console_utils/repl_state.rb
167
168
  - lib/console_utils/request_utils.rb
168
169
  - lib/console_utils/request_utils/auth_automators.rb
169
170
  - lib/console_utils/request_utils/exap.rb