Sha256: 15d3559c2fc29c973c4dea0377e94f4e5128dc55051835e68aff146c576da66a

Contents?: true

Size: 1.25 KB

Versions: 196

Compression:

Stored size: 1.25 KB

Contents

module Origen
  module Bugs
    extend ActiveSupport::Concern

    autoload :Bug,           'origen/bugs/bug'

    module ClassMethods # :nodoc:
      # Define a bug on the given IP
      def bug(name, options = {})
        name = name.to_s.downcase.to_sym
        bugs[name] = Bug.new(name, options)
        define_method "has_#{name}_bug?" do
          Origen.deprecate "Use has_bug?(:#{name}) instead of has_#{name}_bug?"
          has_bug?(name)
        end
      end

      def bugs
        @bugs ||= {}
      end
    end

    # Returns true if the version of the IP represented by the object has the bug of the
    # given name
    def has_bug?(name, _options = {})
      unless self.respond_to?(:version) && version
        puts 'To test for the presence of a bug the object must implement an attribute'
        puts "called 'version' which returns the IP version represented by the the object."
        fail 'Version undefined!'
      end
      name = name.to_s.downcase.to_sym
      if bugs[name]
        bugs[name].present_on_version?(version)
      else
        false
      end
    end

    # Returns a hash containing all known bugs associated with
    # the given IP, regardless of which version they are present on
    def bugs
      self.class.bugs
    end
  end
end

Version data entries

196 entries across 196 versions & 1 rubygems

Version Path
origen-0.60.7 lib/origen/bugs.rb
origen-0.60.6 lib/origen/bugs.rb
origen-0.60.5 lib/origen/bugs.rb
origen-0.60.4 lib/origen/bugs.rb
origen-0.60.3 lib/origen/bugs.rb
origen-0.60.2 lib/origen/bugs.rb
origen-0.60.1 lib/origen/bugs.rb
origen-0.60.0 lib/origen/bugs.rb
origen-0.59.8 lib/origen/bugs.rb
origen-0.59.7 lib/origen/bugs.rb
origen-0.59.6 lib/origen/bugs.rb
origen-0.59.5 lib/origen/bugs.rb
origen-0.59.4 lib/origen/bugs.rb
origen-0.59.3 lib/origen/bugs.rb
origen-0.59.2 lib/origen/bugs.rb
origen-0.59.1 lib/origen/bugs.rb
origen-0.59.0 lib/origen/bugs.rb
origen-0.58.0 lib/origen/bugs.rb
origen-0.57.2 lib/origen/bugs.rb
origen-0.57.1 lib/origen/bugs.rb