Skip to content

Commit

Permalink
Merge b5a5668 into eb40bc6
Browse files Browse the repository at this point in the history
  • Loading branch information
beauby committed Dec 9, 2016
2 parents eb40bc6 + b5a5668 commit a1fee6a
Show file tree
Hide file tree
Showing 146 changed files with 264 additions and 194 deletions.
14 changes: 7 additions & 7 deletions lib/hanami/commands/generate/app.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@ def map_templates
add_mapping("templates/application.html.#{ template_engine.name }.tt", "templates/application.html.#{ template_engine.name }")
add_mapping('favicon.ico', 'assets/favicon.ico')

add_mapping('.gitkeep', 'controllers/.gitkeep')
add_mapping('.gitkeep', 'assets/images/.gitkeep')
add_mapping('.gitkeep', 'assets/javascripts/.gitkeep')
add_mapping('.gitkeep', 'assets/stylesheets/.gitkeep')
add_mapping('.gitkeep', "../../spec/#{ app_name }/features/.gitkeep")
add_mapping('.gitkeep', "../../spec/#{ app_name }/controllers/.gitkeep")
add_mapping('.gitkeep', "../../spec/#{ app_name }/views/.gitkeep")
add_mapping('.keep', 'controllers/.keep')
add_mapping('.keep', 'assets/images/.keep')
add_mapping('.keep', 'assets/javascripts/.keep')
add_mapping('.keep', 'assets/stylesheets/.keep')
add_mapping('.keep', "../../spec/#{ app_name }/features/.keep")
add_mapping('.keep', "../../spec/#{ app_name }/controllers/.keep")
add_mapping('.keep', "../../spec/#{ app_name }/views/.keep")
end

def template_options
Expand Down
5 changes: 5 additions & 0 deletions lib/hanami/commands/new/abstract.rb
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,11 @@ def git_dir_present?
File.directory?(target.join('.git'))
end

def git_available?
system('echo $PATH')
system('git', '--version', out: File::NULL)
end

def hanami_version
Hanami::Version.gem_requirement
end
Expand Down
45 changes: 23 additions & 22 deletions lib/hanami/commands/new/app.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def map_templates
add_empty_directories
add_test_templates
add_sql_templates
add_git_templates
add_git_templates if git_available?
end

def template_options
Expand All @@ -34,7 +34,7 @@ def template_options
end

def post_process_templates
init_git
init_git if git_available?
end

private
Expand Down Expand Up @@ -69,32 +69,33 @@ def add_test_templates
end

def add_empty_directories
add_mapping('.gitkeep', 'config/initializers/.gitkeep')
add_mapping('.gitkeep', 'app/controllers/.gitkeep')
add_mapping('.gitkeep', 'app/views/.gitkeep')
add_mapping('.gitkeep', 'app/assets/images/.gitkeep')
add_mapping('.gitkeep', 'app/assets/javascripts/.gitkeep')
add_mapping('.gitkeep', 'app/assets/stylesheets/.gitkeep')
add_mapping('.gitkeep', "lib/#{ app_name }/entities/.gitkeep")
add_mapping('.gitkeep', "lib/#{ app_name }/repositories/.gitkeep")
add_mapping('.gitkeep', "lib/#{ app_name }/mailers/.gitkeep")
add_mapping('.gitkeep', "lib/#{ app_name }/mailers/templates/.gitkeep")
add_mapping('.gitkeep', 'public/.gitkeep')
add_mapping('.keep', 'config/initializers/.keep')
add_mapping('.keep', 'app/controllers/.keep')
add_mapping('.keep', 'app/views/.keep')
add_mapping('.keep', 'app/assets/images/.keep')
add_mapping('.keep', 'app/assets/javascripts/.keep')
add_mapping('.keep', 'app/assets/stylesheets/.keep')
add_mapping('.keep', "lib/#{ app_name }/entities/.keep")
add_mapping('.keep', "lib/#{ app_name }/repositories/.keep")
add_mapping('.keep', "lib/#{ app_name }/mailers/.keep")
add_mapping('.keep', "lib/#{ app_name }/mailers/templates/.keep")
add_mapping('.keep', 'public/.keep')

