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.
Files changed (43) hide show
  1. data/.gitignore +1 -0
  2. data/Gemfile.lock +11 -5
  3. data/bin/jdt +3 -16
  4. data/cucumber.yml +0 -0
  5. data/features/clean.feature +2 -0
  6. data/features/find.feature +19 -0
  7. data/features/manifest.feature +17 -19
  8. data/features/new.feature +9 -94
  9. data/features/release.feature +0 -7
  10. data/features/status.feature +47 -10
  11. data/jdt.gemspec +2 -1
  12. data/lib/jdt/cli.rb +2 -1
  13. data/lib/jdt/commands/build.rb +10 -0
  14. data/lib/jdt/commands/new.rb +38 -16
  15. data/lib/jdt/config.rb +77 -0
  16. data/lib/jdt/generator/component_generator.rb +92 -0
  17. data/lib/jdt/generator/generator.rb +23 -232
  18. data/lib/jdt/generator/language_generator.rb +21 -0
  19. data/lib/jdt/generator/library_generator.rb +29 -0
  20. data/lib/jdt/generator/module_generator.rb +29 -0
  21. data/lib/jdt/generator/plugin_generator.rb +24 -0
  22. data/lib/jdt/generator/template_generator.rb +25 -0
  23. data/lib/jdt/generator/templates/{access.xml.erb → component/access.xml.erb} +0 -0
  24. data/lib/jdt/generator/templates/{config.xml.erb → component/config.xml.erb} +0 -0
  25. data/lib/jdt/generator/templates/{controller.php.erb → component/controller.php.erb} +0 -0
  26. data/lib/jdt/generator/templates/{dummy_html.erb → component/dummy_html.erb} +0 -0
  27. data/lib/jdt/generator/templates/{entry.erb → component/entry.erb} +0 -0
  28. data/lib/jdt/generator/templates/library/CHANGELOG.erb +0 -0
  29. data/lib/jdt/generator/templates/library/README.erb +7 -0
  30. data/lib/jdt/generator/templates/library/entry.php.erb +4 -0
  31. data/lib/jdt/generator/templates/library/manifest.xml.erb +32 -0
  32. data/lib/jdt/generator.rb +7 -1
  33. data/lib/jdt/manifest/build.rb +57 -15
  34. data/lib/jdt/manifest/find.rb +23 -4
  35. data/lib/jdt/manifest/secure.rb +3 -27
  36. data/lib/jdt/manifest/xslts/pretty_print.xsl +7 -43
  37. data/lib/jdt/util.rb +4 -0
  38. data/lib/jdt/version.rb +1 -1
  39. data/lib/jdt/xampp.rb +109 -0
  40. metadata +47 -23
  41. data/lib/jdt/generator/templates/manifest.xml.erb +0 -59
  42. data/lib/jdt/generator/templates/script.php.erb +0 -66
  43. data/lib/not_yet_added/xampp.rb +0 -82
@@ -1,46 +1,10 @@
1
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
2
- <xsl:output method="xml" encoding="ISO-8859-1"/>
3
- <xsl:param name="indent-increment" select="' '"/>
1
+ <xsl:stylesheet version="1.0"
2
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3
+ <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
4
4
 
5
- <xsl:template name="newline">
6
- <xsl:text disable-output-escaping="yes">
7
- </xsl:text>
5
+ <xsl:strip-space elements="*"/>
6
+ <xsl:template match="/">
7
+ <xsl:copy-of select="."/>
8
8
  </xsl:template>
9
9
 
