jdt 0.0.2 → 0.0.3
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/.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
|