Module: ConsoleUtils

Extended by:
ActiveSupport::Autoload
Defined in:
lib/console_utils.rb,
lib/console_utils/railtie.rb,
lib/console_utils/version.rb,
lib/console_utils/bench_utils.rb,
lib/console_utils/other_utils.rb,
lib/console_utils/repl_context.rb,
lib/console_utils/request_utils.rb,
lib/console_utils/active_record_utils.rb

Overview

:nodoc:

Defined Under Namespace

Modules: ActiveRecordUtils, BenchUtils, OtherUtils, RequestUtils Classes: Railtie, ReplContext

Constant Summary collapse

MODULES =
[
  :ActiveRecordUtils,
  :RequestUtils,
  :BenchUtils,
  :OtherUtils
]
JSON_FORMATTERS =
%i(default jq)
VERSION =
"0.2.2"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.auto_token_for(id) ⇒ Object



170
171
172
173
# File 'lib/console_utils.rb', line 170

def auto_token_for(id)
  user = find_user(id, scope: user_model.select([:id, user_token_column]))
  user.public_send(user_token_column)
end

.configure {|config| ... } ⇒ Object

:method: self.configure

Yields:



131
132
133
# File 'lib/console_utils.rb', line 131

def configure
  yield(config)
end

.each_enabled_moduleObject

Yields each enabled module with a given block



140
141
142
# File 'lib/console_utils.rb', line 140

def each_enabled_module
  enabled_modules.each { |mod| yield const_get(mod) }
end

.enabled_modulesObject



135
136
137
# File 'lib/console_utils.rb', line 135

def enabled_modules
  ConsoleUtils::MODULES - disabled_modules
end

.find_user(id, scope: nil) ⇒ Object

Finds user_model by user_primary_key. If the first argument is :any, gets a random user.



160
161
162
163
164
165
166
167
168
# File 'lib/console_utils.rb', line 160

def find_user(id, scope: nil)
  if id == :any
    user_scope(scope).anyone.tap do |u|
      puts "random user #{user_primary_key}: #{u.public_send(user_primary_key)}"
    end
  else
    user_scope(scope).where(user_primary_key => id).first!
  end
end

.irb!Object

Setup enabled modules for IRB context



176
177
178
# File 'lib/console_utils.rb', line 176

def irb!
  setup_modules_to(ReplContext.instance.irb!)
end

.pry!Object

Setup enabled modules for Pry context



181
182
183
# File 'lib/console_utils.rb', line 181

def pry!
  setup_modules_to(ReplContext.instance.pry!)
end

.setup_modules_to(context = nil, &block) ⇒ Object

Setup enabled modules by extending given context



186
187
188
189
190
191
192
# File 'lib/console_utils.rb', line 186

def setup_modules_to(context = nil, &block)
  context, block = block, context if !block_given? && context.respond_to?(:call)
  context ||= block.call

  puts "Console instance: #{context.inspect}" if ENV["CONSOLE_UTILS_DEBUG"]
  each_enabled_module { |mod| context.send(:extend, mod) }
end

.user_modelObject Also known as: user_class

Returns User’s class set in the :user_class_name



145
146
147
# File 'lib/console_utils.rb', line 145

def user_model
  Object.const_get(user_model_name)
end

.user_scope(scope = nil) ⇒ Object



150
151
152
153
154
155
156
# File 'lib/console_utils.rb', line 150

def user_scope(scope = nil)
  case scope
  when nil    then user_model
  when Symbol then user_model.public_send(scope)
              else user_model.all.merge(scope)
  end
end

Instance Method Details

#auto_tokenObject

:attr: Enable the auto-fetching of user’s auth token in requests (default: true)



67
# File 'lib/console_utils.rb', line 67

mattr_accessor(:auto_token) { true }

#curl_binObject

:attr: Binary path to curl (using in remote requests). (default: "curl")



108
# File 'lib/console_utils.rb', line 108

mattr_accessor(:curl_bin) { "curl" }

#curl_silenceObject

:attr: Don’t print generated curl command with remote requests. (default: false)



113
# File 'lib/console_utils.rb', line 113

mattr_accessor(:curl_silence) { false }

#default_tokenObject

:attr: A plain string of the default token used to authorize user (default: nil)



95
# File 'lib/console_utils.rb', line 95

mattr_accessor(:default_token)

#default_uidObject

:attr: ID of the user which will be used by default in requests (default: 1)



72
# File 'lib/console_utils.rb', line 72

mattr_accessor(:default_uid) { 1 }

#disabled_modulesObject

:attr: An array with disabled modules (default: [])



62
# File 'lib/console_utils.rb', line 62

mattr_accessor(:disabled_modules) { [] }

#jq_commandObject

:attr: Command for jq json formatter (default: "jq . -C")



104
# File 'lib/console_utils.rb', line 104

mattr_accessor(:jq_command) { "jq . -C" }

#json_formatterObject

:attr: JSON formatter used in API request helpers (:default or :jq)



100
# File 'lib/console_utils.rb', line 100

mattr_accessor(:json_formatter) { :default }

#loggerObject

:attr: Output logger (Rails.logger by default)



122
# File 'lib/console_utils.rb', line 122

mattr_accessor :logger

#remote_endpointObject

:attr: Remote endpoint used in remote API request helpers (default: "http://example.com")



118
# File 'lib/console_utils.rb', line 118

mattr_accessor(:remote_endpoint) { "http://example.com" }

#token_paramObject

:attr: A name of the request parameter used to authorize user by a token (default: :token)



90
# File 'lib/console_utils.rb', line 90

mattr_accessor(:token_param) { :token }

#user_model_nameObject

:attr: A name of user’s model (default: :User)



76
# File 'lib/console_utils.rb', line 76

mattr_accessor(:user_model_name) { :User }

#user_primary_keyObject

:attr: A primary key of user’s model (default: :id)



80
# File 'lib/console_utils.rb', line 80

mattr_accessor(:user_primary_key) { :id }

#user_token_columnObject

:attr: A column name with a user’s token. Using by request tools. (default: :auth_token)



85
# File 'lib/console_utils.rb', line 85

mattr_accessor(:user_token_column) { :auth_token }