[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