laravel 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/features/new.feature +9 -0
- data/features/step_definitions/new.rb +5 -0
- data/features/support/env.rb +7 -5
- data/features/support/laravel_helpers.rb +1 -2
- data/lib/laravel/create.rb +14 -6
- data/lib/laravel/version.rb +1 -1
- metadata +1 -1
data/features/new.feature
CHANGED
@@ -38,4 +38,13 @@ Feature: Laravel 'new'
|
|
38
38
|
When I run `laravel new my_app --remote=http://github.com/github/gitignore`
|
39
39
|
Then local cache for "non_laravel" repository should not be created
|
40
40
|
And the stdout should contain "source is corrupt"
|
41
|
+
And the stdout should contain "ERROR"
|
41
42
|
And laravel application must not be created inside "my_app" directory
|
43
|
+
|
44
|
+
@may_require_repository_download
|
45
|
+
Scenario: create Laravel application in the current directory
|
46
|
+
When I run `laravel new . --force`
|
47
|
+
Then the stdout should contain "Hurray!"
|
48
|
+
And laravel application must be created inside current directory
|
49
|
+
When I run `laravel new .`
|
50
|
+
Then the stdout should contain "ERROR"
|
@@ -9,6 +9,11 @@ Then /^laravel application must not be created inside "(.*?)" directory$/ do |di
|
|
9
9
|
!File.exists?(dir)
|
10
10
|
end
|
11
11
|
|
12
|
+
Then /^laravel application must be created inside current directory$/ do
|
13
|
+
dir = File.expand_path(Dir.pwd)
|
14
|
+
Laravel::has_laravel?(dir)
|
15
|
+
end
|
16
|
+
|
12
17
|
Then /^local cache for "(.*?)" repository should not be created$/ do |repo|
|
13
18
|
repo = get_test_repo_path(repo)
|
14
19
|
!File.exists?(repo)
|
data/features/support/env.rb
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
require "aruba/cucumber"
|
2
2
|
require "laravel"
|
3
3
|
|
4
|
+
After do
|
5
|
+
test_directory = File.expand_path(File.join(File.dirname(__FILE__), %w[ .. .. tmp aruba]))
|
6
|
+
FileUtils.rm_rf(File.join(test_directory, "my_app"))
|
7
|
+
FileUtils.rm_rf(File.join(test_directory, "laravel"))
|
8
|
+
FileUtils.rm_rf(File.join(test_directory, "current"))
|
9
|
+
end
|
10
|
+
|
4
11
|
Before('@very_slow') do
|
5
12
|
@aruba_timeout_seconds = 300
|
6
13
|
end
|
@@ -16,8 +23,3 @@ end
|
|
16
23
|
Before('@slow') do
|
17
24
|
@aruba_timeout_seconds = 60
|
18
25
|
end
|
19
|
-
|
20
|
-
After do
|
21
|
-
FileUtils.rm_rf(File.join(%w[ tmp aruba my_app]))
|
22
|
-
FileUtils.rm_rf(File.join(%w[ tmp aruba laravel]))
|
23
|
-
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
module LaravelHelpers
|
2
|
-
|
3
|
-
TestDirectory = File.expand_path(File.join(%w[ tmp aruba]))
|
2
|
+
TestDirectory = File.expand_path(File.join(File.dirname(__FILE__), %w[ .. .. tmp aruba]))
|
4
3
|
|
5
4
|
def get_relative_path_to_test_directory(dir, relative_to = nil)
|
6
5
|
relative_to = TestDirectory unless relative_to
|
data/lib/laravel/create.rb
CHANGED
@@ -14,26 +14,34 @@ module Laravel
|
|
14
14
|
# - string containing error message, if any or is otherwise nil
|
15
15
|
#
|
16
16
|
def self.source(path, options = {})
|
17
|
+
# get some information about this path
|
18
|
+
path = File.expand_path(path)
|
19
|
+
is_current_dir = (path == File.expand_path('.'))
|
20
|
+
is_not_empty = (Dir.entries(path).size > 2) if File.exists?(path)
|
17
21
|
|
18
22
|
# make sure that the path does not already exists (no overwrites!)
|
19
|
-
if File.exists?(path) and not options[:force]
|
20
|
-
Laravel::say_error "directory already exists!"
|
23
|
+
if ((File.exists?(path) and not is_current_dir) or (is_current_dir and is_not_empty)) and not options[:force]
|
24
|
+
Laravel::say_error "directory already exists or is not empty!"
|
21
25
|
end
|
22
26
|
|
23
27
|
# delete the existing files, if we are forced for this
|
24
28
|
if options[:force]
|
25
29
|
Laravel::say_info "Creating application forcefully!"
|
26
|
-
FileUtils.rm_rf path
|
30
|
+
is_current_dir ? FileUtils.rm_rf("#{path}/.", :secure => true) : FileUtils.rm_rf(path)
|
27
31
|
end
|
28
32
|
|
29
33
|
# create the requisite directory structure
|
30
|
-
FileUtils.mkdir_p File.dirname(path)
|
34
|
+
FileUtils.mkdir_p File.dirname(path) unless is_current_dir
|
31
35
|
|
32
36
|
# download/update local repository as required
|
33
37
|
local_repo_for_remote_path = options[:local] || self.local_repository(options)
|
34
38
|
|
35
39
|
# copy the Laravel source to the required path
|
36
|
-
|
40
|
+
if is_current_dir
|
41
|
+
FileUtils.cp_r "#{local_repo_for_remote_path}/.", path
|
42
|
+
else
|
43
|
+
FileUtils.cp_r local_repo_for_remote_path, path
|
44
|
+
end
|
37
45
|
|
38
46
|
# make necessary changes for the new app, if we were successful in download
|
39
47
|
# otherwise, remove the downloaded source
|
@@ -44,7 +52,7 @@ module Laravel
|
|
44
52
|
else
|
45
53
|
Laravel::say_failed "Downloaded source is not Laravel framework or a possible fork."
|
46
54
|
Laravel::say_info "Cleaning up.."
|
47
|
-
FileUtils.rm_rf "#{path}"
|
55
|
+
FileUtils.rm_rf "#{path}" unless is_current_dir
|
48
56
|
# delete_corrupted = Laravel::yes? "Should I delete the specified repository from local cache? (default: yes)"
|
49
57
|
# if delete_corrupted
|
50
58
|
# Laravel::say_info "Deleting local cache for this source!"
|
data/lib/laravel/version.rb
CHANGED