class Grub::GemLine

Attributes

location[RW]
name[RW]
options[RW]
original_line[RW]
prev_line_comment[RW]
spec[RW]

Public Class Methods

new(*args) click to toggle source
# File lib/grub/gem_line.rb, line 6
def initialize(*args)
  named_params = args.last.respond_to?(:[]) && args.last
  @name = (named_params && named_params[:name]) || args[0]
  @original_line = (named_params && named_params[:original_line]) || args[1]
  @location = (named_params && named_params[:location]) || args[2]
  @prev_line_comment = (named_params && named_params[:prev_line_comment]) || args[3]
  @options = (named_params && named_params[:options]) || named_params
end

Public Instance Methods

comment() click to toggle source
# File lib/grub/gem_line.rb, line 15
def comment
  leading_spaces = original_line[0..leading_spaces_count - 1] if leading_spaces_count > 0
  comment = "#{leading_spaces}# #{info}"
end
info() click to toggle source
# File lib/grub/gem_line.rb, line 20
def info
  output = if options[:website_only]
    website
  elsif options[:description_only]
    description
  else
    description_and_website
  end
  output << "\n"
end
should_insert?() click to toggle source
# File lib/grub/gem_line.rb, line 31
def should_insert?
  !info.strip.empty? && !already_added_comment && !existing_comment_option
end

Private Instance Methods

already_added_comment() click to toggle source
# File lib/grub/gem_line.rb, line 37
def already_added_comment
  prev_line_comment && prev_line_comment.include?(comment)
end
description() click to toggle source
# File lib/grub/gem_line.rb, line 50
def description
  "#{spec.summary}" if spec
end
description_and_website() click to toggle source
# File lib/grub/gem_line.rb, line 58
def description_and_website
  output = "#{description}"
  output << " (#{website})" unless website.nil? || website.empty?
  output
end
existing_comment_option() click to toggle source

if there exists a prev_line_comment and the user has specified new_comments_only

# File lib/grub/gem_line.rb, line 42
def existing_comment_option
  prev_line_comment && options[:new_comments_only]
end
leading_spaces_count() click to toggle source
# File lib/grub/gem_line.rb, line 46
def leading_spaces_count
  original_line.length - original_line.lstrip.length
end
website() click to toggle source
# File lib/grub/gem_line.rb, line 54
def website
  "#{spec.homepage.to_s}" if spec
end