Sha256: d69b984a949f48e84c94ccaef354aa5d8d15b3847c8b5d34be4325146e94c1b1

Contents?: true

Size: 549 Bytes

Versions: 2

Compression:

Stored size: 549 Bytes

Contents

class Some
  include Option

  attr_reader :value

  def initialize(value)
    @value = value
  end

  def each
    yield value
  end

  def none?(&block)
    block.nil? ? false : super
  end

  def value_or
    value
  end

  def some?(type=value.class)
    value.class == type
  end

  def & other
    other.and_option(self)
  end

  def == other
    other.some? && value == other.value
  end

  def | other
    self
  end

  def to_s
    "Some[#{value}]"
  end

  def self.[](*values)
    new(values.size == 1 ? values.first : values)
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
optional-0.0.2 lib/optional/some.rb
optional-0.0.1 lib/optional/some.rb