0.0
The project is in a healthy, maintained state
Dry::Interface
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
 Dependencies
 Project Readme

Dry::Interface Main

require "dry/interface"

class Animal < Dry::Interface
  class Mammal < Concrete
    attribute :id, Value(:mammal)
  end

  class Bird < Value
    attribute :id, Value(:bird)
  end

  class Fish < Abstract
    class Whale < Value
      attribute :id, Value(:whale)
    end

    class Shark < Value
      attribute :id, Value(:shark)
    end
  end
end

Animal.new(id: :mammal) # => Animal::Mammal
Animal.new(id: :shark) # => Animal::Fish::Shark