module Metafrazo
Constants
- VERSION
Attributes
config[W]
Public Class Methods
config()
click to toggle source
# File lib/metafrazo.rb, line 35 def self.config @config ||= Config.new end
configure() { |config| ... }
click to toggle source
# File lib/metafrazo.rb, line 39 def self.configure yield(config) end
run(payload)
click to toggle source
returns true if your files
# File lib/metafrazo.rb, line 14 def self.run(payload) token = config.token repo = subject_repo(payload) git = Git.new(token, payload, repo) diff = GitDiffGenerator.new(git).generate changes = local_changes(diff, diff_paths(repo)) unless changes.empty? if slack_enabled? m = message(changes, git.pull_request_url, git.issue_id) Slack.send_message(m, config.slack_webhook_url) else git.comment(message(changes)) end # git.add_label("bug") end !changes.empty? end
Private Class Methods
diff_paths(repo)
click to toggle source
# File lib/metafrazo.rb, line 58 def self.diff_paths(repo) paths = config.paths || [] paths = [config.path] if config.path paths = [repo[:path]] if repo && repo[:path] paths = repo[:paths] if repo && repo[:paths] paths end
local_changes(diffs, paths)
click to toggle source
# File lib/metafrazo.rb, line 45 def self.local_changes(diffs, paths) changes = [] paths.each do |path| diffs.each do |diff| if diff.match(/^#{path}/) changes << diff end end end return changes end
message(changes, url = nil, number = nil)
click to toggle source
# File lib/metafrazo.rb, line 80 def self.message(changes, url = nil, number = nil) messages = [ "ci sono nuove stringhe que sono in disperato bisogno di traduzione", "hay nuevas cadenas que están en desesperada necesidad de una traducción", "Que há novas cordas estão em necessidade desesperada de tradução", "il y a des nouvelles chaînes Que sont dans le besoin désespéré de la traduction", "gibt es neue Saiten que sind in einer verzweifelten Notwendigkeit Übersetzung" ] message = "#{config.usernames.join(' ')}: #{messages.sample} – " message += changes.map { |change| "`#{change}`" }.join(' ') message += " \n\n<#{url}| ##{number} - 👉> \n" if url&& number end
slack_enabled?()
click to toggle source
# File lib/metafrazo.rb, line 96 def self.slack_enabled? config.slack_webhook_url.present? end
subject_repo(payload)
click to toggle source
# File lib/metafrazo.rb, line 66 def self.subject_repo(payload) return nil unless config.repos name = payload["pull_request"]["head"]["repo"]["full_name"].downcase parts = name.split('/') names = config.repos.keys.select do |key| key = key.downcase key == name || (parts.count > 1 && parts[1] == key) end config.repos[names.first] end