--- a/rakelib/rbspec.rb Fri Oct 21 21:50:00 2016 +0100
+++ b/rakelib/rbspec.rb Sun Oct 23 22:49:57 2016 +0100
@@ -63,7 +63,7 @@
NO_VALUE = Object.new()
attr_accessor :parent
- attr_reader :last_repository
+ attr_reader :last_repository_name
@@ -120,7 +120,7 @@
PROJECTS = {}
attr_accessor :repositories, :packages, :tasks, :application
- attr_accessor :last_repository
+ attr_accessor :last_repository_name
def self.named?(name)
if (PROJECTS.include?(name))
@@ -161,7 +161,7 @@
@packages = []
@application = nil
@tasks = []
- @last_repository = nil
+ @last_repository_name = nil
end
def clone()
@@ -184,7 +184,7 @@
def initialize(importee, imported)
@importee = importee
@imported = imported#as symbol!
- @last_repository = importee.last_repository
+ @last_repository_name = importee.last_repository_name
end
def apply()
@@ -194,8 +194,8 @@
#merge packages
begin
- importee_last_repository = @importee.last_repository
- @importee.last_repository = @last_repository
+ importee_last_repository_name = @importee.last_repository_name
+ @importee.last_repository_name = @last_repository_name
p.packages.each do | pkg |
if @importee.package? pkg.name
@importee.package(pkg.name).merge(pkg)
@@ -204,7 +204,7 @@
end
pkg = @importee.package(pkg.name)
if (not pkg.repository and @last_repository_name)
- pkg.set_property(:repository, @last_repository_name)
+ pkg.set_property(:repository, @last_repository_name_name)
end
end
app = p.application
@@ -220,7 +220,7 @@
end
end
ensure
- @importee.last_repository = importee_last_repository
+ @importee.last_repository_name = importee_last_repository_name
end
p_tasks = p.tasks.collect { | t | t.clone }
@@ -238,20 +238,14 @@
def apply_imports()
@imports.each do | import |
import.apply()
- end
+ end
end
def repository(name)
if block_given? then
raise Exception.new("Defining repository within package is no longer supported")
end
- r = Repository::find(name)
- if (r == nil)
- raise Exception.new("Undefined repository '#{name}'")
- end
-
- @last_repository = r
- return r
+ @last_repository_name = name
end
def package?(name)
@@ -268,8 +262,8 @@
@packages.push(p)
end
p._build(properties, &builder)
- if (not p.repository and @last_repository)
- p.repository = @last_repository.name
+ if (not p.repository and @last_repository_name)
+ p.repository = @last_repository_name
end
return p
end
@@ -282,8 +276,8 @@
@application = p
end
p._build(properties, &builder)
- if (not p.repository and @last_repository)
- p.repository = @last_repository.name
+ if (not p.repository and @last_repository_name)
+ p.repository = @last_repository_name
end
return p
end
@@ -360,7 +354,7 @@
property :stc_flags, :default => '+optinline +optinline2 -optContext', :class => String
def _separator()
- return (self.parent.repository(self.repository)).separator
+ return (Repository::find(self.repository)).separator
end
def name_components()
@@ -501,6 +495,7 @@
class Repository < ConfigurationObject
property :type, :class => Symbol
property :url
+ property :mirror
property :separator, :default => '.'