Sha256: 59d329a13effa9857d4f77229651f3712fed9d7efcbcaeffa8c50fd46e5aadee

Contents?: true

Size: 866 Bytes

Versions: 2

Compression:

Stored size: 866 Bytes

Contents

# frozen_string_literal: true

module Rekkyo
  module Type
    class Member
      attr_reader :key, :value

      def initialize(key, value)
        @key = key
        @value = value
      end

      def ==(other)
        self.class == other.class &&
          self.key == other.key &&
          self.value == other.value
      end

      def match?(other)
        case other
        when self.class
          self == other
        when String, Symbol
          self.value.to_s == other.to_s
        else
          self.value == other
        end
      end

      alias === match?

      def inspect
        "#{self.class.name || ''}::#{key}(#{value.inspect})"
      end

      def to_s
        self.value.to_s
      end

      if defined? ActiveSupport
        def as_json(options = nil)
          self.to_s.as_json(options)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rekkyo-1.1.0 lib/rekkyo/type/member.rb
rekkyo-1.0.0 lib/rekkyo/type/member.rb