Class: Mkerl

Inherits:
Object
  • Object
show all
Defined in:
lib/mkerl.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, dir = Dir.pwd, version = 0.1) ⇒ Mkerl

Generate a perfectly clean erlang structure



6
7
8
9
10
11
# File 'lib/mkerl.rb', line 6

def initialize(name, dir=Dir.pwd, version=0.1)
  @name = name
  @root_dir = dir
  @version = version
  @created_at = Time.now
end

Instance Attribute Details

#created_atObject (readonly)

Returns the value of attribute created_at.



4
5
6
# File 'lib/mkerl.rb', line 4

def created_at
  @created_at
end

#nameObject (readonly)

Returns the value of attribute name.



4
5
6
# File 'lib/mkerl.rb', line 4

def name
  @name
end

#root_dirObject (readonly)

Returns the value of attribute root_dir.



4
5
6
# File 'lib/mkerl.rb', line 4

def root_dir
  @root_dir
end

#versionObject (readonly)

Returns the value of attribute version.



4
5
6
# File 'lib/mkerl.rb', line 4

def version
  @version
end

Instance Method Details

#add_appfileObject



45
46
47
# File 'lib/mkerl.rb', line 45

def add_appfile
  write_template_to("app", File.join("ebin", "#{name}.app"))
end

#add_basic_filesObject



53
54
55
56
57
58
59
60
61
62
63
# File 'lib/mkerl.rb', line 53

def add_basic_files
  write_template_to("basic_file.erl", File.join("src", "#{name}.erl"))
  write_template_to("start.sh", "start.sh", :chmod => 0755)
  write_template_to("README.markdown")
  write_template_to("make_boot.erl", File.join("src", "make_boot.erl"))
  write_template_to("reloader.erl", File.join("src", "reloader.erl"))
  write_template_to("supervisor.erl", File.join("src", "#{name}_sup.erl"))
  write_template_to("the_app.erl", File.join("src", "#{name}_app.erl"))
  write_template_to("test_suite.erl", File.join("test", "src", "test_suite.erl"))
  write_template_to("basic_test.erl", File.join("test", "src", "#{name}_test.erl"))
end

#add_emakefileObject



37
38
39
# File 'lib/mkerl.rb', line 37

def add_emakefile
  write_template_to("Emakefile")
end

#add_gitignoreObject



49
50
51
# File 'lib/mkerl.rb', line 49

def add_gitignore
  write_template_to("gitignore", ".gitignore")
end

#add_makefileObject



41
42
43
# File 'lib/mkerl.rb', line 41

def add_makefile
  write_template_to("Makefile")
end

#make_dirsObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/mkerl.rb', line 22

def make_dirs
  FileUtils.mkdir_p(root_dir)
  %w(src test include).each do |dir|
    FileUtils.mkdir_p(File.join(root_dir, dir), :mode => 0755)
  end
  # Test dirs
  %w(src).each do |dir|
    FileUtils.mkdir_p(File.join(root_dir, "test", dir), :mode => 0755)
  end
  %w(ebin deps test/ebin test/fixtures).each do |dir|
    FileUtils.mkdir_p(File.join(root_dir, dir), :mode => 0755)
    FileUtils.touch(File.join(root_dir, dir, "empty"))
  end
end

#runObject



13
14
15
16
17
18
19
20
# File 'lib/mkerl.rb', line 13

def run
  make_dirs
  add_emakefile
  add_makefile
  add_appfile
  add_gitignore
  add_basic_files
end