semillagen 0.0.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.
Files changed (56) hide show
  1. data/README.md +27 -0
  2. data/bin/semillagen +65 -0
  3. data/default_templates/class/default/classTemplate.as.tpl +22 -0
  4. data/default_templates/class/default/info.semilla +8 -0
  5. data/default_templates/class/default/testClassTemplate.as.tpl +30 -0
  6. data/default_templates/project/default/Gemfile +5 -0
  7. data/default_templates/project/default/Gemfile.lock +24 -0
  8. data/default_templates/project/default/MagicBox.as3proj +96 -0
  9. data/default_templates/project/default/lib/flexunit4/FlexUnit1Lib.swc +0 -0
  10. data/default_templates/project/default/lib/flexunit4/flexUnitTasks-4.1.0-8-javadoc.jar +0 -0
  11. data/default_templates/project/default/lib/flexunit4/flexUnitTasks-4.1.0-8-sources.jar +0 -0
  12. data/default_templates/project/default/lib/flexunit4/flexUnitTasks-4.1.0-8.jar +0 -0
  13. data/default_templates/project/default/lib/flexunit4/flexunit-4.1.0-8-as3_4.1.0.16076.swc +0 -0
  14. data/default_templates/project/default/lib/flexunit4/flexunit-cilistener-4.1.0-8-4.1.0.16076.swc +0 -0
  15. data/default_templates/project/default/lib/flexunit4/flexunit-uilistener-4.1.0-8-4.1.0.16076.swc +0 -0
  16. data/default_templates/project/default/lib/flexunit4/fluint-extensions-4.1.0-8-4.1.0.16076.swc +0 -0
  17. data/default_templates/project/default/lib/flexunit4/hamcrest-as3-flex-1.1.3.swc +0 -0
  18. data/default_templates/project/default/rakefile.rb +128 -0
  19. data/default_templates/project/default/src/MagicBox.as +104 -0
  20. data/default_templates/project/default/src/PlainButton.as +72 -0
  21. data/default_templates/project/default/src/transforms/LeetTransform.as +40 -0
  22. data/default_templates/project/default/src/transforms/LowerCaseTransform.as +22 -0
  23. data/default_templates/project/default/src/transforms/ReverseTransform.as +22 -0
  24. data/default_templates/project/default/src/transforms/SplitTransform.as +22 -0
  25. data/default_templates/project/default/src/transforms/UpperCaseTransform.as +22 -0
  26. data/default_templates/project/default/test-src/TestRunner.template +66 -0
  27. data/default_templates/project/default/test-src/TextFieldListener.as +66 -0
  28. data/default_templates/project/default/test-src/listeners/SemillaCIListener.as +389 -0
  29. data/default_templates/project/default/test-src/listeners/TraceListener.as +79 -0
  30. data/default_templates/project/default/test-src/transforms/LeetTransformTest.as +45 -0
  31. data/default_templates/project/default/test-src/transforms/LowerCaseTransformTest.as +44 -0
  32. data/default_templates/project/default/test-src/transforms/ReverseTransformTest.as +31 -0
  33. data/default_templates/project/default/test-src/transforms/SplitTransformTest.as +37 -0
  34. data/default_templates/project/default/test-src/transforms/UpperCaseTransformTest.as +45 -0
  35. data/doc/SemillaGen/TemplateItem.html +340 -0
  36. data/doc/SemillaGen.html +916 -0
  37. data/doc/_index.html +112 -0
  38. data/doc/class_list.html +47 -0
  39. data/doc/css/common.css +1 -0
  40. data/doc/css/full_list.css +55 -0
  41. data/doc/css/style.css +322 -0
  42. data/doc/file_list.html +46 -0
  43. data/doc/frames.html +13 -0
  44. data/doc/index.html +112 -0
  45. data/doc/js/app.js +205 -0
  46. data/doc/js/full_list.js +173 -0
  47. data/doc/js/jquery.js +16 -0
  48. data/doc/method_list.html +110 -0
  49. data/doc/top-level-namespace.html +105 -0
  50. data/lib/semillagen/generator.rb +248 -0
  51. data/lib/semillagen/utils.rb +40 -0
  52. data/lib/semillagen/version.rb +3 -0
  53. data/lib/semillagen.rb +33 -0
  54. data/rakefile.rb +39 -0
  55. data/semillagen.gemspec +76 -0
  56. metadata +136 -0
