Class: Object
- Inherits:
- BasicObject
- Defined in:
- lib/overload/blank.rb,
lib/overload/r.rb,
lib/overload/object.rb,
lib/lux/config/config.rb,
lib/common/method_attr.rb,
lib/overload/auto_loader.rb,
lib/common/class_attributes.rb
Overview
partialy extracted from github.com/rails/rails/blob/5-0-stable/activesupport/lib/active_support/core_ext/object/blank.rb
Class Method Summary collapse
Instance Method Summary collapse
- #blank? ⇒ Boolean
- #class_attribute(name, default = nil, &block) ⇒ Object
- #die(desc = nil, exp_object = nil) ⇒ Object
- #empty? ⇒ Boolean
- #instance_variables_hash ⇒ Object
- #is_array? ⇒ Boolean
- #is_boolean? ⇒ Boolean
- #is_false? ⇒ Boolean
-
#is_hash? ⇒ Boolean
this will capture plain Hash and HashWithIndifferentAccess.
- #is_numeric? ⇒ Boolean
- #is_string? ⇒ Boolean
- #is_symbol? ⇒ Boolean
- #is_true? ⇒ Boolean
- #method_attr(name = nil, &block) ⇒ Object
- #or(_or) ⇒ Object
- #present? ⇒ Boolean
-
#r(what) ⇒ Object
raise object.
- #reload! ⇒ Object
-
#rm(object) ⇒ Object
unique methods for object includes methods from modules.
-
#rr(what) ⇒ Object
better console log dump.
- #rr!(what) ⇒ Object
- #try(*args) ⇒ Object
Class Method Details
.const_missing(klass) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/overload/auto_loader.rb', line 8 def self.const_missing klass file = klass.to_s.tableize.singularize paths = [ 'models', 'lib', 'vendor', file.split('_').last.pluralize ].map { |it| './app/%s/%s.rb' % [it, file] } klass_file = paths.find { |it| File.exist?(it) } or raise NameError.new('Can not find and autoload class "%s", looked in %s' % [klass, paths.map{ |it| "\n#{it}" }.join('')]) # puts '* autoload: %s from %s' % [file, klass_file] require klass_file Object.const_get(klass) end |
Instance Method Details
#blank? ⇒ Boolean
5 6 7 |
# File 'lib/overload/blank.rb', line 5 def blank? !self end |
#class_attribute(name, default = nil, &block) ⇒ Object
72 73 74 |
# File 'lib/common/class_attributes.rb', line 72 def class_attribute name, default=nil, &block ClassAttributes.define self, name, default, &block end |
#die(desc = nil, exp_object = nil) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/overload/object.rb', line 12 def die desc=nil, exp_object=nil desc ||= 'died without desc' desc = '%s: %s' % [exp_object.class, desc] if exp_object puts desc.red raise desc end |
#empty? ⇒ Boolean
9 10 11 |
# File 'lib/overload/blank.rb', line 9 def empty? blank? end |
#instance_variables_hash ⇒ Object
55 56 57 |
# File 'lib/overload/r.rb', line 55 def instance_variables_hash Hash[instance_variables.map { |name| [name, instance_variable_get(name)] } ] end |
#is_array? ⇒ Boolean
24 25 26 |
# File 'lib/overload/object.rb', line 24 def is_array? self.class.to_s.index('Array') ? true : false end |
#is_boolean? ⇒ Boolean
48 49 50 |
# File 'lib/overload/object.rb', line 48 def is_boolean? self.class == TrueClass || self.class == FalseClass end |
#is_false? ⇒ Boolean
32 33 34 |
# File 'lib/overload/object.rb', line 32 def is_false? self.class.name == 'FalseClass' ? true : false end |
#is_hash? ⇒ Boolean
this will capture plain Hash and HashWithIndifferentAccess
20 21 22 |
# File 'lib/overload/object.rb', line 20 def is_hash? self.class.to_s.index('Hash') ? true : false end |
#is_numeric? ⇒ Boolean
40 41 42 |
# File 'lib/overload/object.rb', line 40 def is_numeric? Float(self) != nil rescue false end |
#is_string? ⇒ Boolean
28 29 30 |
# File 'lib/overload/object.rb', line 28 def is_string? self.class.to_s == 'String' ? true : false end |
#is_symbol? ⇒ Boolean
44 45 46 |
# File 'lib/overload/object.rb', line 44 def is_symbol? self.class.to_s == 'Symbol' ? true : false end |
#is_true? ⇒ Boolean
36 37 38 |
# File 'lib/overload/object.rb', line 36 def is_true? self ? true :false end |
#method_attr(name = nil, &block) ⇒ Object
64 65 66 67 68 |
# File 'lib/common/method_attr.rb', line 64 def method_attr name=nil, &block return MethodAttributes.get(self).or({}) if name.nil? MethodAttributes.define self, name, &block end |
#or(_or) ⇒ Object
3 4 5 |
# File 'lib/overload/object.rb', line 3 def or _or self.blank? || self == 0 ? _or : self end |
#present? ⇒ Boolean
13 14 15 |
# File 'lib/overload/blank.rb', line 13 def present? !blank? end |
#r(what) ⇒ Object
raise object
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/overload/r.rb', line 6 def r what opath = what.class.ancestors out = opath.join("\n> ") data = what.is_a?(Hash) ? JSON.pretty_generate(what) : what.ai(plain:true) out = [data, out, ''].join("\n\n-\n\n") # unique_methods = what.methods - what.class.ancestors[0].instance_methods # raise unique_methods raise LocalRaiseError.new out end |
#reload! ⇒ Object
110 111 112 |
# File 'lib/lux/config/config.rb', line 110 def reload! Lux::Config.live_require_check! end |
#rm(object) ⇒ Object
unique methods for object includes methods from modules
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/overload/r.rb', line 26 def rm object dump = [] dump.push ['Class', object.class] instance_unique = object.methods - object.class.ancestors[0].instance_methods class_unique = object.methods object.class.ancestors.drop(1).each do |_| class_unique -= _.instance_methods if _.class != Module dump.push ['Parent Class', _] break end end dump.push ['Instance uniqe', instance_unique.sort] if instance_unique[0] dump.push ['Uniqe from parent', class_unique.sort] dump.push ['Uniqe from parent simple', object.class.instance_methods(false)] r dump end |
#rr(what) ⇒ Object
better console log dump
20 21 22 |
# File 'lib/overload/r.rb', line 20 def rr what ap ['--- START (%s) ---' % what.class, what, '--- END ---'] end |
#rr!(what) ⇒ Object
50 51 52 53 |
# File 'lib/overload/r.rb', line 50 def rr! what print "\e[H\e[2J\e[3J" # clear osx screen :) rr what end |