Module: RFunk

Defined in:
lib/rfunk/lazy.rb,
lib/rfunk/none.rb,
lib/rfunk/some.rb,
lib/rfunk/value.rb,
lib/rfunk/either.rb,
lib/rfunk/option.rb,
lib/rfunk/failure.rb,
lib/rfunk/success.rb,
lib/rfunk/version.rb,
lib/rfunk/attribute.rb,
lib/rfunk/attribute_type.rb,
lib/rfunk/not_found_error.rb

Defined Under Namespace

Modules: Attribute Classes: AttributeType, Failure, Lazy, None, NotFoundError, Some, Success, Value

Constant Summary collapse

VERSION =
'0.2.0'

Instance Method Summary collapse

Instance Method Details

#Either(value) ⇒ Object



2
3
4
5
6
7
8
# File 'lib/rfunk/either.rb', line 2

def Either(value)
  if lambda?(value)
    either_with_lambda(value)
  else
    either_with_value(value)
  end
end

#Failure(value) ⇒ Object



16
17
18
# File 'lib/rfunk/failure.rb', line 16

def Failure(value)
  Failure.new(value)
end

#Lazy(lambda) ⇒ Object



22
23
24
# File 'lib/rfunk/lazy.rb', line 22

def Lazy(lambda)
  Lazy.new(lambda)
end

#None(value = nil) ⇒ Object



18
19
20
# File 'lib/rfunk/none.rb', line 18

def None(value = nil)
  Option(value)
end

#Option(value) ⇒ Object



2
3
4
5
6
7
8
# File 'lib/rfunk/option.rb', line 2

def Option(value)
  if nothing?(value)
    None.instance
  else
    Some.new(value)
  end
end

#Some(value) ⇒ Object



22
23
24
# File 'lib/rfunk/some.rb', line 22

def Some(value)
  Option(value)
end

#Success(value) ⇒ Object



16
17
18
# File 'lib/rfunk/success.rb', line 16

def Success(value)
  Success.new(value)
end