Class: Bowndler::Commands::BowerConfigure

Inherits:
Object
  • Object
show all
Defined in:
lib/bowndler/commands/bower_configure.rb

Defined Under Namespace

Classes: GemAwareTemplate

Instance Method Summary collapse

Constructor Details

#initialize(template_path) ⇒ BowerConfigure

Returns a new instance of BowerConfigure.



18
19
20
21
22
23
24
25
# File 'lib/bowndler/commands/bower_configure.rb', line 18

def initialize(template_path)
  template_path = Pathname.new(template_path)
  @output_path = template_path.dirname.join('bower.json')

  erb = ERB.new(IO.read(template_path))
  erb.filename = template_path.to_s
  @template = erb.def_class(GemAwareTemplate, 'render()').new
end

Instance Method Details

#callObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/bowndler/commands/bower_configure.rb', line 27

def call
  bower_config = JSON.parse(template.render)
  bower_config = {:__warning__ => [
    " ************************************************************************** ",
    " *                                                                        * ",
    " * WARNING!                                                               * ",
    " * This file is generated. ANY CHANGES YOU MAKE MAY BE OVERWRITTEN.       * ",
    " *                                                                        * ",
    " * To add/edit bower dependencies, please edit bower.json.erb, and run    * ",
    " * `bowndler bower_configure` to regenerate this file.                    * ",
    " *                                                                        * ",
    " ************************************************************************** ",
  ]}.merge(bower_config)

  bower_json = JSON.pretty_generate(bower_config)
  File.open(output_path, 'w') do |file|
    file.write(bower_json)
  end
end