diff options
| author | Mike McQuaid | 2015-06-15 09:56:04 +0100 | 
|---|---|---|
| committer | Mike McQuaid | 2015-06-16 08:12:01 +0100 | 
| commit | 1e867302891f04ba7857d86ea641315d2e1c8e4d (patch) | |
| tree | 0ea500fbe4039445995282260b8fe7a465b7995c /Library/Homebrew/requirements/language_module_requirement.rb | |
| parent | f13ac9b0c8c03ccb72aeed29d2969014d7f660e8 (diff) | |
| download | brew-1e867302891f04ba7857d86ea641315d2e1c8e4d.tar.bz2 | |
Rename requirements named *Dependency.
Dependency is another similar, related class and it's super confusing
to have some Requirements that are named *Dependency.
Closes Homebrew/homebrew#38891.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Diffstat (limited to 'Library/Homebrew/requirements/language_module_requirement.rb')
| -rw-r--r-- | Library/Homebrew/requirements/language_module_requirement.rb | 51 | 
1 files changed, 51 insertions, 0 deletions
diff --git a/Library/Homebrew/requirements/language_module_requirement.rb b/Library/Homebrew/requirements/language_module_requirement.rb new file mode 100644 index 000000000..47cbe8bc1 --- /dev/null +++ b/Library/Homebrew/requirements/language_module_requirement.rb @@ -0,0 +1,51 @@ +require 'requirement' + +class LanguageModuleRequirement < Requirement +  fatal true + +  def initialize language, module_name, import_name=nil +    @language = language +    @module_name = module_name +    @import_name = import_name || module_name +    super([language, module_name, import_name]) +  end + +  satisfy(:build_env => false) { quiet_system(*the_test) } + +  def message; <<-EOS.undent +    Unsatisfied dependency: #{@module_name} +    Homebrew does not provide #{@language.to_s.capitalize} dependencies; install with: +      #{command_line} #{@module_name} +    EOS +  end + +  def the_test +    case @language +      when :chicken then %W{/usr/bin/env csi -e (use\ #{@import_name})} +      when :jruby then %W{/usr/bin/env jruby -rubygems -e require\ '#{@import_name}'} +      when :lua then %W{/usr/bin/env luarocks show #{@import_name}} +      when :node then %W{/usr/bin/env node -e require('#{@import_name}');} +      when :ocaml then %W{/usr/bin/env opam list --installed #{@import_name}} +      when :perl then %W{/usr/bin/env perl -e use\ #{@import_name}} +      when :python then %W{/usr/bin/env python -c import\ #{@import_name}} +      when :python3 then %W{/usr/bin/env python3 -c import\ #{@import_name}} +      when :ruby then %W{/usr/bin/env ruby -rubygems -e require\ '#{@import_name}'} +      when :rbx then %W{/usr/bin/env rbx -rubygems -e require\ '#{@import_name}'} +    end +  end + +  def command_line +    case @language +      when :chicken then "chicken-install" +      when :jruby   then "jruby -S gem install" +      when :lua     then "luarocks install" +      when :node    then "npm install" +      when :ocaml   then "opam install" +      when :perl    then "cpan -i" +      when :python  then "pip install" +      when :python3 then "pip3 install" +      when :rbx     then "rbx gem install" +      when :ruby    then "gem install" +    end +  end +end  | 
