Sha256: 50f75a422d1515baa24b908a9537eb2c369e1c1208a114a907ae0a4f8108c163

Contents?: true

Size: 948 Bytes

Versions: 4

Compression:

Stored size: 948 Bytes

Contents

require 'marc/spec/queries/part'

module MARC
  module Spec
    module Queries
      class ComparisonString
        include Part

        # ------------------------------------------------------------
        # Accessors

        attr_reader :str_raw, :str_exact

        # ------------------------------------------------------------
        # Initializer

        def initialize(str_raw)
          @str_raw = str_raw.to_s
          @str_exact = unescape(@str_raw)
        end

        # ------------------------------------------------------------
        # Object overrides

        def to_s
          "\\#{str_raw}"
        end

        # ------------------------------------------------------------
        # Protected methods

        protected

        def equality_attrs
          [:str_raw]
        end

        def unescape(str_raw)
          str_raw.gsub(/\\(?=[${}!=~?|])/, '').gsub(/\\s/, ' ')
        end

      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ruby-marc-spec-0.1.3 lib/marc/spec/queries/comparison_string.rb
ruby-marc-spec-0.1.2 lib/marc/spec/queries/comparison_string.rb
ruby-marc-spec-0.1.1 lib/marc/spec/queries/comparison_string.rb
ruby-marc-spec-0.1.0 lib/marc/spec/queries/comparison_string.rb