Class: BashBuilder

Class Method Summary collapse

Methods included from RoHelpers::GitFlowBuilderHelper

included

Methods included from RoHelpers::RailsBuilderHelper

included

Methods included from RoHelpers::BashBuilderHelper

included

Methods included from RoHelpers::RoHelper

included

Class Method Details

._build_completionObject



69
70
71
# File 'lib/bash_builder.rb', line 69

def _build_completion
  build_template('completions')
end

._build_git_flow_cmdsObject



39
40
41
# File 'lib/bash_builder.rb', line 39

def _build_git_flow_cmds
  build_template('git_flow')
end

._build_rails_cmdsObject



73
74
75
# File 'lib/bash_builder.rb', line 73

def _build_rails_cmds
  build_template('rails')
end

._build_working_project_bashObject



65
66
67
# File 'lib/bash_builder.rb', line 65

def _build_working_project_bash
  build_template('working_project_bash')
end

._set_envsObject



77
78
79
# File 'lib/bash_builder.rb', line 77

def _set_envs
  build_template('set_envs')
end

._tt(path) ⇒ Object



48
49
50
# File 'lib/bash_builder.rb', line 48

def _tt(path)
  @ctn = ERB.new(File.read(path)).result(binding)
end

.buildObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/bash_builder.rb', line 20

def build
  reset_ivars

  set_envs

  dir = File.expand_path("../bash_templates", __FILE__)
  Dir[File.join(dir, '**')].each do |file|
    tt(file)
  end

  build_rails_cmds
  build_rails_completions
  build_git_flow_cmds
  build_git_flow_completions
  build_working_project_bash

  write_into_bash_file
end

.build_git_flow_completionsObject



43
44
45
46
# File 'lib/bash_builder.rb', line 43

def build_git_flow_completions
  @cmds = git_flows
  build_completion
end

.build_rails_completionsObject



53
54
55
56
# File 'lib/bash_builder.rb', line 53

def build_rails_completions
  @cmds = rails_cmds
  build_completion
end

.build_template(name) ⇒ Object



58
59
60
61
62
63
# File 'lib/bash_builder.rb', line 58

def build_template(name)
  path = File.expand_path("../builder_templates/#{name}.erb", __FILE__)

  @ctn = ERB.new(File.read(path)).result(binding)
  Out.table "Building template", "#{File.basename path}"
end

.file_write(file, ctn) ⇒ Object



87
88
89
90
# File 'lib/bash_builder.rb', line 87

def file_write(file, ctn)
  Out.out "writing #{file}"
  File.write(file, ctn)
end

.reset_ivarsObject



92
93
94
95
96
97
98
# File 'lib/bash_builder.rb', line 92

def reset_ivars
  instance_variables.each do |i|
    if instance_variable_get(i).is_a?(Array)
      instance_variable_set i, []
    end
  end
end

.write_bash(file, ctn) ⇒ Object



81
82
83
84
85
# File 'lib/bash_builder.rb', line 81

def write_bash(file, ctn)
  path = File.join(File.expand_path("../bash_templates", __FILE__), "#{file}.sh")

  file_write(path, ctn)
end

.write_into_bash_fileObject



100
101
102
# File 'lib/bash_builder.rb', line 100

def write_into_bash_file
  file_write(target, content.join("\n"))
end