Class: Object

Inherits:
BasicObject
Defined in:
lib/eac_ruby_utils/patches/object/debug.rb,
lib/eac_ruby_utils/patches/object/if_nil.rb,
lib/eac_ruby_utils/patches/object/to_uri.rb,
lib/eac_ruby_utils/patches/object/asserts.rb,
lib/eac_ruby_utils/patches/object/compact.rb,
lib/eac_ruby_utils/patches/object/to_bool.rb,
lib/eac_ruby_utils/patches/object/if_present.rb,
lib/eac_ruby_utils/patches/object/if_respond.rb,
lib/eac_ruby_utils/patches/object/to_pathname.rb,
lib/eac_ruby_utils/patches/object/call_if_proc.rb,
lib/eac_ruby_utils/patches/object/i18n_translate.rb

Instance Method Summary collapse

Instance Method Details

#assert_argument(klass, argument_name = 'unknown_argument_name') ⇒ Object

Raises a ArgumentError if self is not a klass.

Raises:

  • (::ArgumentError)


7
8
9
10
11
12
13
# File 'lib/eac_ruby_utils/patches/object/asserts.rb', line 7

def assert_argument(klass, argument_name = 'unknown_argument_name')
  return self if is_a?(klass)

  raise ::ArgumentError,
        "Argument \"#{argument_name}\" is not a #{klass}" \
        "(Actual class: #{self.class}, actual value: #{self})"
end

#assert_count(count, argument_name = 'unknown_argument_name') ⇒ Object

Raises a ArgumentError if self.count is not equal to count.

Raises:

  • (::ArgumentError)


18
19
20
21
22
23
24
# File 'lib/eac_ruby_utils/patches/object/asserts.rb', line 18

def assert_count(count, argument_name = 'unknown_argument_name')
  return self if self.count == count

  raise ::ArgumentError,
        "Argument \"#{argument_name}\" has wrong elements count" \
        "(Actual: #{self.count}, Required: #{count})"
end

#call_if_procObject

If self is a Proc, return the value of .call. If not, return self.



8
9
10
# File 'lib/eac_ruby_utils/patches/object/call_if_proc.rb', line 8

def call_if_proc
  is_a?(::Proc) ? call : self
end

#compact(*attributes) ⇒ EacRubyUtils::Compact



7
8
9
# File 'lib/eac_ruby_utils/patches/object/compact.rb', line 7

def compact(*attributes)
  ::EacRubyUtils::Compact.new(self, attributes)
end

#compact_to_a(*attributes) ⇒ Array



12
13
14
# File 'lib/eac_ruby_utils/patches/object/compact.rb', line 12

def compact_to_a(*attributes)
  compact(*attributes).to_a
end

#compact_to_h(*attributes) ⇒ Hash



17
18
19
# File 'lib/eac_ruby_utils/patches/object/compact.rb', line 17

def compact_to_h(*attributes)
  compact(*attributes).to_h
end

#i18n_translate(entry_suffix, values = {}) ⇒ Object



6
7
8
# File 'lib/eac_ruby_utils/patches/object/i18n_translate.rb', line 6

def i18n_translate(entry_suffix, values = {})
  self.class.i18n_translate(entry_suffix, values)
end

#if_blankObject



14
15
16
17
18
# File 'lib/eac_ruby_utils/patches/object/if_present.rb', line 14

def if_blank
  return yield if blank? && block_given?

  self
end

#if_nilObject



12
13
14
15
16
# File 'lib/eac_ruby_utils/patches/object/if_nil.rb', line 12

def if_nil
  return yield if nil? && block_given?

  self
end

#if_not_nil(default_value = nil) ⇒ Object



5
6
7
8
9
# File 'lib/eac_ruby_utils/patches/object/if_nil.rb', line 5

def if_not_nil(default_value = nil)
  return default_value if nil?

  block_given? ? yield(self) : self
end

#if_present(default_value = nil) ⇒ Object



7
8
9
10
11
# File 'lib/eac_ruby_utils/patches/object/if_present.rb', line 7

def if_present(default_value = nil)
  return default_value if blank?

  block_given? ? yield(self) : self
end

#if_respond(method_name, default_value = nil) ⇒ Object

otherwise.



8
9
10
11
12
13
14
# File 'lib/eac_ruby_utils/patches/object/if_respond.rb', line 8

def if_respond(method_name, default_value = nil)
  return default_value unless respond_to?(method_name)

  value = send(method_name)

  block_given? ? yield(value) : value
end

#on_i18n_locale(locale) ⇒ Object



10
11
12
# File 'lib/eac_ruby_utils/patches/object/i18n_translate.rb', line 10

def on_i18n_locale(locale)
  self.class.on_i18n_locale(locale)
end

#pretty_debug(options = {}) ⇒ Object



4
5
6
7
8
9
10
# File 'lib/eac_ruby_utils/patches/object/debug.rb', line 4

def pretty_debug(options = {})
  print_debug_options(options)

  STDERR.write(pretty_inspect)

  self
end


12
13
14
15
16
17
# File 'lib/eac_ruby_utils/patches/object/debug.rb', line 12

def print_debug(options = {})
  print_debug_options(options)
  STDERR.write(to_debug + "\n")

  self
end


19
20
21
# File 'lib/eac_ruby_utils/patches/object/debug.rb', line 19

def print_debug_label(label)
  STDERR.write("#{label}: ")
end


23
24
25
26
# File 'lib/eac_ruby_utils/patches/object/debug.rb', line 23

def print_debug_options(options)
  options[:title].if_present { |v| print_debug_title(v) }
  options[:label].if_present { |v| print_debug_label(v) }
end


28
29
30
31
32
33
# File 'lib/eac_ruby_utils/patches/object/debug.rb', line 28

def print_debug_title(title)
  char = '='
  STDERR.write(char * (4 + title.length) + "\n")
  STDERR.write("#{char} #{title} #{char}\n")
  STDERR.write(char * (4 + title.length) + "\n")
end

#raise_debugObject



39
40
41
# File 'lib/eac_ruby_utils/patches/object/debug.rb', line 39

def raise_debug
  raise to_debug
end

#to_boolBoolean

Shortcut to +EacRubyUtils::Boolean.parse(self).



9
10
11
# File 'lib/eac_ruby_utils/patches/object/to_bool.rb', line 9

def to_bool
  ::EacRubyUtils::Boolean.parse(self)
end

#to_debugObject



35
36
37
# File 'lib/eac_ruby_utils/patches/object/debug.rb', line 35

def to_debug
  "|#{::Object.instance_method(:to_s).bind(self).call}|#{self}|"
end

#to_pathnamePathname

Convert self to String and then to Pathname. Return nil if self is blank?.



10
11
12
13
14
# File 'lib/eac_ruby_utils/patches/object/to_pathname.rb', line 10

def to_pathname
  return self if is_a?(::Pathname)

  to_s.blank? ? nil : ::Pathname.new(to_s)
end

#to_uriAddressable::URI

Convert self to String and then to Addressable::URI. Return nil if self is blank?.



10
11
12
13
14
# File 'lib/eac_ruby_utils/patches/object/to_uri.rb', line 10

def to_uri
  return self if is_a?(::Addressable::URI)

  to_s.blank? ? nil : ::Addressable::URI.parse(to_s)
end