add_mapping('.gitkeep', 'spec/features/.gitkeep')
add_mapping('.gitkeep', 'spec/controllers/.gitkeep')
add_mapping('.gitkeep', 'spec/views/.gitkeep')
add_mapping('.gitkeep', "spec/#{ app_name }/entities/.gitkeep")
add_mapping('.gitkeep', "spec/#{ app_name }/repositories/.gitkeep")
add_mapping('.gitkeep', "spec/#{ app_name }/mailers/.gitkeep")
add_mapping('.gitkeep', 'spec/support/.gitkeep')
add_mapping('.keep', 'spec/features/.keep')
add_mapping('.keep', 'spec/controllers/.keep')
add_mapping('.keep', 'spec/views/.keep')
add_mapping('.keep', "spec/#{ app_name }/entities/.keep")
add_mapping('.keep', "spec/#{ app_name }/repositories/.keep")
add_mapping('.keep', "spec/#{ app_name }/mailers/.keep")
add_mapping('.keep', 'spec/support/.keep')

if database_config.sql?
add_mapping('.gitkeep', 'db/migrations/.gitkeep')
add_mapping('.keep', 'db/migrations/.keep')
else
add_mapping('.gitkeep', 'db/.gitkeep')
add_mapping('.keep', 'db/.keep')
end
end

def template_source_path
Pathname.new(::File.dirname(__FILE__)).join('..', '..', 'generators', 'application', 'app').realpath
end
Expand Down
28 changes: 14 additions & 14 deletions lib/hanami/commands/new/container.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def map_templates
add_empty_directories
add_test_templates
add_sql_templates
add_git_templates
add_git_templates if git_available?
end

def template_options
Expand All @@ -31,7 +31,7 @@ def template_options
end

def post_process_templates
init_git
init_git if git_available?
generate_app
end

Expand Down Expand Up @@ -62,21 +62,21 @@ def add_test_templates
end

def add_empty_directories
add_mapping('.gitkeep', 'public/.gitkeep')
add_mapping('.gitkeep', 'config/initializers/.gitkeep')
add_mapping('.gitkeep', "lib/#{ project_name }/entities/.gitkeep")
add_mapping('.gitkeep', "lib/#{ project_name }/repositories/.gitkeep")
add_mapping('.gitkeep', "lib/#{ project_name }/mailers/.gitkeep")
add_mapping('.gitkeep', "lib/#{ project_name }/mailers/templates/.gitkeep")
add_mapping('.gitkeep', "spec/#{ project_name }/entities/.gitkeep")
add_mapping('.gitkeep', "spec/#{ project_name }/repositories/.gitkeep")
add_mapping('.gitkeep', "spec/#{ project_name }/mailers/.gitkeep")
add_mapping('.gitkeep', 'spec/support/.gitkeep')
add_mapping('.keep', 'public/.keep')
add_mapping('.keep', 'config/initializers/.keep')
add_mapping('.keep', "lib/#{ project_name }/entities/.keep")
add_mapping('.keep', "lib/#{ project_name }/repositories/.keep")
add_mapping('.keep', "lib/#{ project_name }/mailers/.keep")
add_mapping('.keep', "lib/#{ project_name }/mailers/templates/.keep")
add_mapping('.keep', "spec/#{ project_name }/entities/.keep")
add_mapping('.keep', "spec/#{ project_name }/repositories/.keep")
add_mapping('.keep', "spec/#{ project_name }/mailers/.keep")
add_mapping('.keep', 'spec/support/.keep')

