class AddGem
Attributes
gemName[RW]
gemsFound[RW]
Public Class Methods
gems()
click to toggle source
# File lib/envGen/add_gem.rb, line 8 def self.gems @@gems end
new(input)
click to toggle source
# File lib/envGen/add_gem.rb, line 12 def initialize(input) # input is gem name, called with @gemName @gemName = input end
Public Instance Methods
exactGem?(gemString)
click to toggle source
# File lib/envGen/add_gem.rb, line 21 def exactGem?(gemString) # takes in a search term and a gem to match against gemString.split(" ").first == gemName.downcase end
findPartialNames()
click to toggle source
# File lib/envGen/add_gem.rb, line 55 def findPartialNames # partial name search gemsFound = [] puts "Searching through #{@@gems.count} gems..." AddGem.gems.each do |gemString| # searching through gems + version numbers if exactGem?(gemString) gemsFound.unshift("** #{gemString}") # highlights exact match elsif gemString.include?(gemName.downcase) gemsFound << gemString end end gemsFound end
gemEntry()
click to toggle source
# File lib/envGen/add_gem.rb, line 45 def gemEntry # handles gem entry if !inConfig? && gemExists? writeExactGem elsif inConfig? && gemExists? # add gem if doesn't exist puts "'#{gemName}' already added" else noExactGem end end
gemExists?()
click to toggle source
# File lib/envGen/add_gem.rb, line 25 def gemExists? @@gems.select {|gem| gem.split(" ").first == gemName }.count > 0 end
gemSearch()
click to toggle source
# File lib/envGen/add_gem.rb, line 68 def gemSearch gemsFound = findPartialNames if gemsFound.count == 0 puts "No exact match for '#{gemName.downcase}' found" else puts "\nFound #{gemsFound.count} gems:" gemsFound.each {|gem| puts gem} end end
inConfig?()
click to toggle source
# File lib/envGen/add_gem.rb, line 16 def inConfig? # looks through environment for gem # binding.pry File.readlines("config/environment.rb").grep("gem '#{gemName}'\n").count > 0 end
noExactGem()
click to toggle source
# File lib/envGen/add_gem.rb, line 40 def noExactGem puts "No exact match for '#{gemName}' found" puts "Search for partial gem name with 'gem -s [gem]'" end
write()
click to toggle source
# File lib/envGen/add_gem.rb, line 29 def write File.open("config/environment.rb", "a") {|env| env.puts "gem '#{gemName}'" } end
writeExactGem()
click to toggle source
# File lib/envGen/add_gem.rb, line 35 def writeExactGem write puts "Added '#{gemName}'" end