Module: Inquisitive

Defined in:
lib/inquisitive.rb,
lib/inquisitive/hash.rb,
lib/inquisitive/array.rb,
lib/inquisitive/utils.rb,
lib/inquisitive/string.rb,
lib/inquisitive/nil_class.rb,
lib/inquisitive/environment.rb,
lib/inquisitive/hash_with_indifferent_access.rb

Defined Under Namespace

Modules: Environment, Utils Classes: Array, Hash, HashWithIndifferentAccess, NilClass, String

Class Method Summary collapse

Class Method Details

.coerce(object) ⇒ Object Also known as: []



5
6
7
8
9
# File 'lib/inquisitive.rb', line 5

def coerce(object)
  coerce! object
rescue NameError
  object
end

.coerce!(object) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/inquisitive.rb', line 12

def coerce!(object)
  if Inquisitive.object? object
    object
  else
    Inquisitive.const_get(:"#{object.class}", false).new object
  end
end

.object?(object) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/inquisitive.rb', line 43

def object?(object)
  object.class.name.start_with? 'Inquisitive::'
end

.present?(object) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/inquisitive.rb', line 20

def present?(object)
  case object
  when ::String, String
    not object.empty?
  when ::Array, Array
    object.any? do |value|
      Inquisitive.present? value
    end
  when ::Hash, Hash
    object.values.any? do |value|
      Inquisitive.present? value
    end
  when ::NilClass, NilClass
    false
  else
    if object.respond_to?(:present?)
      object.present?
    else
      !!object
    end
  end
end