class Prpr::Action::Gemfile::Update
Public Instance Methods
call()
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 7 def call if files.map(&:filename).include? 'Gemfile.lock' head_versions.each do |name, version| old_version = base_versions[name] next unless version next unless old_version if version.major != old_version.major add_comment(name, 'major version changed!') end if version.major == old_version.major && version.minor != old_version.minor add_comment(name, 'minor version changed!') end end end end
Private Instance Methods
add_comment(name, comment)
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 33 def add_comment(name, comment) github.create_pull_request_comment(repository_name, number, comment, head, 'Gemfile.lock', position(name)) end
base()
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 69 def base event.pull_request.base.sha end
base_versions()
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 49 def base_versions @base_versions ||= versions(base) end
diff()
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 45 def diff @diff ||= files.find { |file| file[:filename] == 'Gemfile.lock' }[:patch] end
env()
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 85 def env @env ||= Config::Env.default end
files()
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 41 def files @files ||= github.pull_request_files(repository_name, number) end
gem_specs(ref)
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 61 def gem_specs(ref) Bundler::LockfileParser.new(gemfile(ref)).specs end
gemfile(ref)
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 65 def gemfile(ref) Config::Github.new(repository_name, branch: ref).read('Gemfile.lock') end
github()
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 29 def github Repository::Github.default end
head()
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 73 def head event.pull_request.head.sha end
head_versions()
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 53 def head_versions @head_versions ||= versions(head) end
major_version_comment()
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 89 def major_version_comment env[:major_version_comment] || ':eyes: major version is changed' end
minor_version_comment()
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 93 def minor_version_comment env[:minor_version_comment] || ':eyes: minor version is changed' end
number()
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 77 def number event.number end
position(name)
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 37 def position(name) diff.lines.index { |line| line =~ /^\+\s*#{name}/ } || diff.lines.index { |line| line.include?(name) } end
repository_name()
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 81 def repository_name event.repository.full_name end
versions(ref)
click to toggle source
# File lib/prpr/action/gemfile/update.rb, line 57 def versions(ref) gem_specs(ref).map { |s| [s.name, SemVer.parse(s.version.to_s)] }.to_h end