Class: Object

Inherits:
BasicObject
Includes:
InstanceExecHelper
Defined in:
lib/perennial/core_ext/blank.rb,
lib/perennial/core_ext/misc.rb,
lib/perennial/core_ext/instance_exec.rb,
lib/perennial/core_ext/attribute_accessors.rb

Overview

cattr_* and class_inheritable_* are taken from ActiveSupport. Included here to help keep the codebase simple / clean.

Defined Under Namespace

Modules: InstanceExecHelper

Instance Method Summary collapse

Instance Method Details

#blank?Boolean

Returns:

  • (Boolean)


5
6
7
# File 'lib/perennial/core_ext/blank.rb', line 5

def blank?
  respond_to?(:empty?) ? empty? : !self
end

#instance_exec(*args, &block) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/perennial/core_ext/instance_exec.rb', line 7

def instance_exec(*args, &block)
  begin
    old_critical, Thread.critical = Thread.critical, true
    n = 0
    n += 1 while respond_to?(mname="__instance_exec#{n}")
    InstanceExecHelper.module_eval{ define_method(mname, &block) }
  ensure
    Thread.critical = old_critical
  end
  begin
    ret = send(mname, *args)
  ensure
    InstanceExecHelper.module_eval{ remove_method(mname) } rescue nil
  end
  ret
end

#instance_valuesObject

:nodoc:



13
14
15
16
17
18
# File 'lib/perennial/core_ext/attribute_accessors.rb', line 13

def instance_values #:nodoc:
  instance_variables.inject({}) do |values, name|
    values[name.to_s[1..-1]] = instance_variable_get(name)
    values
  end
end

#instance_variable_defined?(variable) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/perennial/core_ext/attribute_accessors.rb', line 8

def instance_variable_defined?(variable)
  instance_variables.include?(variable.to_s)
end

#meta_def(name, &blk) ⇒ Object



7
8
9
# File 'lib/perennial/core_ext/misc.rb', line 7

def meta_def(name, &blk)
  metaclass.define_method(name, &blk)
end

#metaclassObject



3
4
5
# File 'lib/perennial/core_ext/misc.rb', line 3

def metaclass
  class << self; self; end
end

#present?Boolean

Returns:

  • (Boolean)


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

def present?
  !blank?
end