Sha256: a6ec916933f0842a4b48a14c1548dc7a595b2ffc815f847bd867d5f5d0627c02

Contents?: true

Size: 893 Bytes

Versions: 6

Compression:

Stored size: 893 Bytes

Contents

require 'parameters/types/object'

module Parameters
  module Types
    class Class < Object

      # The base-class of the Class Type
      attr_reader :base_class

      #
      # Initializes the Class Type.
      #
      # @param [Class] base_class
      #   The base-class to wrap all values within.
      #
      def initialize(base_class)
        @base_class = base_class
      end

      #
      # The Ruby Class the type represents.
      #
      # @return [Class]
      #   The base-class of the Class Type.
      #
      def to_ruby
        @base_class
      end

      #
      # Coerces a value into an instance of the Class.
      #
      # @param [Object] value
      #   The value to coerce.
      #
      # @return [Object]
      #   The instance of the Class, created using the value.
      #
      def coerce(value)
        @base_class.new(value)
      end

    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
parameters-0.4.4 lib/parameters/types/class.rb
parameters-0.4.3 lib/parameters/types/class.rb
parameters-0.4.2 lib/parameters/types/class.rb
parameters-0.4.0 lib/parameters/types/class.rb
parameters-0.3.1 lib/parameters/types/class.rb
parameters-0.3.0 lib/parameters/types/class.rb