10
- <xsl:template match="comment() | processing-instruction()">
11
- <xsl:param name="indent" select="''"/>
12
- <xsl:call-template name="newline"/>
13
- <xsl:value-of select="$indent"/>
14
- <xsl:copy/>
15
- </xsl:template>
16
-
17
- <xsl:template match="text()">
18
- <xsl:param name="indent" select="''"/>
19
- <xsl:call-template name="newline"/>
20
- <xsl:value-of select="$indent"/>
21
- <xsl:value-of select="normalize-space(.)"/>
22
- </xsl:template>
23
-
24
- <xsl:template match="text()[normalize-space(.)='']"/>
25
-
26
- <xsl:template match="*">
27
- <xsl:param name="indent" select="''"/>
28
- <xsl:call-template name="newline"/>
29
- <xsl:value-of select="$indent"/>
30
- <xsl:choose>
31
- <xsl:when test="count(child::*) > 0">
32
- <xsl:copy>
33
- <xsl:copy-of select="@*"/>
34
- <xsl:apply-templates select="*|text()">
35
- <xsl:with-param name="indent" select="concat ($indent, $indent-increment)"/>
36
- </xsl:apply-templates>
37
- <xsl:call-template name="newline"/>
38
- <xsl:value-of select="$indent"/>
39
- </xsl:copy>
40
- </xsl:when>
41
- <xsl:otherwise>
42
- <xsl:copy-of select="."/>
43
- </xsl:otherwise>
44
- </xsl:choose>
45
- </xsl:template>
46
- </xsl:stylesheet>
10
+ </xsl:stylesheet>
data/lib/jdt/util.rb ADDED
@@ -0,0 +1,4 @@
1
+ module Jdt
2
+
3
+
4
+ end
data/lib/jdt/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Jdt
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/jdt/xampp.rb ADDED
@@ -0,0 +1,109 @@
1
+ require "thor"
2
+ require "thor/group"
3
+
4
+ require 'yaml'
5
+ require "launchy"
6
+
7
+ require "jdt/config"
8
+
9
+ require "tmpdir"
10
+ require "net/http"
11
+ require "zip/zip"
12
+ require "open-uri"
13
+
14
+ module Jdt
15
+
16
+ class Xampp < Thor
17
+ namespace :xampp
18
+
19
+ desc "configure", "configure server settings"
20
+
21
+ def configure
22
+ # get xampp path
23
+ xampp_path = ask("Enter fully qualified xampp path (default: C:\\xampp):")
24
+
25
+ # set xampp path default value if it has not been set
26
+ if (xampp_path == "")
27
+ xampp_path = "c:\\xampp"
28
+ end
29
+
30
+ # store it
31
+ XamppConfig.new.xampp_path = xampp_path
32
+ end
33
+
34
+ desc "php_ini", "show php.ini"
35
+ def php_ini
36
+ File.open("#{XamppConfig.new.xampp_path}/php/php.ini").each_line do |line|
37
+ puts line
38
+ end
39
+ end
40
+
41
+ desc "install_joomla", "install newest version of joomla"
42
+ method_options :joomla_zip_location => "http://joomlacode.org/gf/download/frsrelease/15278/66555/Joomla_1.7.0-Stable-Full_Package.zip"
43
+ method_options :joomla_path => "joomla"
44
+ def install_joomla
45
+ # setup paths
46
+ joomla_path = options[:joomla_path]
47
+ joomla_local_path = File.join(XamppConfig.new.htdocs_path, joomla_path)
48
+ joomla_remote_path = "http://localhost/#{joomla_path}"
49
+ joomla_zip_location = options[:joomla_zip_location]
50
+
51
+ # download and unzip
52
+ download_zip(joomla_zip_location, joomla_local_path)
53
+
54
+ # open url
55
+ Launchy.open(joomla_remote_path)
56
+ end
57
+
58
+ desc "path", "show path to xampp"
59
+ def path
60
+ puts "Path is #{XamppConfig.new.xampp_path}"
61
+ end
62
+
63
+ desc "phpmyadmin", "open phpmyadmin in browser"
64
+ def phpmyadmin
65
+ Launchy.open("http://localhost/phpMyAdmin")
66
+ end
67
+
68
+ desc "web", "open localhost in browser"
69
+ def web
70
+ link = "http://localhost/"
71
+ Launchy.open(link)
72
+ end
73
+
74
+ def self.banner(task, namespace = true, subcommand = false)
75
+ "#{basename} #{task.formatted_usage(self, true, subcommand)}"
76
+ end
77
+
78
+ no_tasks {
79
+ def download_zip(source, target)
80
+ open(source) do |zf|
81
+ #zf is an instance of class Tempfile
82
+
83
+ Zip::ZipFile.open(zf.path) do |zipfile|
84
+ #zipfile.class is Zip::ZipFile
85
+
86
+ zipfile.each do |e|
87
+ #e is an instance of Zip::ZipEntry
88
+
89
+ fpath = File.join(target, e.to_s)
90
+ FileUtils.mkdir_p(File.dirname(fpath))
91
+
92
+ #the block is for handling an existing file. returning true will overwrite the files.
93
+ zipfile.extract(e, fpath) { true }
94
+ end
95
+ end
96
+ end
97
+ end
98
+ }
99
+
100
+ end
101
+
102
+ class CLI < Thor
103
+ check_unknown_options!
104
+
105
+ register Xampp, :xampp, "xampp <command>", "XAMPP commands"
106
+ end
107
+
108
+
109
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jdt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-09-06 00:00:00.000000000Z
13
+ date: 2011-09-08 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
17
- requirement: &27149088 !ruby/object:Gem::Requirement
17
+ requirement: &27027408 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,21 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *27149088
25
+ version_requirements: *27027408
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: thor
28
- requirement: &27148788 !ruby/object:Gem::Requirement
28
+ requirement: &27027060 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - =
32
+ - !ruby/object:Gem::Version
33
+ version: 0.15.0.rc2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *27027060
37
+ - !ruby/object:Gem::Dependency
38
+ name: rubyzip
39
+ requirement: &27026784 !ruby/object:Gem::Requirement
29
40
  none: false
