iron_hammer 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -14,7 +14,7 @@ $hoe = Hoe.spec 'iron_hammer' do
14
14
  self.rubyforge_name = self.name
15
15
  self.extra_deps = [['rubyzip2','>= 2.0.1'],
16
16
  ['builder', '>= 2.1.2']]
17
- self.version = '1.0.0'
17
+ self.version = '1.0.1'
18
18
  end
19
19
 
20
20
  require 'newgem/tasks'
@@ -3,14 +3,31 @@ module IronHammer
3
3
  module Projects
4
4
  class AssemblyInfo
5
5
 
6
- def initialize file
7
- @file = file
6
+ def initialize filename
7
+ @filename = filename
8
8
  end
9
9
 
10
10
  def version
11
- matches = @file.match /^\[assembly: AssemblyVersion\("(.*)"\)\]$/
11
+ matches = file.match /^\[assembly: AssemblyVersion\("(.*)"\)\]$/
12
12
  matches[1] if matches
13
13
  end
14
+
15
+ def version= new_version
16
+ content = file
17
+ File.open(@filename, 'w') do |f|
18
+ content.each_line do |line|
19
+ line.gsub!(/^(\[assembly: AssemblyVersion\(").*("\)\])$/) do |match|
20
+ "#{$1}#{new_version}#{$2}"
21
+ end
22
+ f << line
23
+ end
24
+ end
25
+ end
26
+
27
+ private
28
+ def file
29
+ File.read(@filename)
30
+ end
14
31
  end
15
32
  end
16
33
  end
@@ -23,6 +23,10 @@ module IronHammer
23
23
  assembly_info.version || '1.0.0.0'
24
24
  end
25
25
 
26
+ def version= new_version
27
+ assembly_info.version = new_version
28
+ end
29
+
26
30
  def deliverables params={}
27
31
  []
28
32
  end
@@ -32,7 +36,7 @@ module IronHammer
32
36
  end
33
37
 
34
38
  def assembly_info
35
- @assembly_info ||= AssemblyInfo.new File.read(File.join @path, 'Properties', 'AssemblyInfo.cs')
39
+ @assembly_info ||= AssemblyInfo.new(File.join @path, 'Properties', 'AssemblyInfo.cs')
36
40
  end
37
41
 
38
42
  def dependencies
@@ -7,7 +7,8 @@ CLEAN.include("ivy*.xml")
7
7
 
8
8
 
9
9
  namespace :iron do
10
- @anvil = Anvil.load_from '.'
10
+
11
+ @anvil = Anvil.load_from(ENV['SolutionDir'] || '.')
11
12
  @hammer = Hammer.new(
12
13
  (defined?(VISUAL_STUDIO_PATH) ? {:visual_studio_path => VISUAL_STUDIO_PATH} : {}).merge(
13
14
  :configuration => ENV['Configuration']
@@ -68,7 +69,7 @@ namespace :iron do
68
69
  end
69
70
 
70
71
  desc 'Generates ivy-<project_name>.xml for all projects of the solution'
71
- task :generate do
72
+ task :generate => :update_version do
72
73
  puts "Generating ivy files for projects"
73
74
  @anvil.projects.each do |project|
74
75
  builder = IvyBuilder.new project
@@ -76,6 +77,18 @@ namespace :iron do
76
77
  end
77
78
  end
78
79
 
80
+ desc 'updates version of AssemblyInfo based on build_number environment variable'
81
+ task :update_version do
82
+ @anvil.projects.each do |project|
83
+ old_version = project.version
84
+ project.version = old_version.gsub /\.\d+$/, ".#{build_number}"
85
+ end
86
+ end
87
+
88
+ def build_number
89
+ ENV['BUILD_NUMBER'] || '0'
90
+ end
91
+
79
92
  desc 'Retrieves all project dependencies from ivy repository and modify project csproj to reference them'
80
93
  task :retrieve => [:generate] do
81
94
  @anvil.projects.each do |project|
@@ -24,7 +24,8 @@ module IronHammer
24
24
 
25
25
  xml.dependencies do
26
26
  @project.dependencies.each do |dependency|
27
- xml.dependency :org => @organisation, :name => dependency.name, :rev => dependency.version do
27
+ rev = dependency.version.gsub /\.\d+$/, '.+'
28
+ xml.dependency :org => @organisation, :name => dependency.name, :rev => rev do
28
29
  xml.artifact :type => dependency.extension, :name => dependency.name
29
30
  end
30
31
  end
@@ -74,7 +75,7 @@ module IronHammer
74
75
  def artifact_for reference
75
76
  dependency = Dependency.from_reference reference
76
77
  libraries_dir = Dir.new('Libraries')
77
- libraries_dir.find {|f| f.match "#{dependency.name}\\.(dll|exe)"}
78
+ libraries_dir.find {|f| f.match "^#{dependency.name}\\.(dll|exe)"}
78
79
  end
79
80
  end
80
81
  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: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mozair Alves do Carmo Junior
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2010-02-05 00:00:00 -02:00
13
+ date: 2010-02-08 00:00:00 -02:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency