class GoodData::Command::Scaffold

Constants

TEMPLATES_PATH

Public Class Methods

brick(name) click to toggle source

Scaffolds new brick TODO: Add option for custom output dir

# File lib/gooddata/commands/scaffold.rb, line 47
def brick(name)
  fail ArgumentError, 'No name specified' if name.nil?

  FileUtils.mkdir(name)
  FileUtils.cd(name) do
    input = File.read(TEMPLATES_PATH + 'bricks/brick.rb.erb')
    erb = ERB.new(input)
    File.open('brick.rb', 'w') do |f|
      f.write(erb.result)
    end

    input = File.read(TEMPLATES_PATH + 'bricks/main.rb.erb')
    erb = ERB.new(input)
    File.open('main.rb', 'w') do |f|
      f.write(erb.result)
    end
  end
end
project(name) click to toggle source

Scaffolds new project TODO: Add option for custom output dir

# File lib/gooddata/commands/scaffold.rb, line 19
def project(name)
  fail ArgumentError, 'No name specified' if name.nil?
  FileUtils.mkdir(name)
  FileUtils.cd(name) do
    FileUtils.mkdir('model')
    FileUtils.cd('model') do
      input = File.read(TEMPLATES_PATH + 'project/model/model.rb.erb')
      erb = ERB.new(input)
      File.open('model.rb', 'w') do |f|
        f.write(erb.result_with_hash(:name => name))
      end
    end

    FileUtils.mkdir('data')
    FileUtils.cd('data') do
      FileUtils.cp(Dir.glob(TEMPLATES_PATH + 'project/data/*.csv'), '.')
    end

    input = File.read(TEMPLATES_PATH + 'project/Goodfile.erb')
    erb = ERB.new(input)
    File.open('Goodfile', 'w') do |f|
      f.write(erb.result)
    end
  end
end