iron_hammer 1.0.0 → 1.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.
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