[DRE-commits] [librarian-puppet] 94/153: Use custom Dependency class without needing monkey patching
Stig Sandbeck Mathisen
ssm at debian.org
Wed Jun 1 20:30:49 UTC 2016
This is an automated email from the git hooks/post-receive script.
ssm pushed a commit to branch master
in repository librarian-puppet.
commit e2abaf192859beb6570cd606d8d6b0ffa8428932
Author: Carlos Sanchez <carlos at apache.org>
Date: Thu Feb 26 20:41:31 2015 +0100
Use custom Dependency class without needing monkey patching
---
lib/librarian/puppet/dependency.rb | 18 +++++++++++++++++
lib/librarian/puppet/dsl.rb | 5 +++++
lib/librarian/puppet/extension.rb | 20 -------------------
lib/librarian/puppet/lockfile/parser.rb | 4 ++--
lib/librarian/puppet/requirement.rb | 35 ---------------------------------
lib/librarian/puppet/source.rb | 1 -
lib/librarian/puppet/source/forge.rb | 2 +-
lib/librarian/puppet/source/local.rb | 2 +-
8 files changed, 27 insertions(+), 60 deletions(-)
diff --git a/lib/librarian/puppet/dependency.rb b/lib/librarian/puppet/dependency.rb
new file mode 100644
index 0000000..c5d6bd4
--- /dev/null
+++ b/lib/librarian/puppet/dependency.rb
@@ -0,0 +1,18 @@
+module Librarian
+ module Puppet
+
+ class Dependency < Librarian::Dependency
+
+ include Librarian::Puppet::Util
+
+ def initialize(name, requirement, source)
+ # Issue #235 fail if forge source is not defined
+ raise Error, "forge entry is not defined in Puppetfile" if source.instance_of?(Array) && source.empty?
+
+ super(normalize_name(name), requirement, source)
+ end
+
+ end
+
+ end
+end
diff --git a/lib/librarian/puppet/dsl.rb b/lib/librarian/puppet/dsl.rb
index 297098f..9ea48bd 100644
--- a/lib/librarian/puppet/dsl.rb
+++ b/lib/librarian/puppet/dsl.rb
@@ -1,6 +1,7 @@
require 'librarian/dsl'
require 'librarian/dsl/target'
require 'librarian/puppet/source'
+require 'librarian/puppet/dependency'
module Librarian
module Puppet
@@ -22,6 +23,10 @@ module Librarian
end
end
+ def self.dependency_type
+ Librarian::Puppet::Dependency
+ end
+
def post_process_target(target)
# save the default forge defined
default_forge = target.sources.select {|s| s.is_a? Librarian::Puppet::Source::Forge}.first
diff --git a/lib/librarian/puppet/extension.rb b/lib/librarian/puppet/extension.rb
index 414311f..cb68089 100644
--- a/lib/librarian/puppet/extension.rb
+++ b/lib/librarian/puppet/extension.rb
@@ -6,24 +6,4 @@ module Librarian
extend self
extend Librarian
end
-
- class Dependency
- include Librarian::Puppet::Util
-
- def initialize(name, requirement, source)
- assert_name_valid! name
-
- # Issue #235 fail if forge source is not defined
- raise Error, "forge entry is not defined in Puppetfile" if source.instance_of?(Array) && source.empty?
-
- # let's settle on provider-module syntax instead of provider/module
- self.name = normalize_name(name)
- self.requirement = Requirement.new(requirement)
- self.source = source
-
- @manifests = nil
- end
-
- end
-
end
diff --git a/lib/librarian/puppet/lockfile/parser.rb b/lib/librarian/puppet/lockfile/parser.rb
index c25e8b2..22caa4f 100644
--- a/lib/librarian/puppet/lockfile/parser.rb
+++ b/lib/librarian/puppet/lockfile/parser.rb
@@ -1,5 +1,5 @@
require 'librarian/manifest'
-require 'librarian/dependency'
+require 'librarian/puppet/dependency'
require 'librarian/manifest_set'
module Librarian
@@ -44,7 +44,7 @@ module Librarian
while lines.first =~ /^ {2}([\w\-\/]+)(?: \((.*)\))?$/ # This change allows forward slash
lines.shift
name, requirement = normalize_name($1), $2.split(/,\s*/)
- dependencies << Dependency.new(name, requirement, manifests_index[name].source)
+ dependencies << Librarian::Puppet::Dependency.new(name, requirement, manifests_index[name].source)
end
Resolution.new(dependencies, manifests)
diff --git a/lib/librarian/puppet/requirement.rb b/lib/librarian/puppet/requirement.rb
deleted file mode 100644
index e5723c0..0000000
--- a/lib/librarian/puppet/requirement.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-module Librarian
- module Puppet
- class Requirement
- attr_reader :requirement
-
- def initialize(requirement)
- @requirement = requirement || ">=0"
- end
-
- def gem_requirement
- if range_requirement?
- [@range_match[1], @range_match[2]]
- elsif pessimistic_requirement?
- "~> #{@pessimistic_match[1]}.0"
- else
- requirement
- end
- end
-
- def to_s
- gem_requirement.to_s
- end
-
- private
-
- def range_requirement?
- @range_match ||= requirement.match(/(>=? ?\d+(?:\.\d+){0,2}) (<=? ?\d+(?:\.\d+){0,2})/)
- end
-
- def pessimistic_requirement?
- @pessimistic_match ||= requirement.match(/(\d+(?:\.\d+)?)\.x/)
- end
- end
- end
-end
diff --git a/lib/librarian/puppet/source.rb b/lib/librarian/puppet/source.rb
index 47a51d8..7310cdd 100644
--- a/lib/librarian/puppet/source.rb
+++ b/lib/librarian/puppet/source.rb
@@ -1,4 +1,3 @@
-require 'librarian/puppet/requirement'
require 'librarian/puppet/source/path'
require 'librarian/puppet/source/git'
require 'librarian/puppet/source/forge'
diff --git a/lib/librarian/puppet/source/forge.rb b/lib/librarian/puppet/source/forge.rb
index e6355c7..b885f44 100644
--- a/lib/librarian/puppet/source/forge.rb
+++ b/lib/librarian/puppet/source/forge.rb
@@ -143,7 +143,7 @@ module Librarian
def fetch_dependencies(name, version, version_uri)
repo(name).dependencies(version).map do |k, v|
- v = Requirement.new(v).gem_requirement
+ v = Librarian::Dependency::Requirement.new(v).to_gem_requirement
Dependency.new(k, v, nil)
end
end
diff --git a/lib/librarian/puppet/source/local.rb b/lib/librarian/puppet/source/local.rb
index ae42b29..6bff7bd 100644
--- a/lib/librarian/puppet/source/local.rb
+++ b/lib/librarian/puppet/source/local.rb
@@ -43,7 +43,7 @@ module Librarian
end
parsed_metadata['dependencies'].each do |d|
- gem_requirement = Requirement.new(d['version_requirement']).gem_requirement
+ gem_requirement = Librarian::Dependency::Requirement.new(d['version_requirement']).to_gem_requirement
new_dependency = Dependency.new(d['name'], gem_requirement, forge_source)
dependencies << new_dependency
end
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/librarian-puppet.git
More information about the Pkg-ruby-extras-commits
mailing list