card/lib/cardio/generators/deck_helper.rb
module Cardio
module Generators
# Protected helper methods for DeckGenerator.
# Many methods are called from .erb files.
module DeckHelper
protected
def shark?
!(monkey? || platypus?)
end
def monkey?
options[:monkey]
end
def platypus?
options[:platypus]
end
def erb_template name
template "#{name}.erb", name
end
def repo_path
@repo_path ||= determine_repo_path
end
def expanded_repo_path
@expanded_repo_path ||= File.expand_path repo_path
end
def determine_repo_path
@repo_path_determined ? (return nil) : (@repo_path_determined = true)
path = options["repo-path"]
path = ENV["DECKO_REPO_PATH"] if path.blank?
path = prompt_for_repo_path if path.blank? && platypus?
path.to_s
end
def repo_path_constraint subdir=nil
repo_path.present? ? %(, path: "#{repo_path}/#{subdir}") : ""
end
def prompt_for_repo_path
@repo_path = ask "Enter the path to your local decko repository: "
end
def spec_path
@spec_path ||= platypus? ? repo_path : "mod/"
end
def spec_helper_path
@spec_helper_path ||=
platypus? ? "#{repo_path}/card/spec/spec_helper" : "./spec/spec_helper"
end
def features_path
@features_path ||=
platypus? ? File.expand_path("#{repo_path}/decko/features/") : "mod/"
end
def database_gem_and_version
entry = database_gemfile_entry
text = %("#{entry.name}")
text << %(, '#{entry.version}') if entry.version
# single quotes to prevent, eg: `gem "pg", ">= 0.18', '< 2.0"`
text
end
def jasmine_yml prefix
inside("javascripts/support") do
template "#{prefix}_jasmine.yml.erb", "jasmine.yml"
end
end
def mysql_socket
return if RbConfig::CONFIG["host_os"].match?(/mswin|mingw/)
@mysql_socket ||= [
"/tmp/mysql.sock", # default
"/var/run/mysqld/mysqld.sock", # debian/gentoo
"/var/tmp/mysql.sock", # freebsd
"/var/lib/mysql/mysql.sock", # fedora
"/opt/local/lib/mysql/mysql.sock", # fedora
"/opt/local/var/run/mysqld/mysqld.sock", # mac + darwinports + mysql
"/opt/local/var/run/mysql4/mysqld.sock", # mac + darwinports + mysql4
"/opt/local/var/run/mysql5/mysqld.sock", # mac + darwinports + mysql5
"/opt/lampp/var/mysql/mysql.sock" # xampp for linux
].find { |f| File.exist?(f) }
end
end
end
end