Module: MCC

Defined in:
lib/mcc.rb

Constant Summary collapse

RE =
/^#.*coding.*:.*$/

Class Method Summary collapse

Class Method Details

.include_magick_comment?(file) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
20
21
22
23
24
# File 'lib/mcc.rb', line 17

def self.include_magick_comment?(file)
  File.open(file) do |f|
    2.times do
      f.readline =~ RE and return true
    end
  end
  false
end

.include_shebang?(file) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
48
49
# File 'lib/mcc.rb', line 45

def self.include_shebang?(file)
  File.open(file) do |f|
    return !!(f.readline  =~ /^#!/)
  end
end

.insert_magick_comment(file, magick_comment) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/mcc.rb', line 26

def self.insert_magick_comment(file, magick_comment)
  include_shebang = include_shebang?(file)

  tmp = Tempfile.open(File.basename(file))
  File.open(file) do |f|
    tmp.puts f.readline if include_shebang
    tmp.puts magick_comment

    f.each do |line|
      tmp.puts line
    end
  end
  tmp.flush

  FileUtils.cp(tmp, file)
ensure
  tmp.close
end

.run(files, format = '# coding: utf-8') ⇒ Object



9
10
11
12
13
14
15
# File 'lib/mcc.rb', line 9

def self.run(files, format = '# coding: utf-8')
  files.each do |file|
    unless include_magick_comment?(file)
      insert_magick_comment(file, format)
    end
  end
end