Class: Beadme::Template

Inherits:
Object
  • Object
show all
Includes:
Thor::Shell
Defined in:
lib/beadme/template.rb

Overview

This class is responsible for generating the README.md file

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(template: Beadme.configuration.default_template, questions: Beadme.configuration.default_questions, dir: Dir.pwd) ⇒ Template

Returns a new instance of Template.



25
26
27
28
29
30
31
32
33
34
# File 'lib/beadme/template.rb', line 25

def initialize(
  template: Beadme.configuration.default_template,
  questions: Beadme.configuration.default_questions,
  dir: Dir.pwd
)
  @template = template
  @questions = questions
  @dir = dir
  @save_path = File.join(dir, 'README.md')
end

Instance Attribute Details

#dirObject (readonly)

Returns the value of attribute dir.



15
16
17
# File 'lib/beadme/template.rb', line 15

def dir
  @dir
end

#questionsObject (readonly)

Returns the value of attribute questions.



15
16
17
# File 'lib/beadme/template.rb', line 15

def questions
  @questions
end

#save_pathObject (readonly)

Returns the value of attribute save_path.



15
16
17
# File 'lib/beadme/template.rb', line 15

def save_path
  @save_path
end

#templateObject (readonly)

Returns the value of attribute template.



15
16
17
# File 'lib/beadme/template.rb', line 15

def template
  @template
end

Instance Method Details

#ask(question, color = nil) ⇒ Object



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

def ask(question, color = nil)
  say question, color
  print '> '
  super ''
ensure
  print "\e[2J\e[f"
end

#createObject

Create the README.md file



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/beadme/template.rb', line 37

def create
  check_dir
  check_file

  erb = ERB.new(template)

  # ERB template will use this variable to populate the content
  data = ask_questions
  File.write(save_path, erb.result(binding))

  print 'Successfully generate Readme.md in '
  say save_path, :green
rescue ArgumentError => e
  say e.message
  exit 1
rescue StandardError => e
  say "An error occurred while generating the README.md \n file: #{e.message}"
  exit 1
end