class AnnotateGem::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/annotate_gem/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/annotate_gem/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/annotate_gem/gem_line.rb, line 24
def info
  output = if options[:website_only]
    website
  elsif options[:description_only]
    description
  else
    description_and_website
  end
  output << "\n"
end
inline_comment() click to toggle source
# File lib/annotate_gem/gem_line.rb, line 20
def inline_comment
  "#{original_line.chomp} # #{info}"
end
should_insert?() click to toggle source
# File lib/annotate_gem/gem_line.rb, line 35
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/annotate_gem/gem_line.rb, line 41
def already_added_comment
  !options[:inline] && prev_line_comment && prev_line_comment.include?(comment)
end
description() click to toggle source
# File lib/annotate_gem/gem_line.rb, line 58
def description
  "#{spec.summary}" if spec
end
description_and_website() click to toggle source
# File lib/annotate_gem/gem_line.rb, line 66
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/annotate_gem/gem_line.rb, line 46
def existing_comment_option
  (options[:new_comments_only] && prev_line_comment) || (options[:inline] && original_line_has_comment?)
end
leading_spaces_count() click to toggle source
# File lib/annotate_gem/gem_line.rb, line 54
def leading_spaces_count
  original_line.length - original_line.lstrip.length
end
original_line_has_comment?() click to toggle source
# File lib/annotate_gem/gem_line.rb, line 50
def original_line_has_comment?
  original_line.include?("#")
end
website() click to toggle source
# File lib/annotate_gem/gem_line.rb, line 62
def website
  "#{spec.homepage.to_s}" if spec
end