class Polisher::RPM::Spec

Constants

AUTHOR
COMMENT_MATCHER
FILE_MACRO_MATCHERS
FILE_MACRO_REPLACEMENTS
GEM_NAME_MATCHER
METADATA_IDS

metadata keys parsed @see [Polisher::RPM::SpecParser::ClassMethods#parse]

SPEC_BUILD_REQUIRES_MATCHER
SPEC_CHANGELOG_MATCHER
SPEC_CHECK_MATCHER
SPEC_DESCRIPTION_MATCHER
SPEC_DOC_SUBPACKAGE_MATCHER
SPEC_EXCLUDED_FILE_MATCHER
SPEC_FILES_MATCHER
SPEC_GEM_REQ_MATCHER
SPEC_NAME_MATCHER
SPEC_PREP_MATCHER
SPEC_RELEASE_MATCHER
SPEC_REQUIRES_MATCHER
SPEC_SUBPACKAGE_MATCHER
SPEC_SUBPKG_FILES_MATCHER
SPEC_VERSION_MATCHER

Attributes

metadata[RW]

Public Class Methods

new(metadata = nil) click to toggle source
# File lib/polisher/rpm/spec.rb, line 72
def initialize(metadata = nil)
  @metadata = self.class.default_metadata.merge(metadata || {})
end

Public Instance Methods

length() click to toggle source

Return length of contents

# File lib/polisher/rpm/spec.rb, line 101
def length
  contents.length
end
method_missing(method, *args, &block) click to toggle source

Dispatch all missing methods to lookup calls in rpm spec metadata

Calls superclass method
# File lib/polisher/rpm/spec.rb, line 77
def method_missing(method, *args, &block)
  # proxy to metadata
  return @metadata[method] if @metadata.key?(method)

  # return nil if metadata value not set
  return nil if METADATA_IDS.include?(method)

  # set value if invoking metadata setter
  id = method[0...-1].intern if method[-1] == '='
  metadata_setter = METADATA_IDS.include?(id) && args.length == 1
  return @metadata[id] = args.first if metadata_setter

  # dispatch to default behaviour
  super(method, *args, &block)
end
to_string() click to toggle source

Return contents of spec as string

@return [String] string representation of rpm spec

# File lib/polisher/rpm/spec.rb, line 96
def to_string
  contents
end