Class: Versionate::Versioner
- Inherits:
-
Object
- Object
- Versionate::Versioner
- Defined in:
- lib/versionate/versioner.rb
Constant Summary collapse
- GEM_REGEXP =
/^\s*gem ['"](?<name>.+?)['"](?<extra>,.+$?)?/
Instance Method Summary collapse
- #gem_and_only_gem_from_line(line) ⇒ Object
- #latest_version_for(gem_name) ⇒ Object
- #process(filename) ⇒ Object
- #versionate(filename) ⇒ Object
Instance Method Details
#gem_and_only_gem_from_line(line) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/versionate/versioner.rb', line 42 def gem_and_only_gem_from_line(line) match = line.match GEM_REGEXP return nil unless match return nil if match[:extra] match[:name] end |
#latest_version_for(gem_name) ⇒ Object
13 14 15 |
# File 'lib/versionate/versioner.rb', line 13 def latest_version_for(gem_name) provider.info(gem_name.to_sym)["version"] end |
#process(filename) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/versionate/versioner.rb', line 17 def process(filename) orig_file = File.open(filename) tmp = StringIO.new orig_file.each do |line| gem_name = gem_and_only_gem_from_line line if gem_name version = latest_version_for gem_name tmp.puts "#{line.chomp}, '#{version}'" else tmp.puts line end end orig_file.close tmp.rewind result = tmp.read tmp.close result end |
#versionate(filename) ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/versionate/versioner.rb', line 5 def versionate(filename) result = process filename File.open filename, "w" do |file| file.write result end end |