if database_config.sql?
add_mapping('.gitkeep', 'db/migrations/.gitkeep')
add_mapping('.keep', 'db/migrations/.keep')
else
add_mapping('.gitkeep', 'db/.gitkeep')
add_mapping('.keep', 'db/.keep')
end
end

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion script/ci
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ run_integration_tests() {
run_tests() {
local root=$1

for test in $(find $root -name '*_spec.rb')
for test in $(find $root -name 'without_git_spec.rb')
do
run_test $test

Expand Down
18 changes: 9 additions & 9 deletions spec/integration/cli/new/database_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
it "generates project" do
project = 'bookshelf_postgresql'
output = [
"create db/migrations/.gitkeep",
"create db/migrations/.keep",
"create db/schema.sql"
]

Expand Down Expand Up @@ -49,9 +49,9 @@
expect("config/environment.rb").to have_file_content(%r{ schema 'db/schema.sql'})

#
# db/migrations/.gitkeep
# db/migrations/.keep
#
expect('db/migrations/.gitkeep').to be_an_existing_file
expect('db/migrations/.keep').to be_an_existing_file

#
# db/schema.sql
Expand All @@ -73,7 +73,7 @@
it "generates project" do
project = 'bookshelf_sqlite'
output = [
"create db/migrations/.gitkeep",
"create db/migrations/.keep",
"create db/schema.sql"
]

Expand Down Expand Up @@ -118,9 +118,9 @@
expect("config/environment.rb").to have_file_content(%r{ schema 'db/schema.sql'})

#
# db/migrations/.gitkeep
# db/migrations/.keep
#
expect('db/migrations/.gitkeep').to be_an_existing_file
expect('db/migrations/.keep').to be_an_existing_file

#
# db/schema.sql
Expand All @@ -143,7 +143,7 @@
it "generates project" do
project = 'bookshelf_mysql'
output = [
"create db/migrations/.gitkeep",
"create db/migrations/.keep",
"create db/schema.sql"
]

Expand Down Expand Up @@ -188,9 +188,9 @@
expect("config/environment.rb").to have_file_content(%r{ schema 'db/schema.sql'})

#
# db/migrations/.gitkeep
# db/migrations/.keep
#
expect('db/migrations/.gitkeep').to be_an_existing_file
expect('db/migrations/.keep').to be_an_existing_file

#
# db/schema.sql
Expand Down
56 changes: 56 additions & 0 deletions spec/integration/cli/new/without_git_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
RSpec.describe "hanami new", type: :cli do
context "when git is not available" do
it "generates project without .git directory" do
project = 'bookshelf_hanami_without_git'
output = <<-OUT
create .hanamirc
create .env.development
create .env.test
create Gemfile
create config.ru
create config/environment.rb
create lib/#{project}.rb
create public/.keep
create config/initializers/.keep
create lib/#{project}/entities/.keep
create lib/#{project}/repositories/.keep
create lib/#{project}/mailers/.keep
create lib/#{project}/mailers/templates/.keep
create spec/#{project}/entities/.keep
create spec/#{project}/repositories/.keep
create spec/#{project}/mailers/.keep
create spec/support/.keep
create db/migrations/.keep
create Rakefile
create spec/spec_helper.rb
create spec/features_helper.rb
create db/schema.sql
create apps/web/application.rb
create apps/web/config/routes.rb
create apps/web/views/application_layout.rb
create apps/web/templates/application.html.erb
create apps/web/assets/favicon.ico
create apps/web/controllers/.keep
create apps/web/assets/images/.keep
create apps/web/assets/javascripts/.keep
create apps/web/assets/stylesheets/.keep
create spec/web/features/.keep
create spec/web/controllers/.keep
create spec/web/views/.keep
insert config/environment.rb
insert config/environment.rb
append .env.development
append .env.test
OUT

without_command('git') do
run_command "hanami new #{project}", output
end

within_project_directory(project) do
expect(exist?('.git')).to be false
expect(exist?('.gitignore')).to be false
end
end
end
end

0 comments on commit a1fee6a

Please sign in to comment.