buildr-hx 0.0.12.pre → 0.0.14.pre
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/buildr-hx.gemspec +4 -1
- data/lib/buildr/hx.rb +2 -1
- data/lib/buildr/hx/compiler/haxe_compiler_base.rb +10 -6
- data/lib/buildr/hx/test.rb +4 -0
- data/lib/buildr/hx/test/base.rb +25 -0
- data/lib/buildr/hx/test/munit.rb +85 -0
- metadata +23 -20
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.14.pre
|
data/buildr-hx.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "buildr-hx"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.14.pre"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Dominic Graefen"]
|
@@ -42,6 +42,9 @@ Gem::Specification.new do |s|
|
|
42
42
|
"lib/buildr/hx/packaging.rb",
|
43
43
|
"lib/buildr/hx/packaging/haxelib.rb",
|
44
44
|
"lib/buildr/hx/packaging/hxlib.rb",
|
45
|
+
"lib/buildr/hx/test.rb",
|
46
|
+
"lib/buildr/hx/test/base.rb",
|
47
|
+
"lib/buildr/hx/test/munit.rb",
|
45
48
|
"rake/jeweler.rb",
|
46
49
|
"rake/jeweler_prerelease_tasks.rb",
|
47
50
|
"rake/pre_release_gemspec.rb",
|
data/lib/buildr/hx.rb
CHANGED
@@ -2,4 +2,5 @@ require 'buildr'
|
|
2
2
|
|
3
3
|
require File.dirname(__FILE__) + '/../buildr/hx/core'
|
4
4
|
require File.dirname(__FILE__) + '/../buildr/hx/compiler'
|
5
|
-
require File.dirname(__FILE__) + '/../buildr/hx/packaging'
|
5
|
+
require File.dirname(__FILE__) + '/../buildr/hx/packaging'
|
6
|
+
require File.dirname(__FILE__) + '/../buildr/hx/test'
|
@@ -14,16 +14,18 @@ module Buildr
|
|
14
14
|
def compile(sources, target, dependencies)
|
15
15
|
check_options options, COMPILE_OPTIONS
|
16
16
|
@output = get_output_file(target)
|
17
|
+
is_test = is_test?(sources, target, dependencies)
|
17
18
|
args = ["haxe"]
|
19
|
+
sources += @project.compile.sources.map(&:to_s) if is_test
|
18
20
|
args += generate_source_args sources
|
19
21
|
args += generate_dependency_args dependencies
|
20
22
|
args += base_compiler_args
|
21
23
|
args += compiler_args if respond_to? :compiler_args
|
22
24
|
unless Buildr.application.options.dryrun
|
23
|
-
create_hxml args, is_test
|
25
|
+
create_hxml args, is_test
|
24
26
|
appwd = Dir.pwd
|
25
27
|
Dir.chdir @project.base_dir
|
26
|
-
sh args.join " "
|
28
|
+
fail("Compilation failed!") unless sh args.join " "
|
27
29
|
Dir.chdir appwd
|
28
30
|
end
|
29
31
|
end
|
@@ -82,17 +84,19 @@ module Buildr
|
|
82
84
|
system "haxelib test #{zip}"
|
83
85
|
end
|
84
86
|
|
85
|
-
def is_test(sources, target, dependencies)
|
87
|
+
def is_test?(sources, target, dependencies)
|
86
88
|
test_task = @project.test.compile
|
87
89
|
sources==test_task.sources && dependencies==test_task.dependencies.collect { |dep| dep.to_s } && target==test_task.target.to_s
|
88
90
|
end
|
89
91
|
|
90
92
|
def get_output_file target
|
91
|
-
|
93
|
+
file = "#{@project.name.split(":").last}.#{self.class.packaging.to_s}"
|
94
|
+
file = options[:output] unless options[:output].nil?
|
95
|
+
File.join(target.to_s, file)
|
92
96
|
end
|
93
97
|
|
94
|
-
def create_hxml( args,
|
95
|
-
file = File.join(@project.base_dir, options[:hxml] ||
|
98
|
+
def create_hxml( args, is_test )
|
99
|
+
file = File.join(@project.base_dir, options[:hxml] || is_test ? "test.hxml" : "compile.hxml")
|
96
100
|
puts "Creating hxml '#{file}'"
|
97
101
|
with_path = ["cp", "swf-lib", "swf", "js", "as3", "cpp", "neko", "xml", "swf9", "resource"].map{|p|"-#{p}"}
|
98
102
|
File.open(file, 'w') {|f| f.write(
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'buildr'
|
2
|
+
|
3
|
+
module Buildr
|
4
|
+
module Haxe
|
5
|
+
module Test
|
6
|
+
class TestFramework::Haxe < TestFramework::Base
|
7
|
+
|
8
|
+
class << self
|
9
|
+
|
10
|
+
def applies_to?(project) #:nodoc:
|
11
|
+
project.test.compile.language == :haxe
|
12
|
+
end
|
13
|
+
|
14
|
+
def dependencies
|
15
|
+
unless @dependencies
|
16
|
+
super
|
17
|
+
end
|
18
|
+
@dependencies
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'buildr'
|
2
|
+
require 'fileutils'
|
3
|
+
require "rexml/document"
|
4
|
+
|
5
|
+
module Buildr
|
6
|
+
module Haxe
|
7
|
+
module Test
|
8
|
+
|
9
|
+
class MUnit < TestFramework::Haxe
|
10
|
+
|
11
|
+
DEFAULT_VERSION = "0.9.2.1"
|
12
|
+
|
13
|
+
"src=test
|
14
|
+
bin=bin/test/build
|
15
|
+
report=bin/test/report
|
16
|
+
hxml=test.hxml
|
17
|
+
classPaths=lib"
|
18
|
+
|
19
|
+
def tests(dependencies) #:nodoc:
|
20
|
+
candidates = []
|
21
|
+
task.project.test.compile.sources.each do |source|
|
22
|
+
files = Dir["#{source}/**/*Test.hx"] + Dir["#{source}/**/*Tests.hx"]
|
23
|
+
files.each { |item|
|
24
|
+
if File.dirname(item) == source
|
25
|
+
candidates << File.basename(item, '.*')
|
26
|
+
else
|
27
|
+
candidates << "#{File.dirname(item).gsub!(source+"/", "").gsub!("/", ".")}.#{File.basename(item, '.*')}"
|
28
|
+
end
|
29
|
+
}
|
30
|
+
end
|
31
|
+
candidates
|
32
|
+
end
|
33
|
+
|
34
|
+
def run(tests, dependencies) #:nodoc:
|
35
|
+
|
36
|
+
unless Buildr.application.options.dryrun
|
37
|
+
create_munit_config
|
38
|
+
appwd = Dir.pwd
|
39
|
+
Dir.chdir task.project.base_dir
|
40
|
+
|
41
|
+
cmd = "haxelib run munit test"
|
42
|
+
cmd << " -browser #{options[:browser]}" unless options[:browser].nil?
|
43
|
+
cmd << " -keep-browser-alive" if options[:keepbrowseralive]
|
44
|
+
cmd << " -coverage" if options[:coverage]
|
45
|
+
|
46
|
+
fail "Problems...oh noes!" unless system cmd
|
47
|
+
|
48
|
+
Dir.chdir appwd
|
49
|
+
|
50
|
+
Dir[File.join(task.project.path_to(:reports, :munit),"**/TEST-*.xml")].each do |xml_report|
|
51
|
+
doc = REXML::Document.new File.new(xml_report)
|
52
|
+
name = doc.elements["testsuite"].attributes["name"]
|
53
|
+
failures = Integer(doc.elements["testsuite"].attributes["failures"])
|
54
|
+
errors = Integer(doc.elements["testsuite"].attributes["errors"])
|
55
|
+
tests -= [name] unless failures + errors == 0
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
tests
|
60
|
+
end
|
61
|
+
|
62
|
+
def create_munit_config
|
63
|
+
file = File.join(task.project.base_dir, ".munit")
|
64
|
+
puts "Creating munit config '#{file}'"
|
65
|
+
File.open(file, 'w') { |f| f.write(
|
66
|
+
"version=#{options[:version].nil? ? DEFAULT_VERSION : options[:version]}
|
67
|
+
src=#{task.project.path_to(:source, :test, :hx)}
|
68
|
+
bin=#{task.project.test.compile.target}
|
69
|
+
report=#{task.project.path_to(:reports, :munit)}
|
70
|
+
hxml=#{get_hxml_file}
|
71
|
+
classPaths=#{task.project.compile.sources.map(&:to_s).join(',')}"
|
72
|
+
) }
|
73
|
+
end
|
74
|
+
|
75
|
+
def get_hxml_file
|
76
|
+
file = "test.hxml"
|
77
|
+
file = task.project.test.compile.options[:hxml] unless task.project.test.compile.options[:hxml].nil?
|
78
|
+
File.join(task.project.base_dir, file)
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: buildr-hx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14.pre
|
5
5
|
prerelease: 7
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-02-19 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: buildr
|
16
|
-
requirement: &
|
16
|
+
requirement: &2156831100 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.4.6
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2156831100
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: shoulda
|
27
|
-
requirement: &
|
27
|
+
requirement: &2156830600 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2156830600
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &2156830100 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.0.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2156830100
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: jeweler
|
49
|
-
requirement: &
|
49
|
+
requirement: &2156820400 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.5.2
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2156820400
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: simplecov
|
60
|
-
requirement: &
|
60
|
+
requirement: &2156819920 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2156819920
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: simplecov-rcov
|
71
|
-
requirement: &
|
71
|
+
requirement: &2156819420 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2156819420
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rspec
|
82
|
-
requirement: &
|
82
|
+
requirement: &2156818920 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: 2.1.0
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2156818920
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: ci_reporter
|
93
|
-
requirement: &
|
93
|
+
requirement: &2156818440 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ~>
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: 1.6.5
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *2156818440
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: buildr
|
104
|
-
requirement: &
|
104
|
+
requirement: &2156817920 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
version: 1.4.6
|
110
110
|
type: :runtime
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *2156817920
|
113
113
|
description: Build like you code - now supporting haXe
|
114
114
|
email: dominic @nospam@ devboy.org
|
115
115
|
executables: []
|
@@ -143,6 +143,9 @@ files:
|
|
143
143
|
- lib/buildr/hx/packaging.rb
|
144
144
|
- lib/buildr/hx/packaging/haxelib.rb
|
145
145
|
- lib/buildr/hx/packaging/hxlib.rb
|
146
|
+
- lib/buildr/hx/test.rb
|
147
|
+
- lib/buildr/hx/test/base.rb
|
148
|
+
- lib/buildr/hx/test/munit.rb
|
146
149
|
- rake/jeweler.rb
|
147
150
|
- rake/jeweler_prerelease_tasks.rb
|
148
151
|
- rake/pre_release_gemspec.rb
|
@@ -165,7 +168,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
165
168
|
version: '0'
|
166
169
|
segments:
|
167
170
|
- 0
|
168
|
-
hash:
|
171
|
+
hash: 800551186459514666
|
169
172
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
173
|
none: false
|
171
174
|
requirements:
|