Sha256: 93c27cc509f6a8b8535ce605ee4ce5f4bd64f702ef3a1e70053104205db3202c

Contents?: true

Size: 802 Bytes

Versions: 3

Compression:

Stored size: 802 Bytes

Contents

module Quandl
  class Pattern < Regexp

    class << self

      def define_pattern(name, pattern, options={})
        assert_unique_pattern!(name, pattern)
        patterns << name
        define_singleton_method(name){ Quandl::Pattern.new( pattern, options ) }
      end

      def assert_unique_pattern!(name, pattern)
        return false unless self.respond_to?(name)
        message = "Attempted to redefine previously defined pattern! '#{name}', /#{pattern}/"
        raise ArgumentError.new(name), message
      end

      def patterns
        @patterns ||= []
      end

    end

    def initialize(*args)
      @options = args.pop if args.last.is_a?(Hash)
      super(*args)
    end

    def to_example
      options[:example]
    end

    def options
      @options ||= {}
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
quandl_client-2.13.0 lib/quandl/pattern.rb
quandl_client-2.12.0 lib/quandl/pattern.rb
quandl_client-2.11.0 lib/quandl/pattern.rb