Class: Lhj::Command::ReverseImport

Inherits:
Lhj::Command
  • Object
show all
Defined in:
lib/lhj/command/reverse_import.rb

Instance Method Summary collapse

Methods inherited from Lhj::Command

#auto_spin, #begin_title, #handle, #stop

Constructor Details

#initialize(argv) ⇒ ReverseImport

Returns a new instance of ReverseImport.



11
12
13
14
15
# File 'lib/lhj/command/reverse_import.rb', line 11

def initialize(argv)
  @current_path = argv.shift_argument || Dir.pwd
  @framework_names = []
  super
end

Instance Method Details

#child_dirObject



45
46
47
48
49
# File 'lib/lhj/command/reverse_import.rb', line 45

def child_dir
  dirs = Dir.entries(pod_folder_name)
  dirs.reject! { |d| File.directory?(d) }
  dirs
end

#framework_name_regObject



33
34
35
36
37
38
39
# File 'lib/lhj/command/reverse_import.rb', line 33

def framework_name_reg
  @url_key_reg ||= begin
                     keys = @framework_names.join('|')
                     /#{keys}/
                   end
  @url_key_reg
end

#get_all_frameworksObject



28
29
30
31
# File 'lib/lhj/command/reverse_import.rb', line 28

def get_all_frameworks
  folders = child_dir
  folders.each { |name| @framework_names << name }
end

#get_import_headersObject



22
23
24
25
26
# File 'lib/lhj/command/reverse_import.rb', line 22

def get_import_headers
  Dir.glob("#{@current_path}/**/*.{m,h,pch}").each do |f|
    header_handler_file(f) unless f =~ /Pods/
  end
end

#header_handler_file(f) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/lhj/command/reverse_import.rb', line 55

def header_handler_file(f)
  str = ''
  File.readlines(f).each do |l|
    if import_reg =~ l
      ma = l.match(import_reg)
      if framework_name_reg =~ ma[1]
        str += "#import \"#{ma[2]}\"\n"
      else
        str += l.dup
      end
    else
      str += l.dup
    end
  end
  File.write(f, str)
end

#import_regObject



51
52
53
# File 'lib/lhj/command/reverse_import.rb', line 51

def import_reg
  /#import\s*<(.*)\/(.*)>$/
end

#pod_folder_nameObject



41
42
43
# File 'lib/lhj/command/reverse_import.rb', line 41

def pod_folder_name
  File.join(@current_path, 'CustomPods')
end

#runObject



17
18
19
20
# File 'lib/lhj/command/reverse_import.rb', line 17

def run
  get_all_frameworks
  get_import_headers
end