laravel 0.1.4 → 0.2.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/README.md +13 -1
- data/bin/laravel +12 -8
- data/features/S_1_new.feature +9 -12
- data/features/S_2_generate_key.feature +1 -2
- data/features/S_3_update_index.feature +1 -2
- data/features/S_4_generator.feature +16 -0
- data/features/step_definitions/laravel.rb +17 -0
- data/lib/laravel/create.rb +3 -2
- data/lib/laravel/info.rb +10 -1
- data/lib/laravel/manage.rb +29 -0
- data/lib/laravel/version.rb +1 -1
- metadata +6 -6
- data/features/S_4_install_bundles.feature +0 -20
data/README.md
CHANGED
@@ -59,7 +59,19 @@ cached!
|
|
59
59
|
laravel new my_app --key
|
60
60
|
|
61
61
|
# use default settings but do not update permissions on storage/ directory
|
62
|
-
laravel new my_app --
|
62
|
+
laravel new my_app --no-perms
|
63
|
+
|
64
|
+
# use default settings and download Laravel Generator by Jeffrey Way
|
65
|
+
laravel new my_app --generator
|
66
|
+
|
67
|
+
# the settings I use:
|
68
|
+
laravel new my_app --key --generator --index=''
|
69
|
+
## this creates a Laravel application from the official repository,
|
70
|
+
## sets the Application Index to blank, makes the storage directory
|
71
|
+
## world-writable, generates a new key for the application and finally
|
72
|
+
## sets up the :generate tasks by downloading Laravel Generator.
|
73
|
+
## Furthermore, this creates the local cache for the official repository
|
74
|
+
## which makes the future installs quite faster :)
|
63
75
|
|
64
76
|
### In an existing Laravel application
|
65
77
|
|
data/bin/laravel
CHANGED
@@ -30,8 +30,7 @@ module Laravel
|
|
30
30
|
# --force => overwrite target directory, if it exists
|
31
31
|
# --index => update Application Index for newly created application
|
32
32
|
# --key => generate a new key for this application
|
33
|
-
# --
|
34
|
-
# --bundles => comma-separated list of bundles to install
|
33
|
+
# --[no-]perms => do not update permissions on storage/ directory
|
35
34
|
desc "new [MY_APP]", "create a new Laravel application"
|
36
35
|
method_option :local, :type => :string, :aliases => "-l", :banner => "DIRECTORY",
|
37
36
|
:desc => "use laravel source from a local directory"
|
@@ -42,9 +41,10 @@ module Laravel
|
|
42
41
|
:desc => "change the Application Index"
|
43
42
|
method_option :key, :type => :boolean, :aliases => "-k",
|
44
43
|
:desc => "generate a new key for this application"
|
45
|
-
method_option :
|
46
|
-
:desc => "
|
47
|
-
method_option :
|
44
|
+
method_option :perms, :type => :boolean, :default => true,
|
45
|
+
:desc => "default | update permissions on storage/ directory"
|
46
|
+
method_option :generator, :type => :boolean, :aliases => "-g",
|
47
|
+
:desc => "get the Laravel generator by Jeffrey Way"
|
48
48
|
def new(app_name)
|
49
49
|
Laravel::Create::source app_name, options
|
50
50
|
end
|
@@ -58,6 +58,8 @@ module Laravel
|
|
58
58
|
Laravel::Manage::update_index new_index, options[:app]
|
59
59
|
end
|
60
60
|
|
61
|
+
# allow the user to generate a new key
|
62
|
+
# --app => use the given directory instead of pwd
|
61
63
|
desc "generate_key", "generate a new key for Laravel application"
|
62
64
|
method_option :app, :type => :string, :aliases => "-a",
|
63
65
|
:desc => "use the specified Laravel application instead of current directory"
|
@@ -65,11 +67,13 @@ module Laravel
|
|
65
67
|
Laravel::Manage::generate_key options[:app]
|
66
68
|
end
|
67
69
|
|
68
|
-
|
70
|
+
# allow the user to download the generator from Jeffrey Way
|
71
|
+
# --app => use the given directory instead of pwd
|
72
|
+
desc "get_generator", "download the Laravel Generator by Jeffrey Way"
|
69
73
|
method_option :app, :type => :string, :aliases => "-a",
|
70
74
|
:desc => "use the specified Laravel application instead of current directory"
|
71
|
-
def
|
72
|
-
Laravel::Manage::
|
75
|
+
def get_generator
|
76
|
+
Laravel::Manage::get_generator options[:app]
|
73
77
|
end
|
74
78
|
|
75
79
|
# choose a default task to run
|
data/features/S_1_new.feature
CHANGED
@@ -3,7 +3,7 @@ Feature: Create a new application based on Laravel framework for PHP
|
|
3
3
|
As a PHP developer acquinted with ruby
|
4
4
|
I want to use Laravel gem to setup Laravel framework
|
5
5
|
|
6
|
-
@requires_repository_download @very_slow
|
6
|
+
@requires_repository_download @very_slow @online
|
7
7
|
Scenario: create Laravel application with default settings
|
8
8
|
Given local cache does not exist for "official" repository
|
9
9
|
When I run `laravel new my_app`
|
@@ -16,13 +16,13 @@ Feature: Create a new application based on Laravel framework for PHP
|
|
16
16
|
When I run `laravel new .`
|
17
17
|
Then the stdout should contain "ERROR"
|
18
18
|
|
19
|
-
@requires_repository_download
|
19
|
+
@requires_repository_download @online
|
20
20
|
Scenario: create Laravel application using source from a non-official repo
|
21
21
|
Given local cache does not exist for "pastes" repository
|
22
22
|
When I run `laravel new my_app --remote=http://github.com/laravel/pastes`
|
23
23
|
Then laravel application should be ready to use in "my_app" directory using "pastes" repository
|
24
24
|
|
25
|
-
@requires_repository_download
|
25
|
+
@requires_repository_download @online
|
26
26
|
Scenario: create Laravel application using non-laravel repository
|
27
27
|
When I run `laravel new my_app --remote=http://github.com/github/gitignore`
|
28
28
|
Then local cache for "non_laravel" repository should not exist
|
@@ -44,19 +44,16 @@ Feature: Create a new application based on Laravel framework for PHP
|
|
44
44
|
|
45
45
|
@may_require_repository_download
|
46
46
|
Scenario: create Laravel application but do not update permissions on storage/ directory
|
47
|
-
When I run `laravel new my_app --
|
47
|
+
When I run `laravel new my_app --no-perms`
|
48
48
|
Then the stdout should contain "Hurray!"
|
49
49
|
And laravel application must exist in "my_app" directory
|
50
50
|
And permissions should not be updated on "my_app/storage" directory
|
51
51
|
|
52
|
-
@may_require_repository_download
|
52
|
+
@may_require_repository_download
|
53
53
|
Scenario: create Laravel application with maximum customizations
|
54
|
-
When I run `laravel new -
|
54
|
+
When I run `laravel new -kgi 'home.php' -r http://github.com/laravel/pastes my_app --force`
|
55
55
|
Then laravel application should be ready to use in "my_app" directory
|
56
|
-
And "bob" bundle must be installed for "my_app" application
|
57
|
-
And "anbu" bundle must be installed for "my_app" application
|
58
56
|
And the stdout should contain "Creating application forcefully"
|
59
|
-
And
|
60
|
-
And
|
61
|
-
And
|
62
|
-
And the stdout should contain "Installed bundle: Anbu"
|
57
|
+
And application key must be set for "my_app" application
|
58
|
+
And application index must be set to "home.php" for "my_app" application
|
59
|
+
And generator tasks should be setup for "my_app" application
|
@@ -8,8 +8,7 @@ Feature: Generate a new key for Laravel application
|
|
8
8
|
Given laravel application exists in "my_app" directory
|
9
9
|
Then application key must not be set for "my_app" application
|
10
10
|
When I run `laravel generate_key --app=my_app`
|
11
|
-
Then
|
12
|
-
And application key must be set for "my_app" application
|
11
|
+
Then application key must be set for "my_app" application
|
13
12
|
|
14
13
|
@may_require_repository_download
|
15
14
|
Scenario: create Laravel application and generate a key for it
|
@@ -7,8 +7,7 @@ Feature: Update Application Index for a Laravel based application
|
|
7
7
|
Scenario: update Application Index in a Laravel application
|
8
8
|
Given laravel application exists in "my_app" directory
|
9
9
|
When I run `laravel update_index 'home.php' --app=my_app`
|
10
|
-
Then
|
11
|
-
And application index must be set to "home.php" for "my_app" application
|
10
|
+
Then application index must be set to "home.php" for "my_app" application
|
12
11
|
|
13
12
|
@may_require_repository_download
|
14
13
|
Scenario: create Laravel application without an Application Index
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Feature: Download Laravel Generator by Jeffrey Way
|
2
|
+
In order to generate code for my application quickly using :generate tasks
|
3
|
+
As a PHP developer acquinted with ruby
|
4
|
+
I want to use Laravel gem to download Laravel Generator by Jeffrey Way
|
5
|
+
|
6
|
+
@may_require_repository_download
|
7
|
+
Scenario: download Laravel generator
|
8
|
+
Given laravel application exists in "my_app" directory
|
9
|
+
When I run `laravel get_generator --app=my_app`
|
10
|
+
Then generator tasks should be setup for "my_app" application
|
11
|
+
|
12
|
+
@may_require_repository_download
|
13
|
+
Scenario: download Laravel generator while creating an application
|
14
|
+
When I run `laravel new my_app --generator`
|
15
|
+
Then laravel application should be ready to use in "my_app" directory
|
16
|
+
And generator tasks should be setup for "my_app" application
|
@@ -63,6 +63,7 @@ end
|
|
63
63
|
|
64
64
|
# check if valid permissions were set on the "storage/" directory
|
65
65
|
Then /^permissions should( not)? be updated on "(.*?)" directory$/ do |negation, dir|
|
66
|
+
step "the stdout should contain \"Updated permissions\"" unless negation
|
66
67
|
dir = get_relative_path_to_test_directory(dir)
|
67
68
|
world_bit = sprintf("%o", File.stat(dir).mode).to_s[-1,1].to_i
|
68
69
|
is_world_writable = [2,3,6,7].include?(world_bit)
|
@@ -71,11 +72,27 @@ end
|
|
71
72
|
|
72
73
|
# check if application index was set
|
73
74
|
Then /^application index must be set to "(.*?)" for "(.*?)" application$/ do |new_index, app_directory|
|
75
|
+
step "the stdout should contain \"Changed Application Index\""
|
74
76
|
check_config_file_for_string("'index' => '#{new_index}'", app_directory)
|
75
77
|
end
|
76
78
|
|
77
79
|
# check if application key was set
|
78
80
|
Then /^application key must(| not) be set for "(.*?)" application$/ do |negation, app_directory|
|
81
|
+
step "the stdout should contain \"Generated a new key\"" unless negation
|
79
82
|
key_regex = negation.empty? ? "[0-9a-f]{32}" : "YourSecretKeyGoesHere!"
|
80
83
|
check_config_file_for_string("'key' => '#{key_regex}'", app_directory)
|
81
84
|
end
|
85
|
+
|
86
|
+
# check if generator tasks were setup
|
87
|
+
Then /^generator tasks should be setup for "(.*?)" application$/ do |dir|
|
88
|
+
step "the stdout should contain \"Downloaded Laravel Generator by Jeffrey Way\""
|
89
|
+
dir = get_relative_path_to_test_directory(dir)
|
90
|
+
generator_tasks_file = File.join(dir, %w[ application tasks generate.php])
|
91
|
+
raise_error_based_on_condition(File.exists?(generator_tasks_file))
|
92
|
+
unless `which php`.empty?
|
93
|
+
artisan = File.join(dir, "artisan")
|
94
|
+
step "I run `php #{artisan} generate`"
|
95
|
+
step "the stdout should contain \"generate\""
|
96
|
+
step "the stdout should not contain \"Sorry\""
|
97
|
+
end
|
98
|
+
end
|
data/lib/laravel/create.rb
CHANGED
@@ -46,9 +46,9 @@ module Laravel
|
|
46
46
|
# make necessary changes for the new app, if we were successful in download
|
47
47
|
# otherwise, remove the downloaded source
|
48
48
|
if Laravel::has_laravel? path
|
49
|
-
storage_directory = File.join(path, "storage")
|
50
49
|
Laravel::say_success "Cloned Laravel repository."
|
51
|
-
|
50
|
+
if options[:perms]
|
51
|
+
storage_directory = File.join(path, "storage")
|
52
52
|
response = system("chmod -R o+w #{storage_directory}")
|
53
53
|
if response
|
54
54
|
Laravel::say_success "Updated permissions on storage/ directory."
|
@@ -58,6 +58,7 @@ module Laravel
|
|
58
58
|
end
|
59
59
|
Laravel::Manage::update_index options[:index], path if options.has_key?("index")
|
60
60
|
Laravel::Manage::generate_key path if options.has_key?("key")
|
61
|
+
Laravel::Manage::get_generator path if options.has_key?("generator")
|
61
62
|
Laravel::say_success "Hurray! Your Laravel application has been created!"
|
62
63
|
else
|
63
64
|
Laravel::say_failed "Downloaded source is not Laravel framework or a possible fork."
|
data/lib/laravel/info.rb
CHANGED
@@ -16,8 +16,10 @@ module Laravel
|
|
16
16
|
# use default settings and update Application Index
|
17
17
|
laravel new my_app --key
|
18
18
|
# use default settings and generate a new key
|
19
|
-
laravel new my_app --
|
19
|
+
laravel new my_app --no-perms
|
20
20
|
# use default settings but do not update permissions on storage/ directory
|
21
|
+
laravel new my_app --generator
|
22
|
+
# use default settings and downloaded Laravel generator by Jeffrey Way
|
21
23
|
|
22
24
|
Update Application Index on existing Laravel applications
|
23
25
|
=========================================================
|
@@ -32,5 +34,12 @@ module Laravel
|
|
32
34
|
# in the current directory
|
33
35
|
laravel generate_key --app=./laravel
|
34
36
|
# for application in the specified directory
|
37
|
+
|
38
|
+
Download Laraevl Generator by Jeffrey Way
|
39
|
+
=========================================
|
40
|
+
laravel get_generator
|
41
|
+
# in the current directory
|
42
|
+
laravel get_generator --app=./laravel
|
43
|
+
# for application in the specified directory
|
35
44
|
'''
|
36
45
|
end
|
data/lib/laravel/manage.rb
CHANGED
@@ -32,6 +32,35 @@ module Laravel
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
+
# download the Laravel Generator by Jeffrey Way
|
36
|
+
#
|
37
|
+
# * *Args* :
|
38
|
+
# - +app_directory+ -> the directory of the Laravel app, defaults to current working directory
|
39
|
+
#
|
40
|
+
def self.get_generator(app_directory = nil)
|
41
|
+
# default to current working directory if path is not specified
|
42
|
+
app_directory ||= Dir.pwd
|
43
|
+
|
44
|
+
# get the path to the tasks folder
|
45
|
+
tasks_directory = File.expand_path(File.join(app_directory, %w[ application tasks ]))
|
46
|
+
|
47
|
+
# download the Laravel Generator
|
48
|
+
generator_url = "https://raw.github.com/JeffreyWay/Laravel-Generator/master/generate.php"
|
49
|
+
generator_file = File.join(tasks_directory, "generate.php")
|
50
|
+
success = case
|
51
|
+
when `which curl` then system("curl -s #{generator_url} > #{generator_file}")
|
52
|
+
when `which wget` then system("wget -s #{generator_url} -O #{generator_file}")
|
53
|
+
else false
|
54
|
+
end
|
55
|
+
|
56
|
+
# display appropriate output to the user
|
57
|
+
if success
|
58
|
+
Laravel::say_success "Downloaded Laravel Generator by Jeffrey Way"
|
59
|
+
else
|
60
|
+
Laravel::say_failed "Could not download Laravel Generator"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
35
64
|
private
|
36
65
|
|
37
66
|
def self.change_configuration(match, replace, app_directory = nil)
|
data/lib/laravel/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: laravel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
@@ -77,7 +77,7 @@ files:
|
|
77
77
|
- features/S_1_new.feature
|
78
78
|
- features/S_2_generate_key.feature
|
79
79
|
- features/S_3_update_index.feature
|
80
|
-
- features/
|
80
|
+
- features/S_4_generator.feature
|
81
81
|
- features/step_definitions/laravel.rb
|
82
82
|
- features/support/env.rb
|
83
83
|
- features/support/laravel_helpers.rb
|
@@ -103,7 +103,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
103
103
|
version: '0'
|
104
104
|
segments:
|
105
105
|
- 0
|
106
|
-
hash:
|
106
|
+
hash: 3710655952266878729
|
107
107
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
108
|
none: false
|
109
109
|
requirements:
|
@@ -112,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
112
|
version: '0'
|
113
113
|
segments:
|
114
114
|
- 0
|
115
|
-
hash:
|
115
|
+
hash: 3710655952266878729
|
116
116
|
requirements: []
|
117
117
|
rubyforge_project:
|
118
118
|
rubygems_version: 1.8.24
|
@@ -125,7 +125,7 @@ test_files:
|
|
125
125
|
- features/S_1_new.feature
|
126
126
|
- features/S_2_generate_key.feature
|
127
127
|
- features/S_3_update_index.feature
|
128
|
-
- features/
|
128
|
+
- features/S_4_generator.feature
|
129
129
|
- features/step_definitions/laravel.rb
|
130
130
|
- features/support/env.rb
|
131
131
|
- features/support/laravel_helpers.rb
|
@@ -1,20 +0,0 @@
|
|
1
|
-
Feature: Install bundles for Laravel application
|
2
|
-
In order to extend the functionality of my Laravel application
|
3
|
-
As a PHP developer acquinted with ruby
|
4
|
-
I want to use Laravel gem to install Laravel bundles for me
|
5
|
-
|
6
|
-
@may_require_repository_download @focus @announce
|
7
|
-
Scenario: install a new bundle for a Laravel application
|
8
|
-
Given laravel application exists in "my_app" directory
|
9
|
-
And "bob" bundle must not be installed for "my_app" application
|
10
|
-
When I run `laravel install_bundles "bob" --app=my_app`
|
11
|
-
Then the stdout should contain "Installed bundle: Bob"
|
12
|
-
And "bob" bundle must be installed for "my_app" application
|
13
|
-
|
14
|
-
@may_require_repository_download @focus @announce
|
15
|
-
Scenario: create Laravel application with some bundles
|
16
|
-
When I run `laravel new my_app --bundles=bob,bootstrapper,anbu`
|
17
|
-
Then laravel application should be ready to use in "my_app" directory
|
18
|
-
And "bob" bundle must be installed for "my_app" application
|
19
|
-
And "bootstrapper" bundle must be installed for "my_app" application
|
20
|
-
And "anbu" bundle must be installed for "my_app" application
|