Sha256: 64f542b82bd79502462c76d8d53f423511b5e9d505808c095cb6fd1a3e2daf27

Contents?: true

Size: 808 Bytes

Versions: 3

Compression:

Stored size: 808 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.7.11 lib/quandl/pattern.rb
quandl_client-2.7.5 lib/quandl/pattern.rb
quandl_client-2.7.4 lib/quandl/pattern.rb