class Plasmoid::Generator

Attributes

description[RW]
homepage[RW]
options[RW]
project_name[RW]
summary[RW]
target_dir[RW]
user_email[RW]
user_name[RW]

Public Class Methods

new(options = {}) click to toggle source
# File lib/plasmoid/generator.rb, line 19
def initialize(options = {})
  self.options = options

  self.project_name   = options[:project_name]
  if self.project_name.nil? || self.project_name.squeeze.strip == ""
    raise "no name was given"
  end

  self.target_dir             = options[:directory] || self.project_name

  self.summary                = options[:summary] || 'TODO: one-line summary of your plasmoid'
  self.description            = options[:description] || 'TODO: longer description of your plasmoid'

  self.user_name       = options[:user_name]
  self.user_email      = options[:user_email]
  self.homepage        = options[:homepage]
end
run!(*args) click to toggle source
# File lib/plasmoid/generator.rb, line 37
def self.run!(*args)
  options = self::Options.new(args)

  if options[:invalid_argument]
    $stderr.puts options[:invalid_argument]
    options[:show_help] = true
  end

  if options[:show_help]
    $stderr.puts options.parser
    return 1
  end

  if options[:project_name].nil? || options[:project_name].squeeze.strip == ""
    $stderr.puts options.parser
    return 1
  end

  generator = options[:generator].new(options)
  generator.run
  return 0
end

Public Instance Methods

create_version_control() click to toggle source
# File lib/plasmoid/generator.rb, line 66
def create_version_control
  Dir.chdir(target_dir) do
    begin
      @repo = Git.init()
    rescue Git::GitExecuteError => e
      raise "Encountered an error during gitification. Maybe the repo already exists, or has already been pushed to?"
    end

    begin
      @repo.add('.')
    rescue Git::GitExecuteError => e
      raise
    end

    begin
      @repo.commit "Initial commit to #{project_name}."
    rescue Git::GitExecuteError => e
    end
  end
end
run() click to toggle source
# File lib/plasmoid/generator.rb, line 60
def run
  create_files
  create_version_control
  $stdout.puts "Your plasmoid is ready at #{target_dir}\ntype `rake -T` to see the available actions"
end