30
41
  requirements:
31
42
  - - ! '>='
@@ -33,10 +44,10 @@ dependencies:
33
44
  version: '0'
34
45
  type: :runtime
35
46
  prerelease: false
36
- version_requirements: *27148788
47
+ version_requirements: *27026784
37
48
  - !ruby/object:Gem::Dependency
38
- name: rubyzip
39
- requirement: &27148500 !ruby/object:Gem::Requirement
49
+ name: launchy
50
+ requirement: &27026448 !ruby/object:Gem::Requirement
40
51
  none: false
41
52
  requirements:
42
53
  - - ! '>='
@@ -44,10 +55,10 @@ dependencies:
44
55
  version: '0'
45
56
  type: :runtime
46
57
  prerelease: false
47
- version_requirements: *27148500
58
+ version_requirements: *27026448
48
59
  - !ruby/object:Gem::Dependency
49
60
  name: rspec
50
- requirement: &27148188 !ruby/object:Gem::Requirement
61
+ requirement: &27026148 !ruby/object:Gem::Requirement
51
62
  none: false
52
63
  requirements:
53
64
  - - ! '>='
@@ -55,10 +66,10 @@ dependencies:
55
66
  version: '0'
56
67
  type: :development
57
68
  prerelease: false
58
- version_requirements: *27148188
69
+ version_requirements: *27026148
59
70
  - !ruby/object:Gem::Dependency
60
71
  name: cucumber
61
- requirement: &27147912 !ruby/object:Gem::Requirement
72
+ requirement: &27025848 !ruby/object:Gem::Requirement
62
73
  none: false
63
74
  requirements:
64
75
  - - ! '>='
@@ -66,10 +77,10 @@ dependencies:
66
77
  version: '0'
67
78
  type: :development
68
79
  prerelease: false
69
- version_requirements: *27147912
80
+ version_requirements: *27025848
70
81
  - !ruby/object:Gem::Dependency
71
82
  name: aruba
72
- requirement: &27147648 !ruby/object:Gem::Requirement
83
+ requirement: &27025548 !ruby/object:Gem::Requirement
73
84
  none: false
74
85
  requirements:
75
86
  - - ! '>='
@@ -77,7 +88,7 @@ dependencies:
77
88
  version: '0'
78
89
  type: :development
79
90
  prerelease: false
80
- version_requirements: *27147648
91
+ version_requirements: *27025548
81
92
  description: ! 'A command line tool to help developing Joomla Extensions. '
82
93
  email:
83
94
  - simon.harrer@feki.de
@@ -96,7 +107,10 @@ files:
96
107
  - README.md
97
108
  - Rakefile
98
109
  - bin/jdt
110
+ - cucumber.yml
99
111
  - features/build.feature
112
+ - features/clean.feature
113
+ - features/find.feature
100
114
  - features/manifest.feature
101
115
  - features/new.feature
102
116
  - features/release.feature
@@ -118,15 +132,26 @@ files:
118
132
  - lib/jdt/commands/status.rb
119
133
  - lib/jdt/commands/validate.rb
120
134
  - lib/jdt/commands/version.rb
135
+ - lib/jdt/config.rb
121
136
  - lib/jdt/generator.rb
137
+ - lib/jdt/generator/component_generator.rb
122
138
  - lib/jdt/generator/generator.rb
123
- - lib/jdt/generator/templates/access.xml.erb
139
+ - lib/jdt/generator/language_generator.rb
140
+ - lib/jdt/generator/library_generator.rb
141
+ - lib/jdt/generator/module_generator.rb
142
+ - lib/jdt/generator/plugin_generator.rb
143
+ - lib/jdt/generator/template_generator.rb
144
+ - lib/jdt/generator/templates/component/access.xml.erb
124
145
  - lib/jdt/generator/templates/component/admin/access.xml.erb
125
146
  - lib/jdt/generator/templates/component/admin/com_name.erb
126
147
  - lib/jdt/generator/templates/component/admin/config.xml.erb
127
148
  - lib/jdt/generator/templates/component/admin/controller.erb
128
149
  - lib/jdt/generator/templates/component/admin/views/view_name/tmpl/default.erb
