Sha256: 2d1d10862dc6d86b784ac24d8b0ec4c6739999b3625cbecbb323caec2a9083ef

Contents?: true

Size: 771 Bytes

Versions: 31

Compression:

Stored size: 771 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

31 entries across 31 versions & 1 rubygems

Version Path
quandl_client-2.10.2 lib/quandl/pattern.rb
quandl_client-2.10.1 lib/quandl/pattern.rb
quandl_client-2.10.0 lib/quandl/pattern.rb
quandl_client-2.9.0 lib/quandl/pattern.rb
quandl_client-2.8.0 lib/quandl/pattern.rb
quandl_client-2.7.12 lib/quandl/pattern.rb
quandl_client-2.7.9 lib/quandl/pattern.rb
quandl_client-2.7.8 lib/quandl/pattern.rb
quandl_client-2.7.7 lib/quandl/pattern.rb
quandl_client-2.7.6 lib/quandl/pattern.rb
quandl_client-2.7.3 lib/quandl/pattern.rb
quandl_client-2.7.2 lib/quandl/pattern.rb
quandl_client-2.7.1 lib/quandl/pattern.rb
quandl_client-2.7.0 lib/quandl/pattern.rb
quandl_client-2.6.2 lib/quandl/pattern.rb
quandl_client-2.6.1 lib/quandl/pattern.rb
quandl_client-2.6.0 lib/quandl/pattern.rb
quandl_client-2.5.3 lib/quandl/pattern.rb
quandl_client-2.5.2 lib/quandl/pattern.rb
quandl_client-2.5.1 lib/quandl/pattern.rb