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

Class Method Summary collapse

Instance Method Summary collapse

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

Returns:

  • (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

Returns:

  • (Boolean)


9
10
11
# File 'lib/overload/blank.rb', line 9

def empty?
  blank?
end

#instance_variables_hashObject



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

Returns:

  • (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

Returns:

  • (Boolean)


48
49
50
# File 'lib/overload/object.rb', line 48

def is_boolean?
  self.class == TrueClass || self.class == FalseClass
end

#is_false?Boolean

Returns:

  • (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

Returns:

  • (Boolean)


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

Returns:

  • (Boolean)


40
41
42
# File 'lib/overload/object.rb', line 40

def is_numeric?
  Float(self) != nil rescue false
end

#is_string?Boolean

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

#try(*args) ⇒ Object



7
8
9
10
# File 'lib/overload/object.rb', line 7

def try *args
  return nil if self.class == NilClass
  self.send(*args)
end