Sha256: 4c9e0a35aa797cd97936b0244e47f26d6a41a57f9da1caf872d866fd941417f8
Contents?: true
Size: 1.56 KB
Versions: 1
Compression:
Stored size: 1.56 KB
Contents
require "bundler/grep/version" require 'bundler' require 'optparse' module Bundler module Grep def self.start!(argv) Bundler::Grep::Command.new(argv).start! end class Command def initialize(argv) @gems = [] @ignore_gems = [] parse_argument!(argv) end def start! Kernel.exec(*grep_command, @argv[0], *selected_gem_paths) end private def parse_argument!(argv) opt = OptionParser.new opt.on('-g name1[,name2..]', '--gems name1[,name2..]', 'select target gems') do |gems| @gems = gems.split(',') end opt.on('--ingore-gems name1[,name2..]', 'ignore grep gems') do |gems| @ignore_gems = gems.split(',') end opt.version = Bundler::Grep::VERSION opt.parse!(argv) @argv = argv end def grep_command if ENV['BUNDLER_GREP_CMD'] ENV['BUNDLER_GREP_CMD'].split(/ /).reject {|w| w == '' } else %w(grep -R) end end def selected_gem_paths selected_gem_specs.map(&:full_gem_path) end def selected_gem_specs return Bundler.load.specs if @gems.empty? && @ignore_gems.empty? Bundler.load.specs.find_all {|spec| collected_gem?(spec.name) && not_ignored_gem?(spec.name) } end def collected_gem?(gem_name) @gems.empty? || @gems.include?(gem_name) end def not_ignored_gem?(gem_name) @ignore_gems.empty? || !@ignore_gems.include?(gem_name) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bundler-grep-0.4.0 | lib/bundler/grep.rb |