Sha256: ccd37abc3932bae030f193b4f3a5287dfeff16f0cfd96ce5b73b2a823560f7b9

Contents?: true

Size: 906 Bytes

Versions: 8

Compression:

Stored size: 906 Bytes

Contents

# frozen_string_literal: true

require 'parslet'

module Scim
  module Kit
    module V2
      class Filter
        # @private
        class Node
          def initialize(hash)
            @hash = hash
          end

          def operator
            self[:operator].to_sym
          end

          def attribute
            self[:attribute].to_s
          end

          def value
            self[:value].to_s[1..-2]
          end

          def not?
            @hash.key?(:not)
          end

          def accept(visitor)
            visitor.visit(self)
          end

          def left
            self.class.new(self[:left])
          end

          def right
            self.class.new(self[:right])
          end

          def inspect
            @hash.inspect
          end

          private

          def [](key)
            @hash[key]
          end
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
scim-kit-0.7.2 lib/scim/kit/v2/filter/node.rb
scim-kit-0.7.1 lib/scim/kit/v2/filter/node.rb
scim-kit-0.7.0 lib/scim/kit/v2/filter/node.rb
scim-kit-0.6.0 lib/scim/kit/v2/filter/node.rb
scim-kit-0.5.3 lib/scim/kit/v2/filter/node.rb
scim-kit-0.5.2 lib/scim/kit/v2/filter/node.rb
scim-kit-0.5.1 lib/scim/kit/v2/filter/node.rb
scim-kit-0.5.0 lib/scim/kit/v2/filter/node.rb