129
150
  - lib/jdt/generator/templates/component/admin/views/view_name/view.html.erb
151
+ - lib/jdt/generator/templates/component/config.xml.erb
152
+ - lib/jdt/generator/templates/component/controller.php.erb
153
+ - lib/jdt/generator/templates/component/dummy_html.erb
154
+ - lib/jdt/generator/templates/component/entry.erb
130
155
  - lib/jdt/generator/templates/component/index.html.erb
131
156
  - lib/jdt/generator/templates/component/manifest.xml.erb
132
157
  - lib/jdt/generator/templates/component/script.php.erb
@@ -136,18 +161,16 @@ files:
136
161
  - lib/jdt/generator/templates/component/site/views/view_name/tmpl/default.php.erb
137
162
  - lib/jdt/generator/templates/component/site/views/view_name/tmpl/default.xml.erb
138
163
  - lib/jdt/generator/templates/component/site/views/view_name/view.html.erb
139
- - lib/jdt/generator/templates/config.xml.erb
140
- - lib/jdt/generator/templates/controller.php.erb
141
- - lib/jdt/generator/templates/dummy_html.erb
142
- - lib/jdt/generator/templates/entry.erb
143
- - lib/jdt/generator/templates/manifest.xml.erb
164
+ - lib/jdt/generator/templates/library/CHANGELOG.erb
165
+ - lib/jdt/generator/templates/library/README.erb
166
+ - lib/jdt/generator/templates/library/entry.php.erb
167
+ - lib/jdt/generator/templates/library/manifest.xml.erb
144
168
  - lib/jdt/generator/templates/module/helper.php.erb
145
169
  - lib/jdt/generator/templates/module/manifest.xml.erb
146
170
  - lib/jdt/generator/templates/module/mod_name.php.erb
147
171
  - lib/jdt/generator/templates/module/tmpl/default.php.erb
148
172
  - lib/jdt/generator/templates/plugin/main.php.erb
149
173
  - lib/jdt/generator/templates/plugin/manifest.xml.erb
150
- - lib/jdt/generator/templates/script.php.erb
151
174
  - lib/jdt/manifest.rb
152
175
  - lib/jdt/manifest/attributes.rb
153
176
  - lib/jdt/manifest/build.rb
@@ -161,9 +184,10 @@ files:
161
184
  - lib/jdt/manifest/secure.rb
162
185
  - lib/jdt/manifest/validation.rb
163
186
  - lib/jdt/manifest/xslts/pretty_print.xsl
187
+ - lib/jdt/util.rb
164
188
  - lib/jdt/version.rb
189
+ - lib/jdt/xampp.rb
165
190
  - lib/not_yet_added/deploy.rb
166
- - lib/not_yet_added/xampp.rb
167
191
  - spec/jdt/generator/generator_spec.rb
168
192
  - spec/jdt/manifest/data/example_library/.gitignore
169
193
  - spec/jdt/manifest/data/example_library/ActiveRecord.php
