Sha256: 2f14efbbd36fb4791345c778109daf35dc40358bdcb06b701a945d52adacc8b5

Contents?: true

Size: 1013 Bytes

Versions: 18

Compression:

Stored size: 1013 Bytes

Contents

module Regin
  class CharacterClass < Character
    def initialize(value, options = {})
      @negate = options[:negate]
      super
    end

    def option_names
      %w( negate ) + super
    end

    attr_reader :negate

    def negated?
      negate ? true : false
    end

    # Returns true if expression could be treated as a literal string.
    #
    # A CharacterClass is never literal.
    def literal?
      false
    end

    def bracketed?
      value != '.' && value !~ /^\\[dDsSwW]$/
    end

    def to_s(parent = false)
      if bracketed?
        if !parent && ignorecase
          "(?i-mx:[#{negate && '^'}#{value}])#{quantifier}"
        else
          "[#{negate && '^'}#{value}]#{quantifier}"
        end
      else
        super
      end
    end

    def include?(char)
      re = quantifier ? to_s.sub(/#{Regexp.escape(quantifier)}$/, '') : to_s
      Regexp.compile("\\A#{re}\\Z").match(char)
    end

    def eql?(other) #:nodoc:
      super && negate == other.negate
    end
  end
end

Version data entries

18 entries across 18 versions & 3 rubygems

Version Path
fragrant-0.0.5 vendor/bundle/ruby/1.9.1/gems/rack-mount-0.8.3/lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.8.3 lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.8.2 lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.8.1 lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.8.0 lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.7.4 lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.7.3 lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.7.2 lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.7.1 lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.6.14 lib/rack/mount/vendor/regin/regin/character_class.rb
lgierth-rack-mount-0.6.13 lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.6.13 lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.6.12 lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.6.11 lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.6.10 lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.6.9 lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.6.8 lib/rack/mount/vendor/regin/regin/character_class.rb
rack-mount-0.6.7 lib/rack/mount/vendor/regin/regin/character_class.rb