class LapisLazuli::Generators::Cucumber

Public Class Methods

get_email(cuke) click to toggle source
# File lib/lapis_lazuli/generators/cucumber.rb, line 123
def self.get_email(cuke)
  run_helper(cuke, 'git config --get user.email', 'info@spritecloud.com')
end
get_username(cuke) click to toggle source
# File lib/lapis_lazuli/generators/cucumber.rb, line 117
def self.get_username(cuke)
  run_helper(cuke, 'git config --get user.name', 'spriteCloud B.V.')
end
run_helper(cuke, command, default) click to toggle source
# File lib/lapis_lazuli/generators/cucumber.rb, line 107
def self.run_helper(cuke, command, default)
  begin
    cuke.run(command, {:capture => true}).strip || default
  rescue
    default
  end
end
source_root() click to toggle source
# File lib/lapis_lazuli/generators/cucumber.rb, line 101
def self.source_root
  File.join(File.dirname(__FILE__), "cucumber", "template")
end

Public Instance Methods

copy_template() click to toggle source
# File lib/lapis_lazuli/generators/cucumber.rb, line 53
def copy_template
  opts = {
    :year => Time.now.year,
    :user => Cucumber.get_username(self),
    :email => Cucumber.get_email(self),
    :lapis_lazuli => {
      :version => LapisLazuli::VERSION,
      :dependency => '"' + LapisLazuli::VERSION + '"',
    },
    :project => {
      :name => File.basename(path),
    },
  }

  # If a branch was specified on the CLI, we have to update the dependency
  # string.
  if options.has_key?("branch")
    opts[:lapis_lazuli][:dependency] = ":github => 'spriteCloud/lapis-lazuli', :branch => '#{options["branch"]}'"
  end

  require 'facets/string/lchomp'
  require 'find'
  Find.find(Cucumber.source_root) do |name|
    # Skip the source root itself
    next if name == Cucumber.source_root

    # Find the relative path and file name component
    relative = name.lchomp(Cucumber.source_root + File::SEPARATOR)
    filename = File.basename(relative)

    # Ignore hidden files UNLESS they're listed in the allowed hidden
    # files.
    if filename.start_with?('.')
      next if not ALLOWED_HIDDEN.include?(filename)
    end

    # Create directories as empty directories, and treat every file as
    # a template.
    if File.directory?(name)
      empty_directory(File.join(path, relative))
    else
      template(relative, File.join(path, relative), opts)
    end
  end
end
create_directory_structure() click to toggle source
# File lib/lapis_lazuli/generators/cucumber.rb, line 44
def create_directory_structure
  empty_directory(path)
  PROJECT_PATHS.each do |p|
    empty_directory(File.join(path, p))
  end
end