Class: GemRelease::Template

Inherits:
Object
  • Object
show all
Includes:
Helpers
Defined in:
lib/gem_release/template.rb

Direct Known Subclasses

Gemspec, Version

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Helpers

#gem_filename, #gem_module_name, #gem_module_path, #gem_name, #gem_name_from_directory, #gem_version, #gemspec, #gemspec_filename, #github_token, #github_user, #user_email, #user_name

Constructor Details

#initialize(options = {}) ⇒ Template

Returns a new instance of Template.



11
12
13
14
15
16
17
18
# File 'lib/gem_release/template.rb', line 11

def initialize(options = {})
  @options = options
  options.each { |key, value| instance_variable_set(:"@#{key}", value) }

  @name        ||= gem_name_from_directory
  @module_path ||= name.gsub('-', '_')
  @module_name ||= module_path.camelize
end

Instance Attribute Details

#module_nameObject (readonly)

Returns the value of attribute module_name.



9
10
11
# File 'lib/gem_release/template.rb', line 9

def module_name
  @module_name
end

#module_pathObject (readonly)

Returns the value of attribute module_path.



9
10
11
# File 'lib/gem_release/template.rb', line 9

def module_path
  @module_path
end

#nameObject (readonly)

Returns the value of attribute name.



9
10
11
# File 'lib/gem_release/template.rb', line 9

def name
  @name
end

#optionsObject (readonly)

Returns the value of attribute options.



9
10
11
# File 'lib/gem_release/template.rb', line 9

def options
  @options
end

Instance Method Details

#renderObject



25
26
27
# File 'lib/gem_release/template.rb', line 25

def render
  ERB.new(template, nil, "%").result(binding)
end

#templateObject



29
30
31
# File 'lib/gem_release/template.rb', line 29

def template
  File.new(File.expand_path("../templates/#{template_name}", __FILE__)).read
end

#writeObject



20
21
22
23
# File 'lib/gem_release/template.rb', line 20

def write
  FileUtils.mkdir_p(File.dirname(filename))
  File.open(filename, 'w+') { |f| f.write(render) }
end