@@ -0,0 +1,248 @@
1
+ # encoding: utf-8
2
+
3
+
4
+ module SemillaGen
5
+
6
+ #Contains description information for a single template item.
7
+ # A class template can have more than one file in it, for example:
8
+ # a class definition and the test case definition for the class.
9
+ class TemplateItem
10
+ attr_accessor :target, :name_pattern, :source
11
+ end
12
+
13
+
14
+
15
+ # Generates items (Projects or Classes) using the specified
16
+ # template and name.
17
+ #
18
+ # @param [itemtype] The kind of item to create, ':class' or ':project'.
19
+ # @param [template] The name of the template to use.
20
+ # @param [name] The name of project or qualified class name to generate.
21
+ def self.generate(itemtype, template, name)
22
+
23
+ #find the template folder
24
+ template_folder = SemillaGen::findTemplate(itemtype, template)
25
+
26
+ raise "Template not found." if template_folder.nil?
27
+
28
+
29
+ if itemtype == :class
30
+ #When item is a class type
31
+
32
+ #Read the info.semilla file
33
+ files = SemillaGen::parseInfoFile File.join(template_folder, "info.semilla")
34
+ SemillaGen::generateFiles(template_folder, files, name)
35
+
36
+ elsif itemtype == :project
37
+ #when item is a project type
38
+
39
+ SemillaGen::generateProject(template_folder, name)
40
+ end
41
+ end
42
+
43
+
44
+
45
+ # Read a info.semilla file. This file contains
46
+ # a description of the files to create.
47
+ # Each line has the following format:
48
+ # filename_pattern : template_file => target_path
49
+ #
50
+ # filename_pattern = How the generated file should be named.
51
+ # template_file = The file whose contents will be used to generate the new file.
52
+ # Some keywords inside the text will be replaced
53
+ # (@@PACKAGE@@, @@NAME@@)
54
+ # target_path = The folder where the file should be created.
55
+ #
56
+ # @param [path] The path to the info.semilla file to read.
57
+ #
58
+ # @return [Array of TemplateItem] The collection of TemplateItem parsed.
59
+ def self.parseInfoFile(path)
60
+
61
+ files = {}
62
+
63
+ if File.exists? path
64
+ File.open(path, 'r') do |f|
65
+ while(line = f.gets)
66
+ line.strip! #Remove white space
67
+
68
+ next if line.start_with?("#") or line.empty? #Skip comments or blank lines
69
+
70
+ #Match "FILENAME => PATH"
71
+ line.match(/([@\w.\-]+)\s*:\s*([\w.\-]+\.tpl) => ([\w.\-\/]+)/) do |m|
72
+ nameFormat, sourceFile, targetPath = m.captures
73
+
74
+ item = SemillaGen::TemplateItem.new
75
+ item.target = targetPath
76
+ item.name_pattern = nameFormat
77
+ item.source = sourceFile
78
+
79
+ files[sourceFile] = item
80
+ end
81
+
82
+ end
83
+ end
84
+ end
85
+
86
+ return files
87
+
88
+ end
89
+
90
+
91
+
92
+ # Creates a directory hierarchy for the given directory path if the directories
93
+ # do not exist.
94
+ #
95
+ # @param [path] The path to create if it does not exist already.
96
+ def self.recursive_mkdir(path)
97
+ steps = path.split File::SEPARATOR
98
+
99
+ original_dir = Dir.pwd
100
+
101
+ steps.each do |s|
102
+ #Make dir if it does not exist
103
+ if !File.directory? s
104
+ Dir.mkdir s
105
+ #puts "mkdir #{s}"
106
+ end
107
+ Dir.chdir s
108
+ end
109
+
110
+ Dir.chdir original_dir
111
+
112
+ end
113
+
114
+
115
+
116
+ # Generates files for a class.
117
+ # @param [templateFolder] The folder where the template to be used is located.
118
+ # @param [fileList] The collection of TemplateItems to be generated.
119
+ # @param [qualifiedName] The qualified name of the class to be generated (includes namespaces)
120
+ def self.generateFiles(templateFolder, fileList, qualifiedName)
121
+ puts "Generating files for: #{qualifiedName}"
122
+
123
+ fileList.map do |key, item|
124
+ #puts "----------#{key}"
125
+
126
+ #Check that the sourceFile exists
127
+ source_full_path = File.absolute_path(File.join(templateFolder, item.source))
128
+ if File.exists? source_full_path
129
+ #Obtain namespaces
130
+ namespaces = qualifiedName.split '.' #Separate all the qualified name components
131
+ itemName = namespaces.last #the last component is the class name
132
+ namespaces = namespaces.take(namespaces.length-1) #The rest is the namespace (as array)
133
+ namespace_text = namespaces.join('.') #the namespace in ActionScript notation
134
+
135
+ #Append to the target path, the namespaces as folders
136
+ final_path = namespaces.unshift(item.target).join(File::SEPARATOR)
137
+ #Make sure the final_path directories exist
138
+ self.recursive_mkdir final_path
139
+
140
+ #Generate the new name
141
+ fileName = item.name_pattern.sub('@@', itemName)
142
+
143
+ #Read the source file
144
+ source_text = IO.read source_full_path
145
+
146
+ #Define the keywords to be replaced in the template
147
+ keywords = {}
148
+ keywords['@@PACKAGE@@'] = namespace_text
149
+ keywords['@@NAME@@'] = itemName
150
+ #Replace the keywords in the source text
151
+ keywords.each do |k,v|
152
+ source_text.gsub! k, v #use gsub to teplace all ocurrences
153
+ end
154
+ #Write out the file
155
+ outpath = File.join(final_path, fileName)
156
+ puts " => #{outpath}"
157
+ File.open(outpath, 'w') {|w| w << source_text}
158
+
159
+ else #The source file is not found but it was specified in the info.semilla file.
160
+ raise "Template file is missing: [#{item.source}]"
161
+ end
162
+
163
+ end
164
+
165
+ end
166
+
167
+ # Copies (while adjusting contents of files) files and directories recursively.
168
+ #
169
+ # @param [path] The path where the source files are read
170
+ # @param [target_path] The path where the new files will be copied to
171
+ # @param [options] Hash containing some settings for the file generation/adjustment
172
+ def self.recursiveCopyDir(path, target_path, options)
173
+ Dir.foreach path do |f|
174
+ #Skip hidden files, unless in 'allowedFiles' list
175
+ next if f.start_with?(".") and !options[:allowed_files].include?(f)
176
+
177
+ #The absolute path for the template file/dir
178
+ source_path = File.join path, f
179
+ #The name of the file/dir to generate
180
+ target_name = self.processText f, options
181
+ #The absolute path of the file/dir to generate
182
+ generate_path = File.join target_path, target_name
183
+
184
+ if File.directory?(source_path)
185
+ #Create the new dir
186
+ Dir.mkdir generate_path
187
+ puts "mkdir #{generate_path}"
188
+ self.recursiveCopyDir(source_path, generate_path, options)
189
+
190
+ else
191
+ #Copy the file to the new destination
192
+
193
+ # -> **Only process files whose extension is not in options[:dont_process_contents]
194
+ should_process = options[:dont_process_contents].index{|x| source_path.end_with? x}.nil?
195
+ if should_process
196
+ # -> Read file contents
197
+ fileContents = IO.read source_path
198
+ # -> Adjust project name in content
199
+ fileContents = self.processText fileContents, options
200
+ # -> Write file to destination path
201
+ puts "write #{generate_path} [E]" #The [E] at the end means that the file's contents were editted (ex: Project name replaced).
202
+ File.open(generate_path, 'w') {|w| w << fileContents}
203
+ else
204
+ #just copy the file as is
205
+ puts "write #{generate_path}"
206
+ `cp "#{source_path}" "#{generate_path}"`
207
+ end
208
+
209
+
210
+ end
211
+ end
212
+ end
213
+
214
+
215
+ # Replaces the DEFAULT_PROJECTNAME in the string to the one specified in options
216
+ #
217
+ # @param [text] The that will we processed
218
+ # @param [options] Hash array with the values to be used while processing the text
219
+ # @return [String]
220
+ def self.processText(text, options)
221
+ return text.gsub(SemillaGen::DEFAULT_PROJECTNAME, options[:project_name])
222
+ end
223
+
224
+ # Generates a project
225
+ #
226
+ # @param [templateFolder] The folder containing the project template to use
227
+ # @param [name] The name of the new project
228
+ def self.generateProject(templateFolder, name)
229
+ puts "Generating project [#{name}]"
230
+
231
+ #Create directory
232
+ Dir.mkdir name
233
+
234
+ options = {}
235
+ options[:project_name] = name
236
+ options[:allowed_files] = %w{.gitignore}
237
+ options[:dont_process_contents] = %w{.swc .swf .jar .exe .bin}
238
+
239
+ target_path = File.join(Dir.pwd, name)
240
+
241
+ self.recursiveCopyDir(templateFolder, target_path, options)
242
+
243
+ end
244
+
245
+
246
+
247
+ end
248
+
@@ -0,0 +1,40 @@
1
+ # encoding: utf-8
2
+ require 'pp'
3
+
4
+ module SemillaGen
5
+
6
+ TEMPLATE_FOLDER = "semilla_templates"
7
+
8
+ # Find the template for the specified item type and template name.
9
+ # Ex: Find a template for projects, named ClassicMVVMProjectTemplate
10
+ #
11
+ # @param [itemtype] can be ':class' or ':project'
12
+ # @param [templatename]
13
+ def self.findTemplate(itemtype, templatename)
14
+
15
+ dirs = [
16
+ File.expand_path(TEMPLATE_FOLDER), #current folder
17
+ File.expand_path("~/#{TEMPLATE_FOLDER}"), #home folder
18
+ SemillaGen::DEFAULT_TEMPLATE_FOLDER #gem lib folder
19
+ ]
20
+
21
+ absolute_path = nil;
22
+ location = File.join(itemtype.to_s, templatename.to_s)
23
+ #puts "location #{location}"
24
+
25
+ dirs.each do |dir|
26
+ #Look for location in dir
27
+ currentlocation = File.join(dir, location)
28
+ #puts currentlocation
29
+ if File.directory? currentlocation
30
+ absolute_path = currentlocation
31
+ break;
32
+ end
33
+ end
34
+
35
+ #If we found the template, absolute_path should not be nil
36
+ puts "Template found at: #{absolute_path}"
37
+ return absolute_path
38
+ end
39
+
40
+ end
@@ -0,0 +1,3 @@
1
+ module SemillaGen
2
+ VERSION = '0.0.1'
3
+ end
data/lib/semillagen.rb ADDED
@@ -0,0 +1,33 @@
1
+
2
+
3
+ module SemillaGen
4
+
5
+ DEFAULT_TEMPLATE_FOLDER = File.expand_path('../default_templates', File.dirname(__FILE__))
6
+
7
+ DEFAULT_PROJECTNAME = "MagicBox"
8
+ end
9
+
10
+ require 'semillagen/utils'
11
+ require 'semillagen/generator'
12
+
13
+ ## semillagen Usage:
14
+
15
+ =begin
16
+
17
+ ## Usage
18
+
19
+ - To generate a project (with default template)
20
+
21
+ $ semillagen project MyProject
22
+
23
+ - To generate a class (with default template)
24
+
25
+ $ semillagen class MyProject.MyNamespace.MyClass
26
+
27
+ - To generate a class with a specific template
28
+
29
+ $ semillagen class MyProject.MySpecialStuff.SpecialClass -t SkinnedControlTemplate
30
+
31
+
32
+
33
+ =end
data/rakefile.rb ADDED
@@ -0,0 +1,39 @@
1
+ require 'rubygems'
2
+ require 'rake/clean'
3
+ require 'rake'
4
+ require_relative "lib/semillagen/version"
5
+
6
+
7
+ version = SemillaGen::VERSION
8
+ gemfile = "semillagen-#{version}.gem"
9
+ gemspecfile = "semillagen.gemspec"
10
+ ########################################################################################################################
11
+
12
+ #####################################
13
+ #Clean
14
+ CLEAN << FileList["*.gem"]
15
+
16
+
17
+ #####################################
18
+ #Build the gem file
19
+ file gemfile => [gemspecfile] do |t|
20
+ sh "gem build #{gemspecfile}"
21
+ end
22
+
23
+ desc "Builds the gem"
24
+ task :build => gemfile
25
+
26
+ ####################################
27
+ desc "Uninstall the gem"
28
+ task :uninstall do |t|
29
+ sh "gem uninstall semillagen"
30
+ end
31
+
32
+ ##################################
33
+ desc "Install the gem"
34
+ task :install => :build do |t|
35
+ sh "gem install #{gemfile}"
36
+ end
37
+
38
+ ##################################
39
+ task :default => [:clean, :build, :install]
@@ -0,0 +1,76 @@
1
+
2
+ # -*- encoding: utf-8 -*-
3
+ $:.push('lib')
4
+ require "semillagen/version"
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "semillagen"
8
+ s.version = SemillaGen::VERSION.dup
9
+ s.date = "2012-03-22"
10
+ s.summary = "Simple ActionScript project generation."
11
+ s.email = "support@semilla.com"
12
+ s.homepage = "http://github.com/Darkoleptiko/SemillaGen/"
13
+ s.authors = ['Victor G. Rosales']
14
+
15
+ s.description = <<-EOF
16
+ SemillaGen let's you create (Actionscript3.0 based) projects and classes with ease.
17
+ SemillaGen generated projects or classes are customizable via templates.
18
+
19
+ The default templates setup the project for Continuous Integration using FlexUnit.
20
+ the default class template creates a class and a test case automatically.
21
+
22
+ usage:
23
+
24
+ To create a new project run:
25
+ $ semillagen project MyAwesomeProject
26
+ $ ls
27
+ MyAwesomeProject
28
+
29
+ To create a new class with test case:
30
+ $ cd MyAwesomeProject
31
+ $ semillagen class com.semilla.MillionDollarClass
32
+
33
+ You will see that semillagen created the following files:
34
+ src/com/semilla/MillionDollarClass.as
35
+ test-src/com/semilla/MillionDollarClassTest.as
36
+
37
+ The default template is ready for building as soon as created.
38
+ To build and test your project we use rake.
39
+
40
+ $ rake
41
+
42
+ Rake will build a debug and release versions of your project. It will also create a FlexUnit test swf and run the test.
43
+ You will see the results of the tests and also you will see some xml files under the [test-report] folder. These reports
44
+ are JUnit compatible.
45
+
46
+ You can use a CI tool like Jenkins to automatically build and test your project.
47
+
48
+ EOF
49
+
50
+ dependencies = [
51
+ # Examples:
52
+ # [:runtime, "rack", "~> 1.1"],
53
+ # [:development, "rspec", "~> 2.1"],
54
+ [:semilla, "semilla", "~> 0.0.5"],
55
+ [:rake, "rake", "~> 0.9.2"]
56
+ ]
57
+
58
+ s.files = Dir['**/*']
59
+ s.test_files = Dir['test/**/*'] + Dir['spec/**/*']
60
+ s.executables = Dir['bin/*'].map { |f| File.basename(f) }
61
+ s.require_paths = ["lib"]
62
+
63
+
64
+ ## Make sure you can build the gem on older versions of RubyGems too:
65
+ s.rubygems_version = "1.8.15"
66
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
67
+ s.specification_version = 3 if s.respond_to? :specification_version
68
+
69
+ dependencies.each do |type, name, version|
70
+ if s.respond_to?("add_#{type}_dependency")
71
+ s.send("add_#{type}_dependency", name, version)
72
+ else
73
+ s.add_dependency(name, version)
74
+ end
75
+ end
76
+ end
metadata ADDED
@@ -0,0 +1,136 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: semillagen
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Victor G. Rosales
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-03-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: semilla
16
+ requirement: &2160461360 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 0.0.5
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2160461360
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ requirement: &2160460320 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 0.9.2
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2160460320
36
+ description: ! "SemillaGen let's you create (Actionscript3.0 based) projects and classes
37
+ with ease.\nSemillaGen generated projects or classes are customizable via templates.\n\nThe
38
+ default templates setup the project for Continuous Integration using FlexUnit.\nthe
39
+ default class template creates a class and a test case automatically.\n\nusage:\n\nTo
40
+ create a new project run:\n $ semillagen project MyAwesomeProject \n $ ls\n MyAwesomeProject\n
41
+ \ \nTo create a new class with test case:\n $ cd MyAwesomeProject\n $ semillagen
42
+ class com.semilla.MillionDollarClass\n \nYou will see that semillagen created the
43
+ following files:\nsrc/com/semilla/MillionDollarClass.as\ntest-src/com/semilla/MillionDollarClassTest.as\n\nThe
44
+ default template is ready for building as soon as created.\nTo build and test your
45
+ project we use rake.\n\n $ rake\n \nRake will build a debug and release versions
46
+ of your project. It will also create a FlexUnit test swf and run the test.\nYou
47
+ will see the results of the tests and also you will see some xml files under the
48
+ [test-report] folder. These reports\nare JUnit compatible.\n\nYou can use a CI tool
49
+ like Jenkins to automatically build and test your project.\n \n"
50
+ email: support@semilla.com
51
+ executables:
52
+ - semillagen
53
+ extensions: []
54
+ extra_rdoc_files: []
55
+ files:
56
+ - bin/semillagen
57
+ - default_templates/class/default/classTemplate.as.tpl
58
+ - default_templates/class/default/info.semilla
59
+ - default_templates/class/default/testClassTemplate.as.tpl
60
+ - default_templates/project/default/Gemfile
61
+ - default_templates/project/default/Gemfile.lock
62
+ - default_templates/project/default/lib/flexunit4/flexunit-4.1.0-8-as3_4.1.0.16076.swc
63
+ - default_templates/project/default/lib/flexunit4/flexunit-cilistener-4.1.0-8-4.1.0.16076.swc
64
+ - default_templates/project/default/lib/flexunit4/flexunit-uilistener-4.1.0-8-4.1.0.16076.swc
65
+ - default_templates/project/default/lib/flexunit4/FlexUnit1Lib.swc
66
+ - default_templates/project/default/lib/flexunit4/flexUnitTasks-4.1.0-8-javadoc.jar
67
+ - default_templates/project/default/lib/flexunit4/flexUnitTasks-4.1.0-8-sources.jar
68
+ - default_templates/project/default/lib/flexunit4/flexUnitTasks-4.1.0-8.jar
69
+ - default_templates/project/default/lib/flexunit4/fluint-extensions-4.1.0-8-4.1.0.16076.swc
70
+ - default_templates/project/default/lib/flexunit4/hamcrest-as3-flex-1.1.3.swc
71
+ - default_templates/project/default/MagicBox.as3proj
72
+ - default_templates/project/default/rakefile.rb
73
+ - default_templates/project/default/src/MagicBox.as
74
+ - default_templates/project/default/src/PlainButton.as
75
+ - default_templates/project/default/src/transforms/LeetTransform.as
76
+ - default_templates/project/default/src/transforms/LowerCaseTransform.as
77
+ - default_templates/project/default/src/transforms/ReverseTransform.as
78
+ - default_templates/project/default/src/transforms/SplitTransform.as
79
+ - default_templates/project/default/src/transforms/UpperCaseTransform.as
80
+ - default_templates/project/default/test-src/listeners/SemillaCIListener.as
81
+ - default_templates/project/default/test-src/listeners/TraceListener.as
82
+ - default_templates/project/default/test-src/TestRunner.template
83
+ - default_templates/project/default/test-src/TextFieldListener.as
84
+ - default_templates/project/default/test-src/transforms/LeetTransformTest.as
85
+ - default_templates/project/default/test-src/transforms/LowerCaseTransformTest.as
86
+ - default_templates/project/default/test-src/transforms/ReverseTransformTest.as
87
+ - default_templates/project/default/test-src/transforms/SplitTransformTest.as
88
+ - default_templates/project/default/test-src/transforms/UpperCaseTransformTest.as
89
+ - doc/_index.html
90
+ - doc/class_list.html
91
+ - doc/css/common.css
92
+ - doc/css/full_list.css
93
+ - doc/css/style.css
94
+ - doc/file_list.html
95
+ - doc/frames.html
96
+ - doc/index.html
97
+ - doc/js/app.js
98
+ - doc/js/full_list.js
99
+ - doc/js/jquery.js
100
+ - doc/method_list.html
101
+ - doc/SemillaGen/TemplateItem.html
102
+ - doc/SemillaGen.html
103
+ - doc/top-level-namespace.html
104
+ - lib/semillagen/generator.rb
105
+ - lib/semillagen/utils.rb
106
+ - lib/semillagen/version.rb
107
+ - lib/semillagen.rb
108
+ - rakefile.rb
109
+ - README.md
110
+ - semillagen.gemspec
111
+ homepage: http://github.com/Darkoleptiko/SemillaGen/
112
+ licenses: []
113
+ post_install_message:
114
+ rdoc_options: []
115
+ require_paths:
116
+ - lib
117
+ required_ruby_version: !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ! '>='
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ required_rubygems_version: !ruby/object:Gem::Requirement
124
+ none: false
125
+ requirements:
126
+ - - ! '>='
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ requirements: []
130
+ rubyforge_project:
131
+ rubygems_version: 1.8.15
132
+ signing_key:
133
+ specification_version: 3
134
+ summary: Simple ActionScript project generation.
135
+ test_files: []
136
+ has_rdoc: