Class: DRG::Tasks::Pinner
- Inherits:
-
Object
- Object
- DRG::Tasks::Pinner
- Includes:
- Log
- Defined in:
- lib/drg/tasks/pinner.rb
Instance Attribute Summary collapse
-
#gemfile ⇒ Object
readonly
Returns the value of attribute gemfile.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Instance Method Summary collapse
-
#full(version) ⇒ Object
Types.
-
#initialize(type = :full) ⇒ Pinner
constructor
A new instance of Pinner.
- #major(version) ⇒ Object
- #minor(version) ⇒ Object
- #patch(version) ⇒ Object
- #perform ⇒ Object
- #unpin ⇒ Object
Methods included from Log
Constructor Details
Instance Attribute Details
#gemfile ⇒ Object (readonly)
Returns the value of attribute gemfile.
6 7 8 |
# File 'lib/drg/tasks/pinner.rb', line 6 def gemfile @gemfile end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
6 7 8 |
# File 'lib/drg/tasks/pinner.rb', line 6 def type @type end |
Instance Method Details
#full(version) ⇒ Object
Types
38 39 40 |
# File 'lib/drg/tasks/pinner.rb', line 38 def full(version) version end |
#major(version) ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'lib/drg/tasks/pinner.rb', line 42 def major(version) v = version[/(\d+)/, 1] if v == '0' minor(version) else "~> #{v}" end end |
#minor(version) ⇒ Object
51 52 53 54 55 56 57 58 |
# File 'lib/drg/tasks/pinner.rb', line 51 def minor(version) v = version[/(\d+\.\d+)/, 1] if v == '0.0' version else "~> #{v}" end end |
#patch(version) ⇒ Object
60 61 62 |
# File 'lib/drg/tasks/pinner.rb', line 60 def patch(version) "~> #{version}" end |
#perform ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/drg/tasks/pinner.rb', line 14 def perform log %Q(Pinning Gemfile "#{gemfile.file}") ::Bundler.locked_gems.specs.each do |spec| gem = gemfile.find_by_name spec.name next unless gem gemfile.update gem, public_send(type, spec.version.to_s) gemfile.write end log %Q(Done) end |
#unpin ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/drg/tasks/pinner.rb', line 25 def unpin log %Q(Unpinning Gemfile "#{gemfile.file}") ::Bundler.locked_gems.specs.each do |spec| gem = gemfile.find_by_name spec.name gemfile.remove_version gem if gem end log %Q(Done) end |