Module: PrependCode::Application
- Defined in:
- lib/prepend_code.rb
Class Method Summary collapse
- .find_file_paths(dir_name, ext) ⇒ Object
- .prepend_on_file!(file_path, code) ⇒ Object
- .run!(*arguments) ⇒ Object
Class Method Details
.find_file_paths(dir_name, ext) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/prepend_code.rb', line 31 def self.find_file_paths(dir_name, ext) ret = [] dirs = Dir.glob(dir_name) dirs.each {|d| next unless FileTest.directory?(d) sub_dirs = Dir.glob("#{d}/**") sub_dirs.each {|d| if FileTest.directory?(d) ret += find_file_paths(d, ext) elsif FileTest.file?(d) if d =~ /^*#{ext}$/ ret << d end end } } return ret end |
.prepend_on_file!(file_path, code) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/prepend_code.rb', line 51 def self.prepend_on_file!(file_path, code) f = File.open(file_path, "r+") lines = f.readlines f.close return false if lines && lines[0] == code + "\n" lines = [sprintf('%s%s', code, "\n")] + lines output = File.new(file_path, "w") lines.each { |line| output.write line } output.close return true end |
.run!(*arguments) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/prepend_code.rb', line 9 def self.run!(*arguments) dir_base = './app' ext = '.rb' code = '# coding: utf-8' opts = OptionParser.new opts.on("-d target directory. default: ./app."){|v| dir_base = v } opts.on("-e target file extension. default: .rb"){|v| ext = v } opts.on("-t prepend context. default: # coding: utf-8"){|v| code = v } opts.parse!(arguments) file_paths = find_file_paths(dir_base, ext) count = 0 file_paths.each do |file_path| result = prepend_on_file!(file_path, code) count += 1 if result end puts sprintf('%s files has been matched.', file_paths.count) puts sprintf('%s files has been saved.', count) return 1 end |