jdt 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/Gemfile.lock +11 -5
- data/bin/jdt +3 -16
- data/cucumber.yml +0 -0
- data/features/clean.feature +2 -0
- data/features/find.feature +19 -0
- data/features/manifest.feature +17 -19
- data/features/new.feature +9 -94
- data/features/release.feature +0 -7
- data/features/status.feature +47 -10
- data/jdt.gemspec +2 -1
- data/lib/jdt/cli.rb +2 -1
- data/lib/jdt/commands/build.rb +10 -0
- data/lib/jdt/commands/new.rb +38 -16
- data/lib/jdt/config.rb +77 -0
- data/lib/jdt/generator/component_generator.rb +92 -0
- data/lib/jdt/generator/generator.rb +23 -232
- data/lib/jdt/generator/language_generator.rb +21 -0
- data/lib/jdt/generator/library_generator.rb +29 -0
- data/lib/jdt/generator/module_generator.rb +29 -0
- data/lib/jdt/generator/plugin_generator.rb +24 -0
- data/lib/jdt/generator/template_generator.rb +25 -0
- data/lib/jdt/generator/templates/{access.xml.erb → component/access.xml.erb} +0 -0
- data/lib/jdt/generator/templates/{config.xml.erb → component/config.xml.erb} +0 -0
- data/lib/jdt/generator/templates/{controller.php.erb → component/controller.php.erb} +0 -0
- data/lib/jdt/generator/templates/{dummy_html.erb → component/dummy_html.erb} +0 -0
- data/lib/jdt/generator/templates/{entry.erb → component/entry.erb} +0 -0
- data/lib/jdt/generator/templates/library/CHANGELOG.erb +0 -0
- data/lib/jdt/generator/templates/library/README.erb +7 -0
- data/lib/jdt/generator/templates/library/entry.php.erb +4 -0
- data/lib/jdt/generator/templates/library/manifest.xml.erb +32 -0
- data/lib/jdt/generator.rb +7 -1
- data/lib/jdt/manifest/build.rb +57 -15
- data/lib/jdt/manifest/find.rb +23 -4
- data/lib/jdt/manifest/secure.rb +3 -27
- data/lib/jdt/manifest/xslts/pretty_print.xsl +7 -43
- data/lib/jdt/util.rb +4 -0
- data/lib/jdt/version.rb +1 -1
- data/lib/jdt/xampp.rb +109 -0
- metadata +47 -23
- data/lib/jdt/generator/templates/manifest.xml.erb +0 -59
- data/lib/jdt/generator/templates/script.php.erb +0 -66
- data/lib/not_yet_added/xampp.rb +0 -82
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -2,29 +2,32 @@ PATH
|
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
4
|
jdt (0.0.2)
|
5
|
+
launchy
|
5
6
|
nokogiri
|
6
7
|
rubyzip
|
7
|
-
thor
|
8
|
+
thor (= 0.15.0.rc2)
|
8
9
|
|
9
10
|
GEM
|
10
11
|
remote: http://rubygems.org/
|
11
12
|
specs:
|
13
|
+
addressable (2.2.6)
|
12
14
|
aruba (0.4.6)
|
13
15
|
bcat (>= 0.6.1)
|
14
16
|
childprocess (>= 0.2.0)
|
15
17
|
cucumber (>= 1.0.2)
|
18
|
+
rdiscount (>= 1.6.8)
|
16
19
|
rspec (>= 2.6.0)
|
17
20
|
bcat (0.6.1)
|
18
21
|
rack (~> 1.0)
|
19
22
|
builder (3.0.0)
|
20
23
|
childprocess (0.2.2)
|
21
24
|
ffi (~> 1.0.6)
|
22
|
-
cucumber (1.0.
|
25
|
+
cucumber (1.0.3)
|
23
26
|
builder (>= 2.1.2)
|
24
27
|
diff-lcs (>= 1.1.2)
|
25
|
-
gherkin (~> 2.4.
|
28
|
+
gherkin (~> 2.4.18)
|
26
29
|
json (>= 1.4.6)
|
27
|
-
term-ansicolor (>= 1.0.
|
30
|
+
term-ansicolor (>= 1.0.6)
|
28
31
|
diff-lcs (1.1.3)
|
29
32
|
ffi (1.0.9-java)
|
30
33
|
ffi (1.0.9-x86-mingw32)
|
@@ -34,10 +37,13 @@ GEM
|
|
34
37
|
json (>= 1.4.6)
|
35
38
|
json (1.5.4)
|
36
39
|
json (1.5.4-java)
|
40
|
+
launchy (2.0.5)
|
41
|
+
addressable (~> 2.2.6)
|
37
42
|
nokogiri (1.5.0-java)
|
38
43
|
nokogiri (1.5.0-x86-mingw32)
|
39
44
|
rack (1.3.2)
|
40
45
|
rake (0.9.2)
|
46
|
+
rdiscount (1.6.8)
|
41
47
|
rspec (2.6.0)
|
42
48
|
rspec-core (~> 2.6.0)
|
43
49
|
rspec-expectations (~> 2.6.0)
|
@@ -48,7 +54,7 @@ GEM
|
|
48
54
|
rspec-mocks (2.6.0)
|
49
55
|
rubyzip (0.9.4)
|
50
56
|
term-ansicolor (1.0.6)
|
51
|
-
thor (0.
|
57
|
+
thor (0.15.0.rc2)
|
52
58
|
|
53
59
|
PLATFORMS
|
54
60
|
java
|
data/bin/jdt
CHANGED
@@ -1,16 +1,3 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
#
|
5
|
-
# The application 'jdt' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('jdt', 'jdt')
|
1
|
+
require "rubygems"
|
2
|
+
require "jdt/cli"
|
3
|
+
Jdt::CLI.start
|
data/cucumber.yml
ADDED
File without changes
|
@@ -0,0 +1,19 @@
|
|
1
|
+
@wip
|
2
|
+
Feature: find the manifest file
|
3
|
+
|
4
|
+
Scenario Outline: Not within an extension
|
5
|
+
Given the current directory is no extension directory
|
6
|
+
When I run `jdt.bat <status>`
|
7
|
+
Then the output should contain exactly "No manifest found\n"
|
8
|
+
|
9
|
+
Examples:
|
10
|
+
| status |
|
11
|
+
| status |
|
12
|
+
| clean |
|
13
|
+
| build |
|
14
|
+
| release |
|
15
|
+
| manifest |
|
16
|
+
| validate |
|
17
|
+
| secure |
|
18
|
+
| bump |
|
19
|
+
| install |
|
data/features/manifest.feature
CHANGED
@@ -1,25 +1,23 @@
|
|
1
1
|
Feature: Manifest
|
2
2
|
|
3
|
-
Scenario: Not within an extension
|
4
|
-
Given the current directory is no extension directory
|
5
|
-
When I run `jdt.bat manifest`
|
6
|
-
Then the output should contain exactly "No manifest found\n"
|
7
|
-
|
8
3
|
Scenario: Success
|
9
4
|
Given a file named "manifest.xml" with:
|
10
|
-
|
11
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
5
|
+
"""
|
6
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
7
|
+
|
8
|
+
<extension type="library" version="1.7.0" method="upgrade">
|
9
|
+
<name>activerecord</name>
|
10
|
+
|
11
|
+
<version>1.0.0</version>
|
12
|
+
</extension>
|
13
|
+
"""
|
17
14
|
When I run `jdt.bat manifest`
|
18
15
|
Then the output should contain exactly:
|
19
|
-
"""
|
20
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
21
|
-
<extension
|
22
|
-
|
23
|
-
|
24
|
-
</extension>
|
25
|
-
|
16
|
+
"""
|
17
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
18
|
+
<extension type="library" version="1.7.0" method="upgrade">
|
19
|
+
<name>activerecord</name>
|
20
|
+
<version>1.0.0</version>
|
21
|
+
</extension>
|
22
|
+
|
23
|
+
"""
|
data/features/new.feature
CHANGED
@@ -1,97 +1,12 @@
|
|
1
1
|
Feature: new
|
2
2
|
|
3
|
+
@wip
|
3
4
|
Scenario: Create library
|
4
|
-
When I run `jdt new library test`
|
5
|
-
Then
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
<libraryname>test</libraryname>
|
13
|
-
|
14
|
-
</extension>
|
15
|
-
"""
|
16
|
-
And a file named "test/test.php" with:
|
17
|
-
"""
|
18
|
-
|
19
|
-
"""
|
20
|
-
|
21
|
-
Scenario: Create plugin
|
22
|
-
When I run `jdt new plugin test`
|
23
|
-
Then a directory named "plg_test" should exist
|
24
|
-
And a file named "test/manifest.xml" with:
|
25
|
-
"""
|
26
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
27
|
-
<extension method="upgrade" type="library" version="1.7.0">
|
28
|
-
<name>test</name>
|
29
|
-
<version>0.0.1</version>
|
30
|
-
<libraryname>test</libraryname>
|
31
|
-
|
32
|
-
</extension>
|
33
|
-
"""
|
34
|
-
And a file named "test/test.php" with:
|
35
|
-
"""
|
36
|
-
|
37
|
-
"""
|
38
|
-
|
39
|
-
Scenario: Create template
|
40
|
-
When I run `jdt new template test`
|
41
|
-
Then a directory named "tpl_test" should exist
|
42
|
-
And a file named "tpl_test/manifest.xml" with:
|
43
|
-
"""
|
44
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
45
|
-
<extension method="upgrade" type="template" version="1.7.0">
|
46
|
-
<name>test</name>
|
47
|
-
<version>0.0.1</version>
|
48
|
-
</extension>
|
49
|
-
"""
|
50
|
-
|
51
|
-
Scenario: Create language
|
52
|
-
When I run `jdt new language test`
|
53
|
-
Then a directory named "lang_test" should exist
|
54
|
-
And a file named "lang_test/manifest.xml" with:
|
55
|
-
"""
|
56
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
57
|
-
<extension method="upgrade" type="language" version="1.7.0">
|
58
|
-
<name>test</name>
|
59
|
-
<version>0.0.1</version>
|
60
|
-
</extension>
|
61
|
-
"""
|
62
|
-
|
63
|
-
Scenario: Create module
|
64
|
-
When I run `jdt new module test`
|
65
|
-
Then a directory named "mod_test" should exist
|
66
|
-
And a file named "mod_test/manifest.xml" with:
|
67
|
-
"""
|
68
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
69
|
-
<extension method="upgrade" type="module" version="1.7.0">
|
70
|
-
<name>test</name>
|
71
|
-
<version>0.0.1</version>
|
72
|
-
</extension>
|
73
|
-
"""
|
74
|
-
|
75
|
-
Scenario: Create component
|
76
|
-
When I run `jdt new component test`
|
77
|
-
Then a directory named "com_test" should exist
|
78
|
-
And a file named "com_test/manifest.xml" with:
|
79
|
-
"""
|
80
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
81
|
-
<extension method="upgrade" type="module" version="1.7.0">
|
82
|
-
<name>test</name>
|
83
|
-
<version>0.0.1</version>
|
84
|
-
</extension>
|
85
|
-
"""
|
86
|
-
|
87
|
-
Scenario: Create package
|
88
|
-
When I run `jdt new package test`
|
89
|
-
Then a directory named "pkg_test" should exist
|
90
|
-
And a file named "pkg_test/manifest.xml" with:
|
91
|
-
"""
|
92
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
93
|
-
<extension method="upgrade" type="package" version="1.7.0">
|
94
|
-
<name>test</name>
|
95
|
-
<version>0.0.1</version>
|
96
|
-
</extension>
|
97
|
-
"""
|
5
|
+
When I successfully run `jdt.bat new library test`
|
6
|
+
Then the following directories should exist:
|
7
|
+
| lib_test |
|
8
|
+
| lib_test/lib |
|
9
|
+
And the following files should exist:
|
10
|
+
| lib_test/README |
|
11
|
+
| lib_test/CHANGELOG |
|
12
|
+
| lib_test/test.php |
|
data/features/release.feature
CHANGED
@@ -3,13 +3,6 @@ Feature: release
|
|
3
3
|
In order to obtain a deployable zip file of the extension
|
4
4
|
I as a CLI
|
5
5
|
|
6
|
-
|
7
|
-
Scenario: Not within an extension
|
8
|
-
Given the current directory is no extension directory
|
9
|
-
When I run `jdt.bat release`
|
10
|
-
Then the output should contain exactly "No manifest found\n"
|
11
|
-
|
12
|
-
|
13
6
|
Scenario: Success
|
14
7
|
Given a file named "manifest.xml" with:
|
15
8
|
"""
|
data/features/status.feature
CHANGED
@@ -4,19 +4,56 @@ Feature: Status
|
|
4
4
|
As a CLI
|
5
5
|
I want to obtain the name, type and version of the extension
|
6
6
|
|
7
|
-
Scenario: Not within an extension
|
8
|
-
Given the current directory is no extension directory
|
9
|
-
When I run `jdt.bat status`
|
10
|
-
Then the output should contain exactly "No manifest found\n"
|
11
|
-
|
12
7
|
Scenario: Status success
|
13
8
|
Given a file named "manifest.xml" with:
|
14
9
|
"""
|
15
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
16
|
-
<extension type="library" version="1.7.0" method="upgrade">
|
17
|
-
|
18
|
-
|
19
|
-
</extension>
|
10
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
11
|
+
<extension type="library" version="1.7.0" method="upgrade">
|
12
|
+
<name>activerecord</name>
|
13
|
+
<version>1.0.0</version>
|
14
|
+
</extension>
|
15
|
+
"""
|
16
|
+
When I run `jdt.bat status`
|
17
|
+
Then the output should contain exactly "Extension lib_activerecord-v1.0.0\n"
|
18
|
+
|
19
|
+
Scenario: Manifest found in directory named after itself with underscore
|
20
|
+
Given a directory named "lib_test"
|
21
|
+
And a file named "lib_test/test.xml" with:
|
22
|
+
"""
|
23
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
24
|
+
<extension type="library" version="1.7.0" method="upgrade">
|
25
|
+
<name>activerecord</name>
|
26
|
+
<version>1.0.0</version>
|
27
|
+
</extension>
|
28
|
+
"""
|
29
|
+
And I cd to "lib_test"
|
30
|
+
When I run `jdt.bat status`
|
31
|
+
Then the output should contain exactly "Extension lib_activerecord-v1.0.0\n"
|
32
|
+
|
33
|
+
Scenario: Manifest found in directory named after itself with underscore
|
34
|
+
Given a directory named "test"
|
35
|
+
And a file named "test/test.xml" with:
|
36
|
+
"""
|
37
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
38
|
+
<extension type="library" version="1.7.0" method="upgrade">
|
39
|
+
<name>activerecord</name>
|
40
|
+
<version>1.0.0</version>
|
41
|
+
</extension>
|
42
|
+
"""
|
43
|
+
And I cd to "test"
|
44
|
+
When I run `jdt.bat status`
|
45
|
+
Then the output should contain exactly "Extension lib_activerecord-v1.0.0\n"
|
46
|
+
|
47
|
+
Scenario: Manifest found in sub directory
|
48
|
+
Given a directory named "lib_test/subdir"
|
49
|
+
And a file named "lib_test/test.xml" with:
|
50
|
+
"""
|
51
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
52
|
+
<extension type="library" version="1.7.0" method="upgrade">
|
53
|
+
<name>activerecord</name>
|
54
|
+
<version>1.0.0</version>
|
55
|
+
</extension>
|
20
56
|
"""
|
57
|
+
And I cd to "lib_test/subdir"
|
21
58
|
When I run `jdt.bat status`
|
22
59
|
Then the output should contain exactly "Extension lib_activerecord-v1.0.0\n"
|
data/jdt.gemspec
CHANGED
@@ -17,8 +17,9 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.require_paths = ["lib"]
|
18
18
|
|
19
19
|
s.add_dependency "nokogiri"
|
20
|
-
s.add_dependency "thor"
|
20
|
+
s.add_dependency "thor","0.15.0.rc2"
|
21
21
|
s.add_dependency "rubyzip"
|
22
|
+
s.add_dependency "launchy"
|
22
23
|
s.add_development_dependency "rspec"
|
23
24
|
s.add_development_dependency "cucumber"
|
24
25
|
s.add_development_dependency "aruba"
|
data/lib/jdt/cli.rb
CHANGED
@@ -5,13 +5,14 @@ require "jdt/commands/bump"
|
|
5
5
|
require "jdt/commands/install"
|
6
6
|
require "jdt/commands/new"
|
7
7
|
require "jdt/commands/pretty_print"
|
8
|
-
|
8
|
+
require "jdt/commands/secure"
|
9
9
|
require "jdt/commands/status"
|
10
10
|
require "jdt/commands/validate"
|
11
11
|
require "jdt/commands/version"
|
12
12
|
|
13
13
|
require "jdt/manifest"
|
14
14
|
require "jdt/generator"
|
15
|
+
require "jdt/xampp"
|
15
16
|
|
16
17
|
module Jdt
|
17
18
|
|
data/lib/jdt/commands/build.rb
CHANGED
@@ -23,6 +23,16 @@ module Jdt
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
+
desc "clean","removes the /zip directory"
|
27
|
+
method_options :location => "."
|
28
|
+
|
29
|
+
def clean
|
30
|
+
handle_errors do
|
31
|
+
Manifest.find(options[:location]).clean
|
32
|
+
say "Everything is cleaned!"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
26
36
|
end
|
27
37
|
|
28
38
|
end
|
data/lib/jdt/commands/new.rb
CHANGED
@@ -1,31 +1,53 @@
|
|
1
1
|
require 'thor'
|
2
|
+
require 'thor/group'
|
2
3
|
require 'nokogiri'
|
3
4
|
|
4
5
|
module Jdt
|
5
6
|
|
6
|
-
class
|
7
|
-
|
7
|
+
class GeneratorCLI < Thor
|
8
|
+
|
9
|
+
desc "component NAME", "generate component with NAME"
|
10
|
+
|
11
|
+
def component(name)
|
12
|
+
ComponentGenerator.new.generate(name)
|
13
|
+
end
|
14
|
+
|
15
|
+
desc "module NAME", "generate module with NAME"
|
16
|
+
|
17
|
+
def module(name)
|
18
|
+
ModuleGenerator.new.generate(name)
|
19
|
+
end
|
20
|
+
|
21
|
+
desc "plugin NAME", "generate plugin with NAME"
|
22
|
+
|
23
|
+
def plugin(name)
|
24
|
+
PluginGenerator.new.generate(name)
|
25
|
+
end
|
8
26
|
|
9
|
-
desc "
|
10
|
-
method_options :location => "."
|
27
|
+
desc "language NAME", "generate language with NAME"
|
11
28
|
|
12
|
-
def
|
29
|
+
def language(name)
|
30
|
+
LanguageGenerator.new.generate(name)
|
31
|
+
end
|
13
32
|
|
14
|
-
|
33
|
+
desc "template NAME", "generate template with NAME"
|
15
34
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
generator.generate
|
20
|
-
rescue Jdt::ExtensionTypeNotFoundError
|
21
|
-
say("Given type is no Joomla extension type. Chose one of the available Joomla extension types:")
|
22
|
-
say("Extension types: #{Generator::GENERATORS.join(" ")}")
|
23
|
-
end
|
35
|
+
def template(name)
|
36
|
+
TemplateGenerator.new.generate(name)
|
37
|
+
end
|
24
38
|
|
25
|
-
|
26
|
-
|
39
|
+
desc "library NAME", "generate library with NAME"
|
40
|
+
|
41
|
+
def library(name)
|
42
|
+
LibraryGenerator.new.generate(name)
|
27
43
|
end
|
28
44
|
|
29
45
|
end
|
30
46
|
|
47
|
+
class CLI < Thor
|
48
|
+
register Jdt::GeneratorCLI, :new, "new <command>", "Commands for new extensions"
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
|
31
53
|
end
|
data/lib/jdt/config.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
require "fileutils"
|
2
|
+
|
3
|
+
module Jdt
|
4
|
+
|
5
|
+
class Config
|
6
|
+
|
7
|
+
def initialize(file)
|
8
|
+
|
9
|
+
# ensure that folder exists
|
10
|
+
if (not File.exists?(directory))
|
11
|
+
FileUtils.makedirs(directory)
|
12
|
+
end
|
13
|
+
|
14
|
+
@file = file
|
15
|
+
|
16
|
+
# ensure that file exist
|
17
|
+
if (not File.exists?(yaml_file))
|
18
|
+
File.open(yaml_file, "w") do |f|
|
19
|
+
f << "\#YAML file for storing configuration information"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def directory
|
25
|
+
"#{ENV['HOME']}/.jdt"
|
26
|
+
end
|
27
|
+
|
28
|
+
def yaml_file
|
29
|
+
"#{directory}/#{@file}"
|
30
|
+
end
|
31
|
+
|
32
|
+
def yaml_props
|
33
|
+
props = YAML.load_file(yaml_file)
|
34
|
+
if (props)
|
35
|
+
props
|
36
|
+
else
|
37
|
+
Hash.new
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def update
|
42
|
+
# read
|
43
|
+
props = yaml_props
|
44
|
+
|
45
|
+
# change
|
46
|
+
yield props
|
47
|
+
|
48
|
+
# write
|
49
|
+
File.open(yaml_file, "w") do |f|
|
50
|
+
f << props.to_yaml
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
class XamppConfig
|
57
|
+
|
58
|
+
def initialize
|
59
|
+
@yaml = Config.new("xampp.yml")
|
60
|
+
end
|
61
|
+
|
62
|
+
def xampp_path=(path)
|
63
|
+
@yaml.update do |props|
|
64
|
+
props["path"] = path
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def xampp_path
|
69
|
+
@yaml.yaml_props["path"]
|
70
|
+
end
|
71
|
+
|
72
|
+
def htdocs_path
|
73
|
+
File.join(xampp_path,"htdocs")
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
module Jdt
|
2
|
+
|
3
|
+
class ComponentGenerator < Generator
|
4
|
+
|
5
|
+
def generate(name)
|
6
|
+
super
|
7
|
+
|
8
|
+
view_name = "#{name}"
|
9
|
+
|
10
|
+
empty_directory("#{folder}")
|
11
|
+
template('templates/component/manifest.xml.erb', "#{folder}/manifest.xml")
|
12
|
+
template('templates/component/script.php.erb', "#{folder}/script.php")
|
13
|
+
|
14
|
+
# site
|
15
|
+
site_dir = "#{folder}/site"
|
16
|
+
empty_directory("#{site_dir}")
|
17
|
+
template('templates/component/site/com_name.php.erb', "#{site_dir}/#{prefixed_name}.php")
|
18
|
+
template('templates/component/site/controller.php.erb', "#{site_dir}/controller.php")
|
19
|
+
|
20
|
+
#site view
|
21
|
+
empty_directory("#{site_dir}/views/")
|
22
|
+
empty_directory("#{site_dir}/views/#{view_name}")
|
23
|
+
template('templates/component/site/views/view_name/view.html.erb', "#{site_dir}/views/#{view_name}/view.html.php")
|
24
|
+
empty_directory("#{site_dir}/views/#{view_name}/tmpl")
|
25
|
+
template('templates/component/site/views/view_name/tmpl/default.php.erb', "#{site_dir}/views/#{view_name}/tmpl/default.php")
|
26
|
+
template('templates/component/site/views/view_name/tmpl/default.xml.erb', "#{site_dir}/views/#{view_name}/tmpl/default.xml")
|
27
|
+
|
28
|
+
#site models
|
29
|
+
empty_directory("#{site_dir}/models/")
|
30
|
+
template('templates/component/site/models/com_model_name.erb', "#{site_dir}/models/com_#{name}.php")
|
31
|
+
|
32
|
+
#site controllers
|
33
|
+
empty_directory("#{site_dir}/controllers/")
|
34
|
+
|
35
|
+
#site language
|
36
|
+
empty_directory("#{site_dir}/language/")
|
37
|
+
empty_directory("#{site_dir}/language/en-GB/")
|
38
|
+
empty_directory("#{site_dir}/language/de-DE/")
|
39
|
+
|
40
|
+
# admin
|
41
|
+
admin_dir = "#{folder}/admin"
|
42
|
+
empty_directory("#{admin_dir}")
|
43
|
+
template('templates/component/admin/access.xml.erb', "#{admin_dir}/access.xml")
|
44
|
+
template('templates/component/admin/config.xml.erb', "#{admin_dir}/config.xml")
|
45
|
+
template('templates/component/admin/com_name.php.erb', "#{admin_dir}/com_#{name}.php")
|
46
|
+
template('templates/component/admin/controller.php.erb', "#{admin_dir}/controller.php")
|
47
|
+
|
48
|
+
#admin views
|
49
|
+
empty_directory("#{admin_dir}/views/")
|
50
|
+
empty_directory("#{admin_dir}/views/#{view_name}")
|
51
|
+
template('templates/component/admin/views/view_name/view.html.erb', "#{admin_dir}/views/#{view_name}/view.html.php")
|
52
|
+
empty_directory("#{admin_dir}/views/#{view_name}/tmpl")
|
53
|
+
template('templates/component/admin/views/view_name/tmpl/default.php.erb', "#{admin_dir}/views/#{view_name}/tmpl/default.php")
|
54
|
+
|
55
|
+
#admin models
|
56
|
+
empty_directory("#{admin_dir}/models/")
|
57
|
+
empty_directory("#{admin_dir}/models/forms/")
|
58
|
+
empty_directory("#{admin_dir}/models/rules/")
|
59
|
+
empty_directory("#{admin_dir}/models/fields/")
|
60
|
+
|
61
|
+
#admin controllers
|
62
|
+
empty_directory("#{admin_dir}/controllers/")
|
63
|
+
|
64
|
+
#admin helpers
|
65
|
+
empty_directory("#{admin_dir}/helpers/")
|
66
|
+
|
67
|
+
#admin tables
|
68
|
+
empty_directory("#{admin_dir}/tables/")
|
69
|
+
|
70
|
+
#admin language
|
71
|
+
empty_directory("#{admin_dir}/language/")
|
72
|
+
empty_directory("#{admin_dir}/language/en-GB/")
|
73
|
+
empty_directory("#{admin_dir}/language/de-DE/")
|
74
|
+
|
75
|
+
#admin sql
|
76
|
+
empty_directory("#{admin_dir}/sql/")
|
77
|
+
empty_directory("#{admin_dir}/sql/updates/")
|
78
|
+
|
79
|
+
end
|
80
|
+
|
81
|
+
no_tasks {
|
82
|
+
def type
|
83
|
+
"component"
|
84
|
+
end
|
85
|
+
|
86
|
+
def type_short
|
87
|
+
"com"
|
88
|
+
end
|
89
|
+
}
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|