Merge pull request #1145 from reitermarkus/module-function

Use `module_function` for `Homebrew` module.
This commit is contained in:
Markus Reiter 2016-10-04 10:31:49 +02:00 committed by GitHub
commit cafe149780
77 changed files with 188 additions and 45 deletions

View File

@ -66,7 +66,7 @@ Metrics/BlockNesting:
# Offense count: 19
# Configuration parameters: CountComments.
Metrics/ModuleLength:
Max: 366
Max: 400
# Offense count: 2
# Configuration parameters: CountKeywordArgs.

View File

@ -32,6 +32,8 @@ module BuildEnvironmentDSL
end
module Homebrew
module_function
def build_env_keys(env)
%w[
CC CXX LD OBJC OBJCXX

View File

@ -7,6 +7,8 @@
require "cmd/fetch"
module Homebrew
module_function
def __cache
if ARGV.named.empty?
puts HOMEBREW_CACHE

View File

@ -7,6 +7,8 @@
#: without any sort of versioned directory as the last path.
module Homebrew
module_function
def __cellar
if ARGV.named.empty?
puts HOMEBREW_CELLAR

View File

@ -6,6 +6,8 @@ require "build_environment"
require "utils/shell"
module Homebrew
module_function
def __env
ENV.activate_extensions!
ENV.deps = ARGV.formulae if superenv?

View File

@ -5,6 +5,8 @@
#: Display the location in the cellar where <formula> is or would be installed.
module Homebrew
module_function
def __prefix
if ARGV.named.empty?
puts HOMEBREW_PREFIX

View File

@ -8,6 +8,8 @@
require "tap"
module Homebrew
module_function
def __repository
if ARGV.named.empty?
puts HOMEBREW_REPOSITORY

View File

@ -2,6 +2,8 @@
#: Print the version number of Homebrew to standard output and exit.
module Homebrew
module_function
def __version
# As a special case, `--version` is implemented directly in `brew.rb`. This
# file merely serves as a container for the documentation. It also catches

View File

@ -9,6 +9,8 @@
#: Regenerate UUID used in Homebrew's analytics.
module Homebrew
module_function
def analytics
config_file = HOMEBREW_REPOSITORY/".git/config"

View File

@ -2,6 +2,8 @@
#: Display the source to <formula>.
module Homebrew
module_function
def cat
# do not "fix" this to support multiple arguments, the output would be
# unparsable, if the user wants to cat multiple formula they can call

View File

@ -15,6 +15,8 @@ require "cleanup"
require "utils"
module Homebrew
module_function
def cleanup
if ARGV.named.empty?
Cleanup.cleanup

View File

@ -4,6 +4,8 @@
require "commands"
module Homebrew
module_function
def command
abort "This command requires a command argument" if ARGV.empty?
cmd = ARGV.first

View File

@ -5,6 +5,8 @@
#: With `--include-aliases`, the aliases of internal commands will be included.
module Homebrew
module_function
def commands
if ARGV.include? "--quiet"
cmds = internal_commands + external_commands
@ -48,8 +50,6 @@ module Homebrew
end.sort
end
private
def find_internal_commands(directory)
directory.children.each_with_object([]) do |f, cmds|
cmds << f.basename.to_s.sub(/\.(?:rb|sh)$/, "") if f.file?

View File

@ -6,6 +6,8 @@
require "system_config"
module Homebrew
module_function
def config
SystemConfig.dump_verbose_config
end

View File

@ -42,6 +42,8 @@ require "formula"
require "ostruct"
module Homebrew
module_function
def deps
mode = OpenStruct.new(
installed?: ARGV.include?("--installed"),

View File

@ -12,6 +12,8 @@ require "descriptions"
require "cmd/search"
module Homebrew
module_function
def desc
search_type = []
search_type << :either if ARGV.flag? "--search"

View File

@ -11,6 +11,8 @@
require "formula"
module Homebrew
module_function
def diy
path = Pathname.getwd

View File

@ -8,6 +8,8 @@
require "diagnostic"
module Homebrew
module_function
def doctor
inject_dump_stats!(Diagnostic::Checks, /^check_*/) if ARGV.switch? "D"

View File

@ -24,6 +24,8 @@
require "formula"
module Homebrew
module_function
def fetch
raise FormulaUnspecifiedError if ARGV.named.empty?
@ -93,8 +95,6 @@ module Homebrew
opoo "Patch reports different #{e.hash_type}: #{e.expected}"
end
private
def retry_fetch?(f)
@fetch_failed ||= Set.new
if ARGV.include?("--retry") && @fetch_failed.add?(f)

View File

@ -15,6 +15,8 @@ require "stringio"
require "socket"
module Homebrew
module_function
def gistify_logs(f)
files = load_logs(f.logs)
build_time = f.logs.ctime

View File

@ -34,6 +34,8 @@ EOS
require "commands"
module Homebrew
module_function
def help(cmd = nil, flags = {})
# Resolve command aliases and find file containing the implementation.
if cmd
@ -71,8 +73,6 @@ module Homebrew
exit 0
end
private
def command_help(path)
help_lines = path.read.lines.grep(/^#:/)
if help_lines.empty?

View File

@ -5,6 +5,8 @@
#: Open <formula>'s homepage in a browser.
module Homebrew
module_function
def home
if ARGV.named.empty?
exec_browser HOMEBREW_WWW

View File

@ -25,6 +25,8 @@ require "tab"
require "utils/json"
module Homebrew
module_function
def info
# eventually we'll solidify an API, but we'll keep old versions
# awhile around for compatibility

View File

@ -64,6 +64,8 @@ require "hardware"
require "development_tools"
module Homebrew
module_function
def install
raise FormulaUnspecifiedError if ARGV.named.empty?

View File

@ -19,6 +19,8 @@ class String
end
module Homebrew
module_function
def irb
if ARGV.include? "--examples"
puts "'v8'.f # => instance of the v8 formula"

View File

@ -6,6 +6,8 @@ require "tab"
require "set"
module Homebrew
module_function
def leaves
installed = Formula.installed
deps_of_installed = Set.new

View File

@ -15,6 +15,8 @@
require "ostruct"
module Homebrew
module_function
def link
raise KegUnspecifiedError if ARGV.named.empty?
@ -71,8 +73,6 @@ module Homebrew
end
end
private
def keg_only?(rack)
Formulary.from_rack(rack).keg_only?
rescue FormulaUnavailableError, TapFormulaAmbiguityError, TapFormulaWithOldnameAmbiguityError

View File

@ -11,6 +11,8 @@ require "keg"
require "formula"
module Homebrew
module_function
def linkapps
target_dir = linkapps_target(local: ARGV.include?("--local"))
@ -55,8 +57,6 @@ module Homebrew
end
end
private
def linkapps_target(opts = {})
local = opts.fetch(:local, false)
Pathname.new(local ? "~/Applications" : "/Applications").expand_path

View File

@ -22,6 +22,8 @@ require "metafiles"
require "formula"
module Homebrew
module_function
def list
# Use of exec means we don't explicitly exit
list_unbrewed if ARGV.flag? "--unbrewed"
@ -58,8 +60,6 @@ module Homebrew
end
end
private
UNBREWED_EXCLUDE_FILES = %w[.DS_Store].freeze
UNBREWED_EXCLUDE_PATHS = %w[
.github/*

View File

@ -5,6 +5,8 @@
require "formula"
module Homebrew
module_function
def log
if ARGV.named.empty?
cd HOMEBREW_REPOSITORY
@ -16,8 +18,6 @@ module Homebrew
end
end
private
def git_log(path = nil)
if File.exist? "#{`git rev-parse --show-toplevel`.chomp}/.git/shallow"
opoo <<-EOS.undent

View File

@ -8,6 +8,8 @@
require "migrator"
module Homebrew
module_function
def migrate
raise FormulaUnspecifiedError if ARGV.named.empty?

View File

@ -7,6 +7,8 @@ require "tab"
require "diagnostic"
module Homebrew
module_function
def missing
return unless HOMEBREW_CELLAR.exist?

View File

@ -12,6 +12,8 @@ require "formula"
require "options"
module Homebrew
module_function
def options
if ARGV.include? "--all"
puts_options Formula.to_a

View File

@ -21,6 +21,8 @@ require "formula"
require "keg"
module Homebrew
module_function
def outdated
formulae = if ARGV.resolved_formulae.empty?
Formula.installed

View File

@ -5,6 +5,8 @@
require "formula"
module Homebrew
module_function
def pin
raise FormulaUnspecifiedError if ARGV.named.empty?

View File

@ -4,6 +4,8 @@
require "sandbox"
module Homebrew
module_function
def postinstall
ARGV.resolved_formulae.each { |f| run_post_install(f) if f.post_install_defined? }
end

View File

@ -12,6 +12,8 @@ require "cmd/tap"
require "cmd/unlinkapps"
module Homebrew
module_function
def prune
ObserverPathnameExtension.reset_counts!

View File

@ -9,6 +9,8 @@
require "readall"
module Homebrew
module_function
def readall
if ARGV.include?("--syntax")
ruby_files = []

View File

@ -5,6 +5,8 @@ require "formula_installer"
require "development_tools"
module Homebrew
module_function
def reinstall
FormulaInstaller.prevent_build_flags unless DevelopmentTools.installed?

View File

@ -21,6 +21,8 @@ require "official_taps"
require "descriptions"
module Homebrew
module_function
SEARCH_ERROR_QUEUE = Queue.new
def search

View File

@ -9,6 +9,8 @@ require "extend/ENV"
require "formula"
module Homebrew
module_function
def sh
ENV.activate_extensions!

View File

@ -17,6 +17,8 @@ require "utils"
require "utils/json"
module Homebrew
module_function
def style
target = if ARGV.named.empty?
nil

View File

@ -6,6 +6,8 @@ require "keg"
require "cmd/link"
module Homebrew
module_function
def switch
if ARGV.named.length != 2
onoe "Usage: brew switch <name> <version>"

View File

@ -18,6 +18,8 @@
require "tap"
module Homebrew
module_function
def tap_info
if ARGV.include? "--installed"
taps = Tap
@ -34,8 +36,6 @@ module Homebrew
end
end
private
def print_tap_info(taps)
if taps.none?
tap_count = 0

View File

@ -5,6 +5,8 @@
require "tap"
module Homebrew
module_function
def tap_pin
ARGV.named.each do |name|
tap = Tap.fetch(name)

View File

@ -4,6 +4,8 @@
require "tap"
module Homebrew
module_function
def tap_unpin
ARGV.named.each do |name|
tap = Tap.fetch(name)

View File

@ -34,6 +34,8 @@
require "tap"
module Homebrew
module_function
def tap
if ARGV.include? "--repair"
Tap.each(&:link_manpages)

View File

@ -9,6 +9,8 @@ require "formula"
require "migrator"
module Homebrew
module_function
def uninstall
raise KegUnspecifiedError if ARGV.named.empty?

View File

@ -9,6 +9,8 @@
require "ostruct"
module Homebrew
module_function
def unlink
raise KegUnspecifiedError if ARGV.named.empty?

View File

@ -12,14 +12,14 @@
require "cmd/linkapps"
module Homebrew
module_function
def unlinkapps
target_dir = linkapps_target(local: ARGV.include?("--local"))
unlinkapps_from_dir(target_dir, dry_run: ARGV.dry_run?)
end
private
def unlinkapps_prune(opts = {})
opts = opts.merge(prune: true)
unlinkapps_from_dir(linkapps_target(local: false), opts)

View File

@ -13,6 +13,8 @@ require "stringio"
require "formula"
module Homebrew
module_function
def unpack
formulae = ARGV.formulae
raise FormulaUnspecifiedError if formulae.empty?

View File

@ -5,6 +5,8 @@
require "formula"
module Homebrew
module_function
def unpin
raise FormulaUnspecifiedError if ARGV.named.empty?

View File

@ -4,6 +4,8 @@
require "tap"
module Homebrew
module_function
def untap
raise "Usage is `brew untap <tap-name>`" if ARGV.empty?

View File

@ -10,6 +10,8 @@ require "cleanup"
require "utils"
module Homebrew
module_function
def update_preinstall_header
@header_already_printed ||= begin
ohai "Auto-updated Homebrew!" if ARGV.include?("--preinstall")
@ -106,8 +108,6 @@ module Homebrew
end
end
private
def shorten_revision(revision)
Utils.popen_read("git", "-C", HOMEBREW_REPOSITORY, "rev-parse", "--short", revision).chomp
end

View File

@ -18,6 +18,8 @@ require "cleanup"
require "development_tools"
module Homebrew
module_function
def upgrade
FormulaInstaller.prevent_build_flags unless DevelopmentTools.installed?

View File

@ -23,6 +23,8 @@ require "formula"
# The intersection is harder to achieve with shell tools.
module Homebrew
module_function
def uses
raise FormulaUnspecifiedError if ARGV.named.empty?

View File

@ -2,6 +2,7 @@ require "compat/fails_with_llvm"
require "compat/tap"
require "compat/formula"
require "compat/formula_specialties"
require "compat/global"
require "compat/hardware"
require "compat/macos"
require "compat/md5"

View File

@ -0,0 +1,16 @@
module Homebrew
module_function
def method_missing(method, *args, &block)
if instance_methods.include?(method)
# odeprecated "#{self}##{method}", "'module_function' or 'def self.#{method}' to convert it to a class method"
return instance_method(method).bind(self).call(*args, &block)
end
super
end
def respond_to_missing?(method, include_private = false)
return true if method_defined?(method)
super(method, include_private)
end
end

View File

@ -7,6 +7,8 @@ require "resource"
require "formula"
module Homebrew
module_function
def aspell_dictionaries
dict_url = "http://ftpmirror.gnu.org/aspell/dict"
dict_mirror = "https://ftp.gnu.org/gnu/aspell/dict"

View File

@ -37,6 +37,8 @@ require "cmd/style"
require "date"
module Homebrew
module_function
def audit
Homebrew.inject_dump_stats!(FormulaAuditor, /^audit_/) if ARGV.switch? "D"

View File

@ -19,6 +19,8 @@ rescue LoadError
end
module Homebrew
module_function
def boneyard_formula_pr
local_only = ARGV.include?("--local")
formula = ARGV.formulae.first

View File

@ -41,6 +41,8 @@ EOS
MAXIMUM_STRING_MATCHES = 100
module Homebrew
module_function
def keg_contain?(string, keg, ignores)
@put_string_exists_header, @put_filenames = nil

View File

@ -35,6 +35,8 @@
require "formula"
module Homebrew
module_function
def inreplace_pairs(path, replacement_pairs)
if ARGV.dry_run?
contents = path.open("r") { |f| Formulary.ensure_utf8_encoding(f).read }

View File

@ -24,6 +24,8 @@ require "digest"
require "erb"
module Homebrew
module_function
# Create a formula from a tarball URL
def create
# Allow searching MacPorts or Fink.

View File

@ -7,6 +7,8 @@
require "formula"
module Homebrew
module_function
def edit
unless (HOMEBREW_REPOSITORY/".git").directory?
raise <<-EOS.undent

View File

@ -13,6 +13,8 @@
require "os/mac/linkage_checker"
module Homebrew
module_function
def linkage
ARGV.kegs.each do |keg|
ohai "Checking #{keg.name} linkage" if ARGV.kegs.size > 1

View File

@ -12,6 +12,8 @@ require "erb"
require "ostruct"
module Homebrew
module_function
SOURCE_PATH = HOMEBREW_LIBRARY_PATH/"manpages"
TARGET_MAN_PATH = HOMEBREW_REPOSITORY/"manpages"
TARGET_DOC_PATH = HOMEBREW_REPOSITORY/"docs"
@ -32,8 +34,6 @@ module Homebrew
end
end
private
def regenerate_man_pages
Homebrew.install_gem_setup_path! "ronn"

View File

@ -3,6 +3,8 @@
#: Reuploads the stable URL for a formula to Bintray to use it as a mirror.
module Homebrew
module_function
def mirror
odie "This command requires at least formula argument!" if ARGV.named.empty?

View File

@ -40,6 +40,8 @@ require "version"
require "pkg_version"
module Homebrew
module_function
def pull
odie "You meant `git pull --rebase`." if ARGV[0] == "--rebase"
@ -235,8 +237,6 @@ module Homebrew
str.force_encoding("UTF-8") if str.respond_to?(:force_encoding)
end
private
def publish_changed_formula_bottles(_tap, changed_formulae_names)
if ENV["HOMEBREW_DISABLE_LOAD_FORMULA"]
raise "Need to load formulae to publish them!"

View File

@ -2,6 +2,8 @@
#: Generate the README.md file for a new tap.
module Homebrew
module_function
def tap_readme
name = ARGV.first
raise "A name is required" if name.nil?

View File

@ -21,6 +21,8 @@ require "sandbox"
require "timeout"
module Homebrew
module_function
def test
raise FormulaUnspecifiedError if ARGV.named.empty?

View File

@ -5,6 +5,8 @@ require "fileutils"
require "tap"
module Homebrew
module_function
def tests
(HOMEBREW_LIBRARY/"Homebrew").cd do
ENV.delete "HOMEBREW_VERBOSE"

View File

@ -15,6 +15,8 @@
#: the new repository clone.
module Homebrew
module_function
def update_test
ENV["HOMEBREW_UPDATE_TEST"] = "1"

View File

@ -39,14 +39,21 @@ HOMEBREW_CURL_ARGS = [
require "tap_constants"
module Homebrew
include FileUtils
extend self
extend FileUtils
attr_accessor :failed
alias failed? failed
class << self
attr_writer :failed
attr_accessor :raise_deprecation_exceptions
alias raise_deprecation_exceptions? raise_deprecation_exceptions
def failed?
@failed == true
end
attr_writer :raise_deprecation_exceptions
def raise_deprecation_exceptions?
@raise_deprecation_exceptions == true
end
end
end
HOMEBREW_PULL_API_REGEX = %r{https://api\.github\.com/repos/([\w-]+)/([\w-]+)?/pulls/(\d+)}

View File

@ -114,6 +114,8 @@ class Options
end
module Homebrew
module_function
def dump_options_for_formula(f)
f.options.sort_by(&:flag).each do |opt|
puts "#{opt.flag}\n\t#{opt.description}"

View File

@ -60,7 +60,7 @@ class UtilTests < Homebrew::TestCase
def test_ofail
shutup { ofail "foo" }
assert Homebrew.failed
assert Homebrew.failed?
ensure
Homebrew.failed = false
end

View File

@ -151,7 +151,9 @@ def interactive_shell(f = nil)
end
module Homebrew
def self._system(cmd, *args)
module_function
def _system(cmd, *args)
pid = fork do
yield if block_given?
args.collect!(&:to_s)
@ -166,12 +168,12 @@ module Homebrew
$?.success?
end
def self.system(cmd, *args)
def system(cmd, *args)
puts "#{cmd} #{args*" "}" if ARGV.verbose?
_system(cmd, *args)
end
def self.core_tap_version_string
def core_tap_version_string
require "tap"
tap = CoreTap.instance
return "N/A" unless tap.installed?
@ -183,7 +185,7 @@ module Homebrew
end
end
def self.install_gem_setup_path!(name, version = nil, executable = name)
def install_gem_setup_path!(name, version = nil, executable = name)
# Respect user's preferences for where gems should be installed.
ENV["GEM_HOME"] = ENV["GEM_OLD_HOME"].to_s
ENV["GEM_HOME"] = Gem.user_dir if ENV["GEM_HOME"].empty?
@ -218,20 +220,19 @@ module Homebrew
odie "Failed to install/update the '#{name}' gem." if exit_code.nonzero?
end
unless which executable
return if which(executable)
odie <<-EOS.undent
The '#{name}' gem is installed but couldn't find '#{executable}' in the PATH:
#{ENV["PATH"]}
EOS
end
end
# Hash of Module => Set(method_names)
@@injected_dump_stat_modules = {}
@injected_dump_stat_modules = {}
def inject_dump_stats!(the_module, pattern)
@@injected_dump_stat_modules[the_module] ||= []
injected_methods = @@injected_dump_stat_modules[the_module]
@injected_dump_stat_modules[the_module] ||= []
injected_methods = @injected_dump_stat_modules[the_module]
the_module.module_eval do
instance_methods.grep(pattern).each do |name|
next if injected_methods.include? name