iron_hammer 0.3.4 → 0.3.5
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/Rakefile +3 -2
- data/lib/iron_hammer.rb +1 -0
- data/lib/iron_hammer/projects/dependency.rb +21 -0
- data/lib/iron_hammer/projects/generic_project.rb +6 -0
- data/lib/iron_hammer/tasks.rb +24 -0
- data/lib/iron_hammer/utils/ivy_builder.rb +32 -0
- metadata +14 -2
data/Rakefile
CHANGED
@@ -10,8 +10,9 @@ $hoe = Hoe.spec 'iron_hammer' do
|
|
10
10
|
self.developer 'Mozair Alves do Carmo Junior', 'macskeptic@gmail.com'
|
11
11
|
self.post_install_message = File.read('PostInstall.txt')
|
12
12
|
self.rubyforge_name = self.name
|
13
|
-
self.extra_deps = [['rubyzip2','>= 2.0.1']
|
14
|
-
|
13
|
+
self.extra_deps = [['rubyzip2','>= 2.0.1'],
|
14
|
+
['builder', '>= 2.1.2']]
|
15
|
+
self.version = '0.3.5'
|
15
16
|
end
|
16
17
|
|
17
18
|
require 'newgem/tasks'
|
data/lib/iron_hammer.rb
CHANGED
@@ -32,6 +32,7 @@ require 'iron_hammer/solutions/solution'
|
|
32
32
|
require 'iron_hammer/solutions/solution_file'
|
33
33
|
require 'iron_hammer/utils/dot_net_environment'
|
34
34
|
require 'iron_hammer/utils/file_system'
|
35
|
+
require 'iron_hammer/utils/ivy_builder'
|
35
36
|
require 'iron_hammer/utils/windows'
|
36
37
|
require 'iron_hammer/utils/zipper'
|
37
38
|
require 'iron_hammer/version'
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module IronHammer
|
2
|
+
module Projects
|
3
|
+
class Dependency
|
4
|
+
attr_accessor :name
|
5
|
+
attr_accessor :version
|
6
|
+
|
7
|
+
def initialize params = {}
|
8
|
+
@name = params[:name] || raise(ArgumentError.new('you must specify a name'))
|
9
|
+
@version = params[:version]
|
10
|
+
end
|
11
|
+
|
12
|
+
def == other
|
13
|
+
@name == other.name && @version == other.version
|
14
|
+
end
|
15
|
+
|
16
|
+
def to_s
|
17
|
+
"[Dependency name=#{@name} version=#{@version}]"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -5,11 +5,13 @@ module IronHammer
|
|
5
5
|
class GenericProject
|
6
6
|
attr_accessor :name
|
7
7
|
attr_accessor :path
|
8
|
+
attr_accessor :csproj
|
8
9
|
|
9
10
|
def initialize params={}
|
10
11
|
@name = params[:name] ||
|
11
12
|
raise(ArgumentError.new 'must provide a project name')
|
12
13
|
@path = params[:path] || @name
|
14
|
+
@csproj = params[:csproj] || "#{@name}.csproj"
|
13
15
|
end
|
14
16
|
|
15
17
|
def path_to_binaries params={}
|
@@ -20,6 +22,10 @@ module IronHammer
|
|
20
22
|
[]
|
21
23
|
end
|
22
24
|
|
25
|
+
def dependencies
|
26
|
+
@dependencies ||= ProjectFile.dependencies_of(File.read [@path, @csproj].patheticalize)
|
27
|
+
end
|
28
|
+
|
23
29
|
def package params={}
|
24
30
|
package_root(params)
|
25
31
|
Package.new :root => package_root, :deliverables => deliverables(params)
|
data/lib/iron_hammer/tasks.rb
CHANGED
@@ -23,5 +23,29 @@ namespace :iron do
|
|
23
23
|
sh @hammer.test *@anvil.test_projects
|
24
24
|
end
|
25
25
|
end
|
26
|
+
|
27
|
+
namespace :ivy do
|
28
|
+
desc 'Generates ivy-<project_name>.xml for all dll projects of the solution'
|
29
|
+
task :generate => [:initialize] do
|
30
|
+
@anvil.dll_projects.each do |project|
|
31
|
+
builder = IvyBuilder.new project
|
32
|
+
builder.write_to "ivy-#{project.name}.xml"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
task :retrieve => [:generate] do
|
37
|
+
@anvil.dll_projects.each do |project|
|
38
|
+
ivy = "ivy-#{project.name}.xml"
|
39
|
+
sh "java -jar #{IVY_JAR} -ivy #{ivy} -settings #{IVY_SETTINGS} -retrieve Libraries/[artifact].[ext]"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
task :publish => [:generate] do
|
44
|
+
@anvil.dll_projects.each do |project|
|
45
|
+
ivy = "ivy-#{project.name}.xml"
|
46
|
+
sh "java -jar #{IVY_JAR} -ivy #{ivy} -settings #{IVY_SETTINGS} -publish default -publishpattern delivery/[artifact].[ext] -revision 1.0.0 -overwrite true"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
26
50
|
end
|
27
51
|
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'builder'
|
2
|
+
module IronHammer
|
3
|
+
module Utils
|
4
|
+
class IvyBuilder
|
5
|
+
|
6
|
+
def initialize project
|
7
|
+
@project = project
|
8
|
+
@organisation = ORGANISATION || "org"
|
9
|
+
end
|
10
|
+
|
11
|
+
def to_s
|
12
|
+
xml = Builder::XmlMarkup.new(:indent => 2)
|
13
|
+
xml.tag! 'ivy-module', :version => '2.0' do
|
14
|
+
xml.info :organisation => @organisation, :module => @project.name
|
15
|
+
xml.publications do
|
16
|
+
xml.artifact :name => @project.name, :type => 'dll'
|
17
|
+
end if @project.is_a? DllProject
|
18
|
+
|
19
|
+
xml.dependencies do
|
20
|
+
@project.dependencies.each do |dependency|
|
21
|
+
xml.dependency :org => @organisation, :name => dependency.name, :rev => dependency.version
|
22
|
+
end
|
23
|
+
end unless @project.dependencies.empty?
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def write_to file
|
28
|
+
File.open(file, "w") { |f| f.write to_s }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iron_hammer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mozair Alves do Carmo Junior
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-28 00:00:00 -02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -22,6 +22,16 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 2.0.1
|
24
24
|
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: builder
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.1.2
|
34
|
+
version:
|
25
35
|
- !ruby/object:Gem::Dependency
|
26
36
|
name: rubyforge
|
27
37
|
type: :development
|
@@ -77,6 +87,7 @@ files:
|
|
77
87
|
- lib/iron_hammer/projects/asp_net_mvc_project.rb
|
78
88
|
- lib/iron_hammer/projects/asp_net_project.rb
|
79
89
|
- lib/iron_hammer/projects/dll_project.rb
|
90
|
+
- lib/iron_hammer/projects/dependency.rb
|
80
91
|
- lib/iron_hammer/projects/generic_project.rb
|
81
92
|
- lib/iron_hammer/projects/project_file.rb
|
82
93
|
- lib/iron_hammer/projects/project_types.rb
|
@@ -86,6 +97,7 @@ files:
|
|
86
97
|
- lib/iron_hammer/tasks.rb
|
87
98
|
- lib/iron_hammer/utils/dot_net_environment.rb
|
88
99
|
- lib/iron_hammer/utils/file_system.rb
|
100
|
+
- lib/iron_hammer/utils/ivy_builder.rb
|
89
101
|
- lib/iron_hammer/utils/windows.rb
|
90
102
|
- lib/iron_hammer/utils/zipper.rb
|
91
103
|
- lib/iron_hammer/version.rb
|