Hello community,

here is the log from the commit of package rubygem-power_assert for 
openSUSE:Factory checked in at 2017-09-12 19:56:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-power_assert (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-power_assert.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-power_assert"

Tue Sep 12 19:56:36 2017 rev:12 rq:523548 version:1.1.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/rubygem-power_assert/rubygem-power_assert.changes    
    2017-06-08 15:01:37.730660449 +0200
+++ 
/work/SRC/openSUSE:Factory/.rubygem-power_assert.new/rubygem-power_assert.changes
   2017-09-12 19:56:40.356297901 +0200
@@ -1,0 +2,6 @@
+Mon Sep 11 12:47:11 UTC 2017 - co...@suse.com
+
+- updated to version 1.1.0
+  no changelog found
+
+-------------------------------------------------------------------

Old:
----
  power_assert-1.0.2.gem

New:
----
  power_assert-1.1.0.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-power_assert.spec ++++++
--- /var/tmp/diff_new_pack.7Druzp/_old  2017-09-12 19:56:40.912219733 +0200
+++ /var/tmp/diff_new_pack.7Druzp/_new  2017-09-12 19:56:40.916219171 +0200
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-power_assert
-Version:        1.0.2
+Version:        1.1.0
 Release:        0
 %define mod_name power_assert
 %define mod_full_name %{mod_name}-%{version}
@@ -34,7 +34,7 @@
 BuildRequires:  %{ruby}
 BuildRequires:  ruby-macros >= 5
 Url:            https://github.com/k-tsj/power_assert
-Source:         http://rubygems.org/gems/%{mod_full_name}.gem
+Source:         https://rubygems.org/gems/%{mod_full_name}.gem
 Source1:        gem2rpm.yml
 Summary:        Power Assert for Ruby
 License:        BSD-2-Clause or Ruby

++++++ power_assert-1.0.2.gem -> power_assert-1.1.0.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.travis.yml new/.travis.yml
--- old/.travis.yml     2017-05-04 03:13:02.000000000 +0200
+++ new/.travis.yml     2017-08-19 08:50:16.000000000 +0200
@@ -3,12 +3,19 @@
 rvm:
   - 2.0.0-p648
   - 2.1.10
-  - 2.2.6
-  - 2.3.3
-  - 2.4.0
+  - 2.2.7
+  - 2.3.4
+  - 2.4.1
   - ruby-head
+env:
+  - TEST_SYMLINK="no"
+  - TEST_SYMLINK="yes"
 matrix:
   allow_failures:
     - rvm: ruby-head
 before_install:
  - gem update bundler
+before_script:
+ - bundle exec rake before_script
+after_script:
+ - bundle exec rake after_script
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.rdoc new/README.rdoc
--- old/README.rdoc     2017-05-04 03:13:02.000000000 +0200
+++ new/README.rdoc     2017-08-19 08:50:16.000000000 +0200
@@ -6,12 +6,16 @@
 It is useful for testing, providing which value wasn't correct when the 
condition is not satisfied.
 
 == Related Projects
+In general, you don't need to use this library directly.
+Use following test frameworks or extensions instead.
+
 * {test-unit}[https://github.com/test-unit/test-unit](>= 3.0.0)
+  * 
{Document}[http://test-unit.github.io/test-unit/en/Test/Unit/Assertions.html#assert-instance_method]
 * {minitest-power_assert}[https://github.com/hsbt/minitest-power_assert]
-* {pry-power_assert}[https://github.com/yui-knk/pry-power_assert]
 * {rspec-power_assert}[https://github.com/joker1007/rspec-power_assert]
-* {power_p}[https://github.com/k-tsj/power_p]
+* {pry-power_assert}[https://github.com/yui-knk/pry-power_assert]
 * {pry-byebug-power_assert}[https://github.com/k-tsj/pry-byebug-power_assert]
+* {power_p}[https://github.com/k-tsj/power_p]
 
 == Requirement
 * CRuby 2.0.0 or later
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Rakefile new/Rakefile
--- old/Rakefile        2017-05-04 03:13:02.000000000 +0200
+++ new/Rakefile        2017-08-19 08:50:16.000000000 +0200
@@ -4,7 +4,8 @@
 task :default => :test
 Rake::TestTask.new(:test) do |t|
   # helper(simplecov) must be required before loading power_assert
-  t.ruby_opts = ["-w", "-r./test/test_helper"]
+  helper_path = File.realpath("test/test_helper.rb")
+  t.ruby_opts = ["-w", "-r#{helper_path}"]
   t.test_files = FileList["test/**/*_test.rb"].exclude do |i|
     begin
       return false unless defined?(RubyVM)
@@ -16,9 +17,43 @@
   end
 end
 
+# ruby/ruby:test/pathname/test_pathname.rb
+def has_symlink?
+  begin
+    File.symlink("", "")
+  rescue NotImplementedError, Errno::EACCES
+    return false
+  rescue Errno::ENOENT
+  end
+  return true
+end
+
+SYMLINK_DIRS = ["lib", "test"]
+
+task :before_script do
+  if ENV["TEST_SYMLINK"] == "yes" and has_symlink?
+    SYMLINK_DIRS.each do |d|
+      File.rename(d, ".#{d}")
+      File.symlink(".#{d}", d)
+    end
+  end
+end
+
+task :after_script do
+  SYMLINK_DIRS.each do |d|
+    if File.symlink?(d) and File.directory?(".#{d}")
+      File.unlink(d)
+      File.rename(".#{d}", d)
+    end
+    unless File.directory?(d)
+      raise "#{d} should be directory"
+    end
+  end
+end
+
 desc "Run the benchmark suite"
-task('benchmark') do
-  Dir.glob('benchmarks/bm_*.rb').each do |f|
+task :benchmark do
+  Dir.glob("benchmark/bm_*.rb").each do |f|
     load(f)
   end
 end
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/power_assert/context.rb 
new/lib/power_assert/context.rb
--- old/lib/power_assert/context.rb     2017-05-04 03:13:02.000000000 +0200
+++ new/lib/power_assert/context.rb     2017-08-19 08:50:16.000000000 +0200
@@ -5,18 +5,19 @@
 
 module PowerAssert
   class Context
-    Value = Struct.new(:name, :value, :column)
-
-    attr_reader :message_proc
+    Value = Struct.new(:name, :value, :lineno, :column)
 
     def initialize(base_caller_length)
       @fired = false
       @target_thread = Thread.current
       method_id_set = nil
-      return_values = []
+      @return_values = []
       trace_alias_method = PowerAssert.configuration._trace_alias_method
       @trace_return = TracePoint.new(:return, :c_return) do |tp|
-        method_id_set ||= @parser.method_id_set
+        unless method_id_set
+          next unless Thread.current == @target_thread
+          method_id_set = @parser.method_id_set
+        end
         method_id = SUPPORT_ALIAS_METHOD                      ? tp.callee_id :
                     trace_alias_method && tp.event == :return ? 
tp.binding.eval('::Kernel.__callee__') :
                                                                 tp.method_id
@@ -31,18 +32,19 @@
             val = PowerAssert.configuration.lazy_inspection ?
               tp.return_value :
               InspectedValue.new(SafeInspectable.new(tp.return_value).inspect)
-            return_values << Value[method_id.to_s, val, nil]
+            @return_values << Value[method_id.to_s, val, locs[idx].lineno, nil]
           end
         end
       end
-      @message_proc = -> {
-        raise RuntimeError, 'call #yield or #enable at first' unless fired?
-        @message ||= build_assertion_message(@parser.line, @parser.idents, 
@parser.binding, return_values).freeze
-      }
     end
 
     def message
-      @message_proc.()
+      raise 'call #yield or #enable at first' unless fired?
+      @message ||= build_assertion_message(@parser, @return_values).freeze
+    end
+
+    def message_proc
+      -> { message }
     end
 
     private
@@ -51,24 +53,26 @@
       @fired
     end
 
-    def build_assertion_message(line, idents, proc_binding, return_values)
+    def build_assertion_message(parser, return_values)
       if PowerAssert.configuration._colorize_message
-        line = Pry::Code.new(line).highlighted
+        line = Pry::Code.new(parser.line).highlighted
+      else
+        line = parser.line
       end
 
-      path = detect_path(idents, return_values)
+      path = detect_path(parser, return_values)
       return line unless path
 
-      delete_unidentified_calls(return_values, path)
-      methods, refs = path.partition {|i| i.type == :method }
-      return_values.zip(methods) do |i, j|
+      return_values, methods_in_path = 
find_all_identified_calls(return_values, path)
+      return_values.zip(methods_in_path) do |i, j|
         unless i.name == j.name
           warn "power_assert: [BUG] Failed to get column: #{i.name}"
           return line
         end
         i.column = j.column
       end
-      ref_values = refs.map {|i| Value[i.name, proc_binding.eval(i.name), 
i.column] }
+      refs_in_path = path.find_all {|i| i.type == :ref }
+      ref_values = refs_in_path.map {|i| Value[i.name, 
parser.binding.eval(i.name), parser.lineno, i.column] }
       vals = (return_values + 
ref_values).find_all(&:column).sort_by(&:column).reverse
       return line if vals.empty?
 
@@ -88,9 +92,9 @@
       lines.join("\n")
     end
 
-    def detect_path(idents, return_values)
-      return @parser.call_paths.flatten.uniq if @parser.method_id_set.empty?
-      all_paths = @parser.call_paths
+    def detect_path(parser, return_values)
+      return parser.call_paths.flatten.uniq if parser.method_id_set.empty?
+      all_paths = parser.call_paths
       return_value_names = return_values.map(&:name)
       uniq_calls = uniq_calls(all_paths)
       uniq_call = return_value_names.find {|i| uniq_calls.include?(i) }
@@ -108,12 +112,14 @@
       all_calls.find_all {|_, call_count| call_count == 1 }.map {|name, _| 
name }
     end
 
-    def delete_unidentified_calls(return_values, path)
+    def find_all_identified_calls(return_values, path)
       return_value_num_of_calls = enum_count_by(return_values, &:name)
       path_num_of_calls = enum_count_by(path.find_all {|ident| ident.type == 
:method }, &:name)
       identified_calls = return_value_num_of_calls.find_all {|name, num| 
path_num_of_calls[name] == num }.map(&:first)
-      return_values.delete_if {|val| ! identified_calls.include?(val.name) }
-      path.delete_if {|ident| ident.type == :method and ! 
identified_calls.include?(ident.name) }
+      [
+        return_values.find_all {|val| identified_calls.include?(val.name) },
+        path.find_all {|ident| ident.type == :method and 
identified_calls.include?(ident.name)  }
+      ]
     end
 
     def enum_count_by(enum, &blk)
@@ -152,7 +158,7 @@
           lineno = locs.last.lineno
           if File.exist?(path)
             line ||= open(path).each_line.drop(lineno - 1).first
-            @parser = Parser.new(line, path, lineno, @assertion_proc.binding, 
assertion_method.to_s)
+            @parser = Parser.new(line, path, lineno, @assertion_proc.binding, 
assertion_method.to_s, @assertion_proc)
           end
         end
       end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/power_assert/enable_tracepoint_events.rb 
new/lib/power_assert/enable_tracepoint_events.rb
--- old/lib/power_assert/enable_tracepoint_events.rb    2017-05-04 
03:13:02.000000000 +0200
+++ new/lib/power_assert/enable_tracepoint_events.rb    2017-08-19 
08:50:16.000000000 +0200
@@ -13,37 +13,37 @@
       module PowerAssert
         # set redefined flag
         basic_classes = [
-          Fixnum, Float, String, Array, Hash, Bignum, Symbol, Time, Regexp
+          Fixnum, Float, String, Array, Hash, Bignum, Symbol, Time, Regexp, 
NilClass, TrueClass, FalseClass
         ]
 
         basic_operators = [
           :+, :-, :*, :/, :%, :==, :===, :<, :<=, :<<, :[], :[]=,
-          :length, :size, :empty?, :succ, :>, :>=, :!, :!=, :=~, :freeze
+          :length, :size, :empty?, :succ, :>, :>=, :!, :!=, :=~, :freeze, :-@, 
:max, :min
         ]
 
-        class Bug11182
+        bug11182 = Class.new do
           def fixed?
             true
           end
         end
-        private_constant :Bug11182
 
-        refine Bug11182 do
+        refine bug11182 do
           def fixed?
           end
         end
 
-        class Bug11182Sub < Bug11182
+        _ = Class.new(bug11182) do
           alias _fixed? fixed?
           protected :_fixed?
         end
-        private_constant :Bug11182Sub
 
-        if (Bug11182.new.fixed? rescue false)
+        if (bug11182.new.fixed? rescue false)
           basic_classes.each do |klass|
             basic_operators.each do |bop|
-              refine(klass) do
-                define_method(bop) {}
+              if klass.public_method_defined?(bop)
+                refine(klass) do
+                  define_method(bop) {}
+                end
               end
             end
           end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/power_assert/parser.rb 
new/lib/power_assert/parser.rb
--- old/lib/power_assert/parser.rb      2017-05-04 03:13:02.000000000 +0200
+++ new/lib/power_assert/parser.rb      2017-08-19 08:50:16.000000000 +0200
@@ -6,7 +6,7 @@
 
     attr_reader :line, :path, :lineno, :binding
 
-    def initialize(line, path, lineno, binding, assertion_method_name = nil)
+    def initialize(line, path, lineno, binding, assertion_method_name = nil, 
assertion_proc = nil)
       @line = line
       @line_for_parsing = valid_syntax?(line) ? line : slice_expression(line)
       @path = path
@@ -14,6 +14,7 @@
       @binding = binding
       @proc_local_variables = binding.eval('local_variables').map(&:to_s)
       @assertion_method_name = assertion_method_name
+      @assertion_proc = assertion_proc
     end
 
     def idents
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/power_assert/version.rb 
new/lib/power_assert/version.rb
--- old/lib/power_assert/version.rb     2017-05-04 03:13:02.000000000 +0200
+++ new/lib/power_assert/version.rb     2017-08-19 08:50:16.000000000 +0200
@@ -1,3 +1,3 @@
 module PowerAssert
-  VERSION = "1.0.2"
+  VERSION = "1.1.0"
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/power_assert.rb new/lib/power_assert.rb
--- old/lib/power_assert.rb     2017-05-04 03:13:02.000000000 +0200
+++ new/lib/power_assert.rb     2017-08-19 08:50:16.000000000 +0200
@@ -22,9 +22,16 @@
 require 'power_assert/context'
 
 module PowerAssert
-  POWER_ASSERT_LIB_DIR = __dir__
-  IGNORED_LIB_DIRS = {PowerAssert => POWER_ASSERT_LIB_DIR}
-  private_constant :POWER_ASSERT_LIB_DIR, :IGNORED_LIB_DIRS
+  POWER_ASSERT_LIB_DIR = File.dirname(caller_locations(1, 1).first.path)
+  INTERNAL_LIB_DIRS = {PowerAssert => POWER_ASSERT_LIB_DIR}
+  private_constant :POWER_ASSERT_LIB_DIR, :INTERNAL_LIB_DIRS
+
+  # For backward compatibility
+  IGNORED_LIB_DIRS = INTERNAL_LIB_DIRS
+  private_constant :IGNORED_LIB_DIRS
+  if respond_to?(:deprecate_constant)
+    deprecate_constant :IGNORED_LIB_DIRS
+  end
 
   class << self
     def start(assertion_proc_or_source, assertion_method: nil, source_binding: 
TOPLEVEL_BINDING)
@@ -46,27 +53,27 @@
     end
 
     def app_caller_locations
-      caller_locations.drop_while {|i| ignored_file?(i.path) }.take_while {|i| 
! ignored_file?(i.path) }
+      caller_locations.drop_while {|i| internal_file?(i.path) }.take_while 
{|i| ! internal_file?(i.path) }
     end
 
     def app_context?
       top_frame = caller_locations.drop_while {|i| 
i.path.start_with?(POWER_ASSERT_LIB_DIR) }.first
-      top_frame and ! ignored_file?(top_frame.path)
+      top_frame and ! internal_file?(top_frame.path)
     end
 
     private
 
-    def ignored_file?(file)
-      setup_ignored_lib_dir(Byebug, :attach, 2) if defined?(Byebug)
-      setup_ignored_lib_dir(PryByebug, :start_with_pry_byebug, 2, Pry) if 
defined?(PryByebug)
-      IGNORED_LIB_DIRS.find do |_, dir|
+    def internal_file?(file)
+      setup_internal_lib_dir(Byebug, :attach, 2) if defined?(Byebug)
+      setup_internal_lib_dir(PryByebug, :start_with_pry_byebug, 2, Pry) if 
defined?(PryByebug)
+      INTERNAL_LIB_DIRS.find do |_, dir|
         file.start_with?(dir)
       end
     end
 
-    def setup_ignored_lib_dir(lib, mid, depth, lib_obj = lib)
-      unless IGNORED_LIB_DIRS.key?(lib)
-        IGNORED_LIB_DIRS[lib] = lib_dir(lib_obj, mid, depth)
+    def setup_internal_lib_dir(lib, mid, depth, lib_obj = lib)
+      unless INTERNAL_LIB_DIRS.key?(lib)
+        INTERNAL_LIB_DIRS[lib] = lib_dir(lib_obj, mid, depth)
       end
     rescue NameError
     end
@@ -76,8 +83,11 @@
     end
 
     if defined?(RubyVM)
+      CLEAR_CACHE_ISEQ = RubyVM::InstructionSequence.compile('using 
PowerAssert.const_get(:Empty)')
+      private_constant :CLEAR_CACHE_ISEQ
+
       def clear_global_method_cache
-        eval('using PowerAssert.const_get(:Empty)', TOPLEVEL_BINDING)
+        CLEAR_CACHE_ISEQ.eval
       end
     end
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2017-05-04 03:13:02.000000000 +0200
+++ new/metadata        2017-08-19 08:50:16.000000000 +0200
@@ -1,14 +1,14 @@
 --- !ruby/object:Gem::Specification
 name: power_assert
 version: !ruby/object:Gem::Version
-  version: 1.0.2
+  version: 1.1.0
 platform: ruby
 authors:
 - Kazuki Tsujimoto
 autorequire: 
 bindir: exe
 cert_chain: []
-date: 2017-05-04 00:00:00.000000000 Z
+date: 2017-08-19 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: test-unit
@@ -146,7 +146,7 @@
       version: '0'
 requirements: []
 rubyforge_project: 
-rubygems_version: 2.6.8
+rubygems_version: 2.6.11
 signing_key: 
 specification_version: 4
 summary: Power Assert for Ruby
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/power_assert.gemspec new/power_assert.gemspec
--- old/power_assert.gemspec    2017-05-04 03:13:02.000000000 +0200
+++ new/power_assert.gemspec    2017-08-19 08:50:16.000000000 +0200
@@ -13,7 +13,7 @@
   s.description = "Power Assert for Ruby. Power Assert shows each value of 
variables and method calls in the expression. It is useful for testing, 
providing which value wasn't correct when the condition is not satisfied."
 
   s.files         = `git ls-files -z`.split("\x0").reject do |f|
-    f.match(%r{^(test|spec|features|benchmarks)/})
+    f.match(%r{^(test|spec|features|benchmark)/})
   end
   s.bindir        = 'exe'
   s.executables   = s.files.grep(%r{^exe/}) { |f| File.basename(f) }


Reply via email to