Module: SknUtils
- Defined in:
- lib/skn_utils/version.rb,
lib/skn_utils.rb,
lib/skn_utils/wrappable.rb,
lib/skn_utils/dotted_hash.rb,
lib/skn_utils/null_object.rb,
lib/skn_utils/result_bean.rb,
lib/skn_utils/configurable.rb,
lib/skn_utils/job_commands.rb,
lib/skn_utils/configuration.rb,
lib/skn_utils/nested_result.rb,
lib/skn_utils/notifier_base.rb,
lib/skn_utils/page_controls.rb,
lib/skn_utils/http_processor.rb,
lib/skn_utils/concurrent_jobs.rb,
lib/skn_utils/core_extensions.rb,
lib/skn_utils/env_string_handler.rb
Overview
File: ./lib/skn_utils/env_string_handler.rb
Wrapping a string in this class gives you a prettier way to test for equality. The value returned by Rails.env
is wrapped in a StringInquirer object so instead of calling this:
Rails.env == 'production'
SknSettings.env == 'production'
you can call this:
Rails.env.production?
SknSettings.env.productcion?
Create a EnvStringHandler to support: SknSettings.env.development? Yes, its YAML trick in config/settings.yml
...
env: !ruby/string:SknUtils::EnvStringHandler <%= ENV['RACK_ENV'] %>
root: !ruby/string:SknUtils::EnvStringHandler <%= Dir.pwd %>
...
#
Defined Under Namespace
Modules: Configurable, CoreObjectExtensions, Wrappable Classes: AsyncWorker, CommandFORMDelete, CommandFORMPost, CommandJSONGet, CommandJSONPost, CommandJSONPut, ConcurrentJobs, Configuration, DottedHash, EnvStringHandler, HttpProcessor, JobWrapper, NestedResult, NotifierBase, NullObject, PageControls, Result, ResultBean, SyncWorker, Version
Constant Summary collapse
Class Method Summary collapse
-
.as_human_size(number) ⇒ Object
## SknUtils.as_human_size(12345) #=> 12 KB.
-
.catch_exceptions(retries = 3, pause_between = 3, &block) ⇒ Object
Random Utils Retries block up to :retries times with a :pause_between, and returns Success/Failure object – return SknSuccess | SknFailure response object.
-
.duration(start_time = nil) ⇒ Object
call without to get start time call with start_time to get duration string.
- .nullable?(value) ⇒ Boolean
Class Method Details
.as_human_size(number) ⇒ Object
## SknUtils.as_human_size(12345) #=> 12 KB
76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/skn_utils.rb', line 76 def self.as_human_size(number) units = %W(Bytes KB MB GB TB PB EB) num = number.to_f if number < 1001 num = number exp = 0 else max_exp = units.size - 1 exp = ( Math.log( num ) / Math.log( 1024 ) ).round exp = max_exp if exp > max_exp num /= 1024 ** exp end ((num > 9 || num.modulo(1) < 0.1) ? '%d %s' : '%.1f %s') % [num, units[exp]] end |
.catch_exceptions(retries = 3, pause_between = 3, &block) ⇒ Object
Random Utils Retries block up to :retries times with a :pause_between, and returns Success/Failure object – return SknSuccess | SknFailure response object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/skn_utils.rb', line 52 def self.catch_exceptions(retries=3, pause_between=3, &block) retry_count ||= 1 attempts = retries begin res = yield [SknFailure, SknFailure].any? {|o| res.kind_of?(o) } ? res : SknSuccess.( res ) rescue StandardError, ScriptError => error $stderr.puts "#{retry_count} - #{error.class.name}:#{error.}" if retry_count <= attempts retry_count+= 1 sleep(pause_between) retry else SknFailure.( "RETRY ATTEMPTS FAILED - #{error.class.name}:#{error.}", error.backtrace[0..5].to_s ) end end end |
.duration(start_time = nil) ⇒ Object
call without to get start time call with start_time to get duration string
93 94 95 96 |
# File 'lib/skn_utils.rb', line 93 def self.duration(start_time=nil) start_time.nil? ? Process.clock_gettime(Process::CLOCK_MONOTONIC) : "%3.3f seconds" % (Process.clock_gettime(Process::CLOCK_MONOTONIC) - start_time) end |
.nullable?(value) ⇒ Boolean
27 28 29 |
# File 'lib/skn_utils/null_object.rb', line 27 def self.nullable?(value) value.nil? ? NullObject.new : value end |