@@ -1,59 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <install type="<%= @type %>" version="1.6.0">
3
-
4
- <name><%= @name %></name>
5
- <libraryname><%= @name %></libraryname>
6
- <version><%= @version %></version>
7
-
8
- <description>Contains php-activerecord 1.0 from http://www.phpactiverecord.org/</description>
9
-
10
- <creationDate>January 2011</creationDate>
11
-
12
- <author>Simon Harrer</author>
13
- <authorEmail>simon.harrer@feki.de</authorEmail>
14
- <authorUrl>http://www.feki.de/</authorUrl>
15
-
16
- <copyright>Feki.de e.V. (c)</copyright>
17
- <license>License Info</license>
18
-
19
-
20
- <!-- Runs on install/uninstall/update -->
21
- <scriptfile>script.php</scriptfile>
22
-
23
- <!-- Site Main File Copy Section -->
24
- <files folder="site">
25
- <filename><%= @name %>.php</filename>
26
- <filename>controller.php</filename>
27
- <folder>views</folder>
28
- <folder>models</folder>
29
- <folder>language</folder>
30
- </files>
31
-
32
-
33
- <administration>
34
-
35
- <!-- Admin Main File Copy Section -->
36
- <files folder="admin">
37
- <!-- Admin Main File Copy Section -->
38
- <filename>config.xml</filename>
39
- <filename>access.xml</filename>
40
-
41
- <filename><%= @name %>.php</filename>
42
- <filename>controller.php</filename>
43
- <!-- SQL files section -->
44
- <folder>sql</folder>
45
- <!-- tables files section -->
46
- <folder>tables</folder>
47
- <!-- models files section -->
48
- <folder>models</folder>
49
- <!-- views files section -->
50
- <folder>views</folder>
51
- <!-- controllers files section -->
52
- <folder>controllers</folder>
53
- <!-- helpers files section -->
54
- <folder>helpers</folder>
55
- </files>
56
- </administration>
57
-
58
-
59
- </install>
@@ -1,66 +0,0 @@
1
- <?php
2
- // No direct access to this file
3
- defined('_JEXEC') or die('Restricted access');
4
-
5
- /**
6
- * Script file of HelloWorld component
7
- */
8
- class com_helloWorldInstallerScript
9
- {
10
- /**
11
- * method to install the component
12
- *
13
- * @return void
14
- */
15
- function install($parent)
16
- {
17
- // $parent is the class calling this method
18
- $parent->getParent()->setRedirectURL('index.php?option=com_helloworld');
19
- }
20
-
21
- /**
22
- * method to uninstall the component
23
- *
24
- * @return void
25
- */
26
- function uninstall($parent)
27
- {
28
- // $parent is the class calling this method
29
- echo '<p>' . JText::_('COM_HELLOWORLD_UNINSTALL_TEXT') . '</p>';
30
- }
31
-
32
- /**
33
- * method to update the component
34
- *
35
- * @return void
36
- */
37
- function update($parent)
38
- {
39
- // $parent is the class calling this method
40
- echo '<p>' . JText::_('COM_HELLOWORLD_UPDATE_TEXT') . '</p>';
41
- }
42
-
43
- /**
44
- * method to run before an install/update/uninstall method
45
- *
46
- * @return void
47
- */
48
- function preflight($type, $parent)
49
- {
50
- // $parent is the class calling this method
51
- // $type is the type of change (install, update or discover_install)
52
- echo '<p>' . JText::_('COM_HELLOWORLD_PREFLIGHT_' . $type . '_TEXT') . '</p>';
53
- }
54
-
55
- /**
56
- * method to run after an install/update/uninstall method
57
- *
58
- * @return void
59
- */
60
- function postflight($type, $parent)
61
- {
62
- // $parent is the class calling this method
63
- // $type is the type of change (install, update or discover_install)
64
- echo '<p>' . JText::_('COM_HELLOWORLD_POSTFLIGHT_' . $type . '_TEXT') . '</p>';
65
- }
66
- }
@@ -1,82 +0,0 @@
1
- require 'thor'
2
-
3
- class Xampp < Thor
4
- include Thor::Actions
5
-
6
- desc "configure","configure server settings"
7
- def configure
8
-
9
- # TODO change to extension root directory
10
- config_file = ".jdt/config.xml"
11
-
12
- if(!File.exists?(config_file))
13
- # create config file
14
- create_file(config_file,"configuration file")
15
- end
16
-
17
- # get xampp path
18
- # TODO what is returned when nothing is entered
19
- xampp_path = ask("Enter fully qualified xampp path (default: C:\\xampp):")
20
-
21
- # set xampp path default value if it has not been set
22
- if(xampp_path == "")
23
- xampp_path = "c:\\xampp"
24
- end
25
-
26
- # store information
27
- file = File.open(config_file,"rw")
28
- Nokogiri::XML(file)
29
-
30
- file.close
31
-
32
-
33
-
34
- "xampp_path: #{xampp_path}"
35
-
36
- end
37
-
38
-
39
- desc "start_server","start apache and mysql server"
40
- def start_server
41
- system("cd #{Config::PATH}")
42
- system("#{Config::PATH}/apache_start.bat")
43
- system("#{Config::PATH}/mysql_start.bat")
44
- end
45
-
46
- desc "stop_server", "stops apache and mysql server"
47
- def stop_server
48
- system("#{Config::PATH}/apache_stop.bat")
49
- system("#{Config::PATH}/mysql_stop.bat")
50
- end
51
-
52
- desc "restart","restart apache and mysql server"
53
- def restart
54
- stop_server
55
- start_server
56
- end
57
-
58
- desc "php_ini","show php.ini"
59
- def php_ini
60
- File.open("#{Config::PATH}/php/php.ini").each_line do |line|
61
- puts line
62
- end
63
- end
64
-
65
- desc "path","show path to xampp"
66
- def path
67
- puts "Path is #{Config::PATH}"
68
- end
69
-
70
- =begin
71
- desc "phpmyadmin","open phpmyadmin in browser"
72
- def phpmyadmin
73
- system("#{Config::BROWSER} http://localhost/phpMyAdmin")
74
- end
75
-
76
- desc "web","open web in browser"
77
- def web
78
- system("#{Config::BROWSER} http://localhost/")
79
- end
80
- =end
81
-
82
- end