Class: Ji2p::Package::Gemfile
Constant Summary collapse
- HEADER =
"# This is a Logstash generated Gemfile.\n" + \ "# If you modify this file manually all comments and formatting will be lost.\n\n"
Instance Attribute Summary collapse
-
#gemset ⇒ Object
Returns the value of attribute gemset.
Instance Method Summary collapse
- #add(name, *requirements) ⇒ Object
- #backup ⇒ Object
- #defined_in_gemfile?(name) ⇒ Boolean
- #find(name) ⇒ Object
- #generate ⇒ Object
-
#initialize(io) ⇒ Gemfile
constructor
A new instance of Gemfile.
- #load(with_backup = true) ⇒ Object
- #locally_installed_gems ⇒ Object
-
#overwrite(name, *requirements) ⇒ Object
overwrite existing or add new.
-
#remove(name) ⇒ Gem
Removed gem or nil if not found.
- #restore ⇒ Object
- #restore! ⇒ Object
- #save ⇒ Object
-
#update(name, *requirements) ⇒ Object
update existing or add new and merge passed options with current gem options if it exists.
Constructor Details
#initialize(io) ⇒ Gemfile
Returns a new instance of Gemfile.
13 14 15 16 |
# File 'lib/ji2p/package/gemfile.rb', line 13 def initialize(io) @io = io @gemset = nil end |
Instance Attribute Details
#gemset ⇒ Object
Returns the value of attribute gemset.
6 7 8 |
# File 'lib/ji2p/package/gemfile.rb', line 6 def gemset @gemset end |
Instance Method Details
#add(name, *requirements) ⇒ Object
46 47 48 |
# File 'lib/ji2p/package/gemfile.rb', line 46 def add(name, *requirements) @gemset.add_gem(Gem.parse(name, *requirements)) end |
#backup ⇒ Object
69 70 71 |
# File 'lib/ji2p/package/gemfile.rb', line 69 def backup @original_backup = @gemset.copy end |
#defined_in_gemfile?(name) ⇒ Boolean
77 78 79 |
# File 'lib/ji2p/package/gemfile.rb', line 77 def defined_in_gemfile?(name) @gemset.find_gem(name) end |
#find(name) ⇒ Object
39 40 41 |
# File 'lib/ji2p/package/gemfile.rb', line 39 def find(name) @gemset.find_gem(name) end |
#generate ⇒ Object
35 36 37 |
# File 'lib/ji2p/package/gemfile.rb', line 35 def generate "#{HEADER}#{gemset.to_s}" end |
#load(with_backup = true) ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/ji2p/package/gemfile.rb', line 18 def load(with_backup = true) # encoding must be set to UTF-8 here to avoid ending up with Windows-1252 encoding on Windows # which will break the DSL instance_eval of that string @io.set_encoding(Encoding::UTF_8) @gemset ||= DSL.parse(@io.read) backup if with_backup self end |
#locally_installed_gems ⇒ Object
86 87 88 |
# File 'lib/ji2p/package/gemfile.rb', line 86 def locally_installed_gems @gemset.gems.select { |gem| gem..include?(:path) } end |
#overwrite(name, *requirements) ⇒ Object
overwrite existing or add new
60 61 62 |
# File 'lib/ji2p/package/gemfile.rb', line 60 def overwrite(name, *requirements) @gemset.overwrite_gem(Gem.parse(name, *requirements)) end |
#remove(name) ⇒ Gem
Returns removed gem or nil if not found.
65 66 67 |
# File 'lib/ji2p/package/gemfile.rb', line 65 def remove(name) @gemset.remove_gem(name) end |
#restore ⇒ Object
73 74 75 |
# File 'lib/ji2p/package/gemfile.rb', line 73 def restore @gemset = @original_backup end |
#restore! ⇒ Object
81 82 83 84 |
# File 'lib/ji2p/package/gemfile.rb', line 81 def restore! restore save end |
#save ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/ji2p/package/gemfile.rb', line 27 def save raise(GemfileError, "a Gemfile must first be loaded") unless @gemset @io.truncate(0) @io.rewind @io.write(generate) @io.flush end |