Class: Pod::Command::Spec::Edit
  
  
  
  
    
      Class Method Summary
      collapse
    
    
  
    
      Instance Method Summary
      collapse
    
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  #ensure_master_spec_repo_exists!, ensure_not_root_or_allowed!, report_error, run
  
  
  
  
  
  
  
  
  
  #config
  
  
  
  
  
  
  
  Constructor Details
  
    
  
  
    #initialize(argv)  ⇒ Edit 
  
  
  
  
    
Returns a new instance of Edit.
   
 
  
  
    
      
22
23
24
25
26
27
28 
     | 
    
      # File 'lib/cocoapods/command/spec/edit.rb', line 22
def initialize(argv)
  @use_regex = argv.flag?('regex')
  @show_all = argv.flag?('show-all')
  @query = argv.shift_argument
  @query = @query.gsub('.podspec', '') unless @query.nil?
  super
end
     | 
  
 
  
 
  
    Class Method Details
    
      
  
  
    .options  ⇒ Object 
  
  
  
  
    
      
15
16
17
18
19
20 
     | 
    
      # File 'lib/cocoapods/command/spec/edit.rb', line 15
def self.options
  [
    ['--regex', 'Interpret the `QUERY` as a regular expression'],
    ['--show-all', 'Pick from all versions of the given podspec'],
  ].concat(super)
end
     | 
  
 
    
   
  
    Instance Method Details
    
      
  
  
    #exec_editor(*args)  ⇒ Object 
  
  
  
  
    
      
74
75
76
77 
     | 
    
      # File 'lib/cocoapods/command/spec/edit.rb', line 74
def exec_editor(*args)
  return if args.to_s.empty?
  safe_exec(which_editor, *args)
end 
     | 
  
 
    
      
  
  
    #run  ⇒ Object 
  
  
  
  
    
      
36
37
38
39
40
41
42
43
44
45
46
47
48
49 
     | 
    
      # File 'lib/cocoapods/command/spec/edit.rb', line 36
def run
  query = @use_regex ? @query : Regexp.escape(@query)
  if @show_all
    specs = get_path_of_spec(query, @show_all).split(/\n/)
    message = "Which spec would you like to edit [1-#{specs.count}]? "
    index = UI.choose_from_array(specs, message)
    filepath = specs[index]
  else
    filepath = get_path_of_spec(query)
  end
  exec_editor(filepath.to_s) if File.exist? filepath
  raise Informative, "#{filepath} doesn't exist."
end
     | 
  
 
    
      
  
  
    #safe_exec(cmd, *args)  ⇒ Object 
  
  
  
  
    
      
79
80
81
82
83 
     | 
    
      # File 'lib/cocoapods/command/spec/edit.rb', line 79
def safe_exec(cmd, *args)
      exec('/bin/sh', '-i', '-c', cmd + ' "$@"', '--', *args)
end
     | 
  
 
    
      
  
  
    #validate!  ⇒ Object 
  
  
  
  
    
      
30
31
32
33
34 
     | 
    
      # File 'lib/cocoapods/command/spec/edit.rb', line 30
def validate!
  super
  help! 'A podspec name is required.' unless @query
  validate_regex!(@query) if @use_regex
end 
     | 
  
 
    
      
  
  
    #which_editor  ⇒ Object 
  
  
  
  
    
      
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 
     | 
    
      # File 'lib/cocoapods/command/spec/edit.rb', line 51
def which_editor
  editor = ENV['EDITOR']
    return editor unless editor.nil?
  editors = [
        'subl',
        'mate',
        'edit',
        'atom',
        'vim',
  ]
  editor = editors.find { |e| Pod::Executable.which(e) }
  return editor if editor
  raise Informative, "Failed to open editor. Set your 'EDITOR' environment variable."
end
     |