raxe 0.0.3 → 0.0.4
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/VERSION +1 -1
- data/lib/raxe.rb +5 -4
- data/lib/raxe/builder.rb +7 -0
- data/lib/raxe/commands.rb +54 -0
- data/lib/raxe/destroyer.rb +7 -0
- data/lib/raxe/generator.rb +133 -0
- data/lib/raxe/installer.rb +111 -0
- data/lib/raxe/tasks.rb +45 -0
- data/raxe.gemspec +7 -1
- metadata +22 -16
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.4
|
data/lib/raxe.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
|
2
|
-
require "raxe/
|
3
|
-
require "raxe/
|
4
|
-
require "raxe/
|
1
|
+
here = File.dirname __FILE__
|
2
|
+
require "#{here}/raxe/installer"
|
3
|
+
require "#{here}/raxe/generator"
|
4
|
+
require "#{here}/raxe/tasks"
|
5
|
+
require "#{here}/raxe/commands"
|
5
6
|
|
6
7
|
# Raxe class
|
7
8
|
class Raxe
|
data/lib/raxe/builder.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
# require "raxe"
|
2
|
+
|
3
|
+
class Raxe
|
4
|
+
class Commands
|
5
|
+
def initialize( raxe )
|
6
|
+
@raxe = raxe
|
7
|
+
end # initialize
|
8
|
+
|
9
|
+
def command( command_data )
|
10
|
+
if command_data.nil? || command_data.empty?
|
11
|
+
display_help
|
12
|
+
else
|
13
|
+
case command_data[0]
|
14
|
+
when "install", "uninstall"
|
15
|
+
c = command_data[0] == "uninstall" ? :uninstall : nil
|
16
|
+
@raxe.install(c)
|
17
|
+
when "generate", "ungenerate"
|
18
|
+
c = command_data[0] == "generate" ? :generate : :ungenerate
|
19
|
+
p = command_data[1]
|
20
|
+
f = command_data[2]
|
21
|
+
if p.nil? || f.nil?
|
22
|
+
display_error
|
23
|
+
return -1
|
24
|
+
else
|
25
|
+
@raxe.generate( :req => c, :package => p, :file => f )
|
26
|
+
end # if bad cmds
|
27
|
+
when "routes"
|
28
|
+
if @raxe.setup_flag
|
29
|
+
puts @raxe.paths
|
30
|
+
else
|
31
|
+
puts "Raxe has not been installed yet. Consider installing before using"
|
32
|
+
end # if installed
|
33
|
+
else
|
34
|
+
display_help
|
35
|
+
end # case command_data
|
36
|
+
end # if null command
|
37
|
+
return 0
|
38
|
+
end # commands
|
39
|
+
|
40
|
+
def display_help
|
41
|
+
puts "Usage : raxe [command] [arguments]"
|
42
|
+
puts "Commands : "
|
43
|
+
puts " install # installs the raxe application into the current workspace"
|
44
|
+
puts " uninstall # removes the raxe application if there is one in the current workspace"
|
45
|
+
puts " generate [package] [file] # generates a standard raxe package"
|
46
|
+
puts " ungenerate [package] [file] # removes the named package if it exists"
|
47
|
+
puts " routes # shows the current haxe pathing"
|
48
|
+
end # display_help
|
49
|
+
|
50
|
+
def display_error
|
51
|
+
puts "Bad usage, you're probably missing some parameters or put in too many."
|
52
|
+
end # display_error
|
53
|
+
end # Commands
|
54
|
+
end # Raxe
|
@@ -0,0 +1,133 @@
|
|
1
|
+
# require "raxe"
|
2
|
+
|
3
|
+
class Raxe
|
4
|
+
class Generator
|
5
|
+
|
6
|
+
def initialize( raxe )
|
7
|
+
@raxe = raxe
|
8
|
+
end # initialize
|
9
|
+
|
10
|
+
def generate(generate_data)
|
11
|
+
case generate_data[:req]
|
12
|
+
when :generate
|
13
|
+
make_packages( generate_data[:package] )
|
14
|
+
make_files( generate_data[:package], generate_data[:file] )
|
15
|
+
when :ungenerate
|
16
|
+
kill_files( generate_data[:package], generate_data[:file] )
|
17
|
+
kill_packages( generate_data[:package] )
|
18
|
+
end # case req
|
19
|
+
end # generate
|
20
|
+
|
21
|
+
def kill_files( package, file )
|
22
|
+
# Step 1 : Check existence
|
23
|
+
flags = p_check_file_existence( package, file )
|
24
|
+
|
25
|
+
# Step 2 : Remove the ones who exist
|
26
|
+
flags.each do | path, status |
|
27
|
+
if status
|
28
|
+
File.delete( path )
|
29
|
+
puts " Deleted file " + path
|
30
|
+
else # status
|
31
|
+
puts " File " + path + " does not exist"
|
32
|
+
end # status
|
33
|
+
end # flags.each
|
34
|
+
end # kill_files
|
35
|
+
|
36
|
+
def make_files( package, file )
|
37
|
+
# Step 1 : Check existence
|
38
|
+
flags = p_check_file_existence( package, file )
|
39
|
+
|
40
|
+
# Step 1.5 : Generate file content
|
41
|
+
contents = p_generate_file_content( package, file )
|
42
|
+
|
43
|
+
# Step 2: Make the ones who do not exist
|
44
|
+
flags.each do | path, status |
|
45
|
+
if status
|
46
|
+
puts " File " + path + " already exists..."
|
47
|
+
else # status
|
48
|
+
File.open( path, "w+" ) do |f|
|
49
|
+
f.puts contents[path]
|
50
|
+
end # File.open
|
51
|
+
puts " Created file " + path
|
52
|
+
end # if status
|
53
|
+
end # flags each
|
54
|
+
end # make_files
|
55
|
+
|
56
|
+
def kill_packages( who )
|
57
|
+
# Step 1: Check existence
|
58
|
+
flags = p_check_package_existence( who )
|
59
|
+
|
60
|
+
# Step 2: Kill the ones who exist (if dir is empty)
|
61
|
+
flags.each do |path, status|
|
62
|
+
if status
|
63
|
+
if Dir.entries( path ).length < 3
|
64
|
+
Dir.delete( path )
|
65
|
+
puts " Deleted directory " + path
|
66
|
+
else # has stuff
|
67
|
+
puts " Directory " + path + " cannot be delete because it has stuff in it"
|
68
|
+
end # if
|
69
|
+
else # status
|
70
|
+
puts " Directory " + path + " does not exist"
|
71
|
+
end # status
|
72
|
+
end # flags.each
|
73
|
+
end # kill_packages
|
74
|
+
|
75
|
+
def make_packages( who )
|
76
|
+
# Step 1: Check existence
|
77
|
+
flags = p_check_package_existence( who )
|
78
|
+
|
79
|
+
# Step 2: Create the ones who do not exist
|
80
|
+
flags.each do | path, status |
|
81
|
+
if status
|
82
|
+
puts " Directory " + path + " already exists"
|
83
|
+
else # status
|
84
|
+
Dir.mkdir( path )
|
85
|
+
puts " Created directory " + path
|
86
|
+
end # status
|
87
|
+
end # flags each
|
88
|
+
end # make_package
|
89
|
+
|
90
|
+
private
|
91
|
+
def p_generate_file_content( package, file )
|
92
|
+
original_content = "import #{package}data.#{file.capitalize}Data;\n"
|
93
|
+
original_content += "class #{file.capitalize} { \n"
|
94
|
+
original_content += "\tprivate var #{file}data : #{file.capitalize}Data; \n"
|
95
|
+
original_content += "\t public function new () { } // new \n"
|
96
|
+
original_content += "} // #{file.capitalize}"
|
97
|
+
|
98
|
+
spec_content = "import #{package}data.#{file.capitalize}Data;\n"
|
99
|
+
spec_content += "import #{package}.#{file.capitalize};\n"
|
100
|
+
spec_content += "class #{file.capitalize}Spec extends haxespec.FuryTestCase { \n"
|
101
|
+
spec_content += "\t public override function setup () { } // setup \n"
|
102
|
+
spec_content += "\t public override function tearDown () { } // tearDown \n"
|
103
|
+
spec_content += "} // #{file.capitalize}Spec"
|
104
|
+
|
105
|
+
data_content = "typedef #{file.capitalize}Data = { \n"
|
106
|
+
data_content += "} // #{file.capitalize}Data "
|
107
|
+
|
108
|
+
paths = ['','data','spec'].map { | x | File.join(File.join( @raxe.paths['source'], package + x ), file.capitalize + x.capitalize + ".hx" ) }
|
109
|
+
return {
|
110
|
+
paths[0] => original_content ,
|
111
|
+
paths[1] => spec_content ,
|
112
|
+
paths[2] => data_content
|
113
|
+
} # return
|
114
|
+
end # generate_file_content
|
115
|
+
|
116
|
+
def p_check_package_existence( package )
|
117
|
+
p_check_existence( ['','data','spec'].map { | x | package + x } )
|
118
|
+
end # p_check_package_existence
|
119
|
+
|
120
|
+
def p_check_file_existence( package, file )
|
121
|
+
p_check_existence( ['', 'data','spec'].map { | x | File.join( package + x, file.capitalize + x.capitalize + ".hx" ) } )
|
122
|
+
end # p_check_file_existence
|
123
|
+
|
124
|
+
def p_check_existence( expected )
|
125
|
+
flags = {}
|
126
|
+
expected.each do | folder |
|
127
|
+
path = File.join( @raxe.paths['source'], folder )
|
128
|
+
flags[path] = FileTest.exists?( path )
|
129
|
+
end # expected
|
130
|
+
return flags
|
131
|
+
end # p_check_existence
|
132
|
+
end # Generator
|
133
|
+
end # Raxe
|
@@ -0,0 +1,111 @@
|
|
1
|
+
require "rake"
|
2
|
+
# require "raxe"
|
3
|
+
|
4
|
+
class Raxe
|
5
|
+
class Installer
|
6
|
+
|
7
|
+
def initialize( raxe )
|
8
|
+
@raxe = raxe
|
9
|
+
end # initialize
|
10
|
+
|
11
|
+
def self.get_haxe
|
12
|
+
# TODO: figure out a better way of doing this... seriously...
|
13
|
+
# FIXME: Actually test this method lol
|
14
|
+
begin
|
15
|
+
puts " Let's see if you have haxe installed..."
|
16
|
+
sh "which haxe"
|
17
|
+
puts " Great! It looks like haXe has already been installed."
|
18
|
+
rescue
|
19
|
+
puts " Grabbing the tar ball from haxe.org..."
|
20
|
+
sh "wget http://haxe.org/file/hxinst-linux.tgz"
|
21
|
+
puts " Extracting the tar ball..."
|
22
|
+
sh "tar -xvf hxinst-linux.tgz"
|
23
|
+
puts " Changing permission to run the installer executable"
|
24
|
+
sh "chmod 755 hxinst-linux"
|
25
|
+
puts " Running the executable"
|
26
|
+
sh "./hxinst-linux"
|
27
|
+
puts " Cleaning up"
|
28
|
+
sh "rm hxinst-linux"
|
29
|
+
sh "rm hxinst-linux.tgz"
|
30
|
+
puts " Finished installing haxe"
|
31
|
+
end # begin-rescue
|
32
|
+
end # check_haxe
|
33
|
+
|
34
|
+
def install( install_data )
|
35
|
+
case install_data[:req]
|
36
|
+
when :install
|
37
|
+
Installer.make_conf_file
|
38
|
+
Installer.make_content
|
39
|
+
when :uninstall
|
40
|
+
Installer.kill_conf_file
|
41
|
+
kill_content
|
42
|
+
end # case req
|
43
|
+
install_data[:callback].call
|
44
|
+
end # self.install
|
45
|
+
|
46
|
+
def self.kill_conf_file
|
47
|
+
filename = File.join( Dir.pwd, ".raxeconf" )
|
48
|
+
File.delete( filename ) if FileTest.exists? filename
|
49
|
+
end # self.kill_conf_file
|
50
|
+
|
51
|
+
def self.make_conf_file
|
52
|
+
configurations = {
|
53
|
+
"root" => "raxe" ,
|
54
|
+
"output" => "raxe/out" ,
|
55
|
+
"source" => "raxe/src",
|
56
|
+
"tests" => "raxe/tests"
|
57
|
+
} # configuration
|
58
|
+
File.open( File.join( Dir.pwd, ".raxeconf" ), "w+" ) do |f|
|
59
|
+
configurations.each do |key, val|
|
60
|
+
f.puts key + "!!!" + val
|
61
|
+
end # configurations.each
|
62
|
+
end # File.open
|
63
|
+
end # self.raxe_conf
|
64
|
+
|
65
|
+
def kill_content
|
66
|
+
kill_recursively = lambda do |dir|
|
67
|
+
begin
|
68
|
+
Dir.delete( dir ) unless Dir.entries( dir ).length > 2
|
69
|
+
rescue
|
70
|
+
dir.foreach do |item|
|
71
|
+
File.delete( item ) if File.file? item
|
72
|
+
kill_recursively.call( item ) if Dir.directory? item && item != "." && item != ".."
|
73
|
+
end # dir.foreach
|
74
|
+
end # begin-rescue
|
75
|
+
end # kill_recursively
|
76
|
+
@raxe.paths.each do |type, location|
|
77
|
+
next if type == "root"
|
78
|
+
kill_recursively.call( location )
|
79
|
+
end # @raxe.paths
|
80
|
+
File.delete( File.join( @raxe.paths['root'], "build.hxml" ) ) if FileTest.exists? File.join( @raxe.paths['root'], "build.hxml" )
|
81
|
+
puts " Deleted build.hxml"
|
82
|
+
Dir.delete( @raxe.paths["root"] ) if Dir.entries( @raxe.paths["root"] ).length < 3
|
83
|
+
end # kill_content
|
84
|
+
|
85
|
+
def self.make_content
|
86
|
+
root_dir = "raxe"
|
87
|
+
unless FileTest.exists? root_dir
|
88
|
+
Dir.mkdir root_dir
|
89
|
+
puts " Created directory " + root_dir
|
90
|
+
else
|
91
|
+
puts " Directory " + root_dir + " already exists. Skiping to next step."
|
92
|
+
end # exists
|
93
|
+
[ "src", "out", "tests" ].each do |f|
|
94
|
+
folder = File.join( root_dir , f )
|
95
|
+
unless FileTest.exists? folder
|
96
|
+
Dir.mkdir folder
|
97
|
+
puts " Created directory " + folder
|
98
|
+
else
|
99
|
+
puts " Directory " + folder + " already exists. Skipping to next step."
|
100
|
+
end # exists
|
101
|
+
end # each
|
102
|
+
File.open( File.join( root_dir, "build.hxml" ), "w+" ) do |f|
|
103
|
+
f.puts "# haXe output instructions go here. Uncommented whatever you need"
|
104
|
+
f.puts "# -js out/raxe.js"
|
105
|
+
f.puts "# -main raxetest.RaxeFire"
|
106
|
+
end # File.open
|
107
|
+
puts " Wrote build.hxml"
|
108
|
+
puts " Done!"
|
109
|
+
end # self.install
|
110
|
+
end # Installer
|
111
|
+
end # Raxe
|
data/lib/raxe/tasks.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/tasklib'
|
3
|
+
|
4
|
+
|
5
|
+
class Rake::Application
|
6
|
+
attr_accessor :raxe_tasks
|
7
|
+
def raxe
|
8
|
+
return raxe_tasks.raxe
|
9
|
+
end # raxe
|
10
|
+
end # Rake::Application
|
11
|
+
|
12
|
+
class Raxe
|
13
|
+
class Tasks< ::Rake::TaskLib
|
14
|
+
attr_accessor:raxe, :raxe_builder
|
15
|
+
|
16
|
+
def initialize( raxe )
|
17
|
+
@raxe = raxe
|
18
|
+
Rake.application.raxe_tasks = self
|
19
|
+
define_tasks()
|
20
|
+
end # initialize
|
21
|
+
|
22
|
+
private
|
23
|
+
def define_tasks()
|
24
|
+
require "raxe/installer"
|
25
|
+
namespace :raxe do
|
26
|
+
desc "cleans out the testing environment; useful only in testing"
|
27
|
+
task :clean_tests do
|
28
|
+
sh "rm raxe -r"
|
29
|
+
end # clean
|
30
|
+
|
31
|
+
desc "gets and installs haXe if it isn't found (only works on Linux)"
|
32
|
+
task :gethaxe do
|
33
|
+
Raxe::Installer.get_haxe
|
34
|
+
end # gethaxe
|
35
|
+
|
36
|
+
desc "installs raxe into the current project"
|
37
|
+
task :install => [:gethaxe]
|
38
|
+
task :install do
|
39
|
+
@raxe.install
|
40
|
+
end # install
|
41
|
+
end # raxe
|
42
|
+
end # define_tasks
|
43
|
+
end # Tasks
|
44
|
+
end # Raxe
|
45
|
+
|
data/raxe.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "raxe"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Yuki Nagato", "Madotsuki"]
|
@@ -27,6 +27,12 @@ Gem::Specification.new do |s|
|
|
27
27
|
"VERSION",
|
28
28
|
"bin/raxe",
|
29
29
|
"lib/raxe.rb",
|
30
|
+
"lib/raxe/builder.rb",
|
31
|
+
"lib/raxe/commands.rb",
|
32
|
+
"lib/raxe/destroyer.rb",
|
33
|
+
"lib/raxe/generator.rb",
|
34
|
+
"lib/raxe/installer.rb",
|
35
|
+
"lib/raxe/tasks.rb",
|
30
36
|
"raxe.gemspec",
|
31
37
|
"spec/commands/raxe_command_spec.rb",
|
32
38
|
"spec/generator/raxe_generator_spec.rb",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: raxe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,7 +14,7 @@ date: 2012-07-13 00:00:00.000000000Z
|
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: colorize
|
17
|
-
requirement: &
|
17
|
+
requirement: &71497360 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - =
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 0.5.8
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *71497360
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: shoulda
|
28
|
-
requirement: &
|
28
|
+
requirement: &71496950 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *71496950
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: rdoc
|
39
|
-
requirement: &
|
39
|
+
requirement: &71496350 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '3.12'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *71496350
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: bundler
|
50
|
-
requirement: &
|
50
|
+
requirement: &71495710 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 1.0.0
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *71495710
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: jeweler
|
61
|
-
requirement: &
|
61
|
+
requirement: &71495050 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: 1.8.4
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *71495050
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rspec
|
72
|
-
requirement: &
|
72
|
+
requirement: &71493510 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - =
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: 2.11.0
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *71493510
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: colorize
|
83
|
-
requirement: &
|
83
|
+
requirement: &71351730 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ! '>='
|
@@ -88,7 +88,7 @@ dependencies:
|
|
88
88
|
version: '0'
|
89
89
|
type: :runtime
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *71351730
|
92
92
|
description: Written as a ruby gem, raxe is a series of macros for writing simpler
|
93
93
|
haxe code for javascript compilation
|
94
94
|
email: foxnewsnetwork@gmail.com
|
@@ -108,6 +108,12 @@ files:
|
|
108
108
|
- VERSION
|
109
109
|
- bin/raxe
|
110
110
|
- lib/raxe.rb
|
111
|
+
- lib/raxe/builder.rb
|
112
|
+
- lib/raxe/commands.rb
|
113
|
+
- lib/raxe/destroyer.rb
|
114
|
+
- lib/raxe/generator.rb
|
115
|
+
- lib/raxe/installer.rb
|
116
|
+
- lib/raxe/tasks.rb
|
111
117
|
- raxe.gemspec
|
112
118
|
- spec/commands/raxe_command_spec.rb
|
113
119
|
- spec/generator/raxe_generator_spec.rb
|
@@ -130,7 +136,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
130
136
|
version: '0'
|
131
137
|
segments:
|
132
138
|
- 0
|
133
|
-
hash: -
|
139
|
+
hash: -632048269
|
134
140
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
141
|
none: false
|
136
142
|
requirements:
|