piggly 2.2.0 → 2.2.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.
- checksums.yaml +4 -4
- data/lib/piggly/command/base.rb +7 -19
- data/lib/piggly/config.rb +20 -9
- data/lib/piggly/version.rb +2 -2
- data/spec/examples/config_spec.rb +3 -3
- data/spec/{028_spec.rb → issues/028_spec.rb} +0 -0
- data/spec/issues/032_spec.rb +102 -0
- data/spec/spec_helper.rb +0 -4
- metadata +4 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 0aca5c86391dab9ddd1b0529e469c67f440ce9c8
         | 
| 4 | 
            +
              data.tar.gz: aa7ced6807ad226312f95fb428d6e1ea36aa6af4
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9a77dc4124175df8e45f1223e0b46c3dee9bb2f8282f0552b61dcccf4dc5348da072a5c5672bb77656c05f1b4e29fc9d0e47392d7d90fcad3396539f5c782e3e
         | 
| 7 | 
            +
              data.tar.gz: 438b3ceb842971d0233eb16e9f41513b4494e50457e0bd8879f3aaa0858feeb4bf1ee11e17430b3b537f5c503e4a362deffa48b5a3739c24d38ca0f02536e7d2
         | 
    
        data/lib/piggly/command/base.rb
    CHANGED
    
    | @@ -16,8 +16,6 @@ module Piggly | |
| 16 16 | 
             
                    end
         | 
| 17 17 | 
             
                  end
         | 
| 18 18 |  | 
| 19 | 
            -
                private
         | 
| 20 | 
            -
             | 
| 21 19 | 
             
                  # @return [(Class, Array<String>)]
         | 
| 22 20 | 
             
                  def command(argv)
         | 
| 23 21 | 
             
                    return if argv.empty?
         | 
| @@ -67,26 +65,16 @@ module Piggly | |
| 67 65 | 
             
                    else
         | 
| 68 66 | 
             
                      head, _ = config.filters
         | 
| 69 67 |  | 
| 70 | 
            -
                      start = | 
| 68 | 
            +
                      start =
         | 
| 69 | 
            +
                        case head.first
         | 
| 70 | 
            +
                        when :+; []
         | 
| 71 | 
            +
                        when :-; index.procedures
         | 
| 72 | 
            +
                        end
         | 
| 71 73 |  | 
| 72 74 | 
             
                      config.filters.inject(start) do |s, pair|
         | 
| 73 75 | 
             
                        case pair.first
         | 
| 74 | 
            -
             | 
| 75 | 
            -
             | 
| 76 | 
            -
                            o = s.select(&pair.last)
         | 
| 77 | 
            -
                            puts "Selected #{ o.count} procedures"
         | 
| 78 | 
            -
                            puts "Selected:"
         | 
| 79 | 
            -
                            o.each do |x| puts x.name end
         | 
| 80 | 
            -
            		puts "---"
         | 
| 81 | 
            -
                            o
         | 
| 82 | 
            -
                          when :-
         | 
| 83 | 
            -
                            puts "Rejecting procedures"
         | 
| 84 | 
            -
                            o = s.reject(&pair.last)
         | 
| 85 | 
            -
                            puts "Rejected #{s.count - o.count} procedures"
         | 
| 86 | 
            -
                            puts "Rejected:"
         | 
| 87 | 
            -
                            ((o-s)|(s-o)).each do |x| puts x.name end
         | 
| 88 | 
            -
                            puts "---"
         | 
| 89 | 
            -
                            o
         | 
| 76 | 
            +
                        when :+; s | index.procedures.select(&pair.last)
         | 
| 77 | 
            +
                        when :-; s.reject(&pair.last)
         | 
| 90 78 | 
             
                        end
         | 
| 91 79 | 
             
                      end
         | 
| 92 80 | 
             
                    end
         | 
    
        data/lib/piggly/config.rb
    CHANGED
    
    | @@ -45,15 +45,15 @@ module Piggly | |
| 45 45 | 
             
              end
         | 
| 46 46 |  | 
| 47 47 | 
             
              class Config
         | 
| 48 | 
            -
                 | 
| 49 | 
            -
                  :cache_root | 
| 50 | 
            -
                  :report_root | 
| 51 | 
            -
                  :database_yml | 
| 52 | 
            -
                  :connection_name | 
| 53 | 
            -
                  :trace_prefix | 
| 54 | 
            -
                  :accumulate | 
| 55 | 
            -
                  :dry_run | 
| 56 | 
            -
                  :filters | 
| 48 | 
            +
                attr_accessor \
         | 
| 49 | 
            +
                  :cache_root,
         | 
| 50 | 
            +
                  :report_root,
         | 
| 51 | 
            +
                  :database_yml,
         | 
| 52 | 
            +
                  :connection_name,
         | 
| 53 | 
            +
                  :trace_prefix,
         | 
| 54 | 
            +
                  :accumulate,
         | 
| 55 | 
            +
                  :dry_run,
         | 
| 56 | 
            +
                  :filters
         | 
| 57 57 |  | 
| 58 58 | 
             
                alias accumulate? accumulate
         | 
| 59 59 |  | 
| @@ -64,5 +64,16 @@ module Piggly | |
| 64 64 | 
             
                def mkpath(*args)
         | 
| 65 65 | 
             
                  self.class.mkpath(*args)
         | 
| 66 66 | 
             
                end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                def initialize
         | 
| 69 | 
            +
                  @cache_root       = File.expand_path("#{Dir.pwd}/piggly/cache")
         | 
| 70 | 
            +
                  @report_root      = File.expand_path("#{Dir.pwd}/piggly/reports")
         | 
| 71 | 
            +
                  @database_yml     = nil
         | 
| 72 | 
            +
                  @connection_name  = "piggly"
         | 
| 73 | 
            +
                  @trace_prefix     = "PIGGLY"
         | 
| 74 | 
            +
                  @accumulate       = false
         | 
| 75 | 
            +
                  @dry_run          = false
         | 
| 76 | 
            +
                  @filters          = []
         | 
| 77 | 
            +
                end
         | 
| 67 78 | 
             
              end
         | 
| 68 79 | 
             
            end
         | 
    
        data/lib/piggly/version.rb
    CHANGED
    
    
| @@ -17,15 +17,15 @@ describe Config do | |
| 17 17 | 
             
              end
         | 
| 18 18 |  | 
| 19 19 | 
             
              it "has default values" do
         | 
| 20 | 
            -
             | 
| 20 | 
            +
              # @config.cache_root = nil
         | 
| 21 21 | 
             
                @config.cache_root.should_not be_nil
         | 
| 22 22 | 
             
                @config.cache_root.should =~ /cache$/
         | 
| 23 23 |  | 
| 24 | 
            -
             | 
| 24 | 
            +
              # @config.report_root = nil
         | 
| 25 25 | 
             
                @config.report_root.should_not be_nil
         | 
| 26 26 | 
             
                @config.report_root.should =~ /reports$/
         | 
| 27 27 |  | 
| 28 | 
            -
             | 
| 28 | 
            +
              # @config.trace_prefix = nil
         | 
| 29 29 | 
             
                @config.trace_prefix.should_not be_nil
         | 
| 30 30 | 
             
                @config.trace_prefix.should == 'PIGGLY'
         | 
| 31 31 | 
             
              end
         | 
| 
            File without changes
         | 
| @@ -0,0 +1,102 @@ | |
| 1 | 
            +
            require "spec_helper"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Piggly
         | 
| 4 | 
            +
              describe "github issue #32" do
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                # note: both -r always subtracts and -s always adds
         | 
| 7 | 
            +
                # from left-to-right (first-to-last), so -r Y -s Y
         | 
| 8 | 
            +
                # or -s Y -r Y undo each other and have no effect.
         | 
| 9 | 
            +
                #
         | 
| 10 | 
            +
                # if the first filter is -s, then the set starts empty
         | 
| 11 | 
            +
                # and -s adds to it.
         | 
| 12 | 
            +
                #
         | 
| 13 | 
            +
                # if the first filter is -r, then the set starts with
         | 
| 14 | 
            +
                # all procedures and -r removes from it.
         | 
| 15 | 
            +
             | 
| 16 | 
            +
             | 
| 17 | 
            +
                def result(args)
         | 
| 18 | 
            +
                  index = double("index", :procedures => [
         | 
| 19 | 
            +
                            double("public.a", :name => "public.a"),
         | 
| 20 | 
            +
                            double("public.b", :name => "public.b"),
         | 
| 21 | 
            +
                            double("public.c", :name => "public.c"),
         | 
| 22 | 
            +
                            double("public.d", :name => "public.d")])
         | 
| 23 | 
            +
                  config = Command::Trace.configure(args.dup)
         | 
| 24 | 
            +
                  p config.object_id, config.filters.object_id
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  result = Command::Trace.filter(config, index)
         | 
| 27 | 
            +
                  result.map(&:name).sort
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
                
         | 
| 30 | 
            +
                context "with one -s argument" do
         | 
| 31 | 
            +
                  let(:args) { %w(-s public.c) }
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                  it "selects matching procs" do
         | 
| 34 | 
            +
                    result(args).should == ["public.c"]
         | 
| 35 | 
            +
                  end
         | 
| 36 | 
            +
                end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                context "with -s regular expression" do
         | 
| 39 | 
            +
                  let(:args) { %w(-s /public.[bcd]/) }
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                  it "selects matching procs" do
         | 
| 42 | 
            +
                    result(args).should == [
         | 
| 43 | 
            +
                      "public.b",
         | 
| 44 | 
            +
                      "public.c",
         | 
| 45 | 
            +
                      "public.d"]
         | 
| 46 | 
            +
                  end
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                context "with two -s arguments" do
         | 
| 50 | 
            +
                  let(:args) { %w(-s public.b -s public.d) }
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                  it "adds matching procs" do
         | 
| 53 | 
            +
                    result(args).should == [
         | 
| 54 | 
            +
                      "public.b",
         | 
| 55 | 
            +
                      "public.d"] #
         | 
| 56 | 
            +
                  end
         | 
| 57 | 
            +
                end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                context "with one -r argument" do
         | 
| 60 | 
            +
                  let(:args) { %w(-r public.c) }
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                  it "rejects matching procs" do
         | 
| 63 | 
            +
                    result(args).should == [
         | 
| 64 | 
            +
                      "public.a",
         | 
| 65 | 
            +
                      "public.b",
         | 
| 66 | 
            +
                      "public.d"] #
         | 
| 67 | 
            +
                  end
         | 
| 68 | 
            +
                end
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                context "with two -r arguments" do
         | 
| 71 | 
            +
                  let(:args) { %w(-r public.b -r public.d) }
         | 
| 72 | 
            +
             | 
| 73 | 
            +
                  it "subtracts rejected procs" do
         | 
| 74 | 
            +
                    result(args).should == [
         | 
| 75 | 
            +
                      "public.a",
         | 
| 76 | 
            +
                      "public.c"]
         | 
| 77 | 
            +
                  end
         | 
| 78 | 
            +
                end
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                context "with -s then -r" do
         | 
| 81 | 
            +
                  let(:args) { %w(-s /\.[abc]/ -r public.b -r public.d) }
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                  it "-r removes from -s matches" do
         | 
| 84 | 
            +
                    result(args).should == [
         | 
| 85 | 
            +
                      "public.a",
         | 
| 86 | 
            +
                      "public.c"]
         | 
| 87 | 
            +
                  end
         | 
| 88 | 
            +
                end
         | 
| 89 | 
            +
             | 
| 90 | 
            +
                context "with -r then -s" do
         | 
| 91 | 
            +
                  let(:args) { %w(-r /\.[bc]/ -s public.b -s public.a) }
         | 
| 92 | 
            +
             | 
| 93 | 
            +
                  it "-s adds to -r non-matches" do
         | 
| 94 | 
            +
                    result(args).should == [
         | 
| 95 | 
            +
                      "public.a",
         | 
| 96 | 
            +
                      "public.b",
         | 
| 97 | 
            +
                      "public.d"]
         | 
| 98 | 
            +
                  end
         | 
| 99 | 
            +
                end
         | 
| 100 | 
            +
             | 
| 101 | 
            +
              end
         | 
| 102 | 
            +
            end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -7,10 +7,6 @@ end | |
| 7 7 | 
             
            require "ostruct"
         | 
| 8 8 | 
             
            require File.expand_path("#{File.dirname(__FILE__)}/../lib/piggly")
         | 
| 9 9 |  | 
| 10 | 
            -
            #Dir[File.join(File.dirname(__FILE__), 'mocks', '*')].each do |m|
         | 
| 11 | 
            -
            #  require File.expand_path(m)
         | 
| 12 | 
            -
            #end
         | 
| 13 | 
            -
             | 
| 14 10 | 
             
            # load runtime dependencies
         | 
| 15 11 | 
             
            Piggly::Parser.parser
         | 
| 16 12 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: piggly
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2.2. | 
| 4 | 
            +
              version: 2.2.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Kvle Putnam
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017- | 
| 11 | 
            +
            date: 2017-10-14 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: treetop
         | 
| @@ -90,7 +90,6 @@ files: | |
| 90 90 | 
             
            - lib/piggly/util/process_queue.rb
         | 
| 91 91 | 
             
            - lib/piggly/util/thunk.rb
         | 
| 92 92 | 
             
            - lib/piggly/version.rb
         | 
| 93 | 
            -
            - spec/028_spec.rb
         | 
| 94 93 | 
             
            - spec/examples/compiler/cacheable_spec.rb
         | 
| 95 94 | 
             
            - spec/examples/compiler/report_spec.rb
         | 
| 96 95 | 
             
            - spec/examples/compiler/trace_spec.rb
         | 
| @@ -135,6 +134,8 @@ files: | |
| 135 134 | 
             
            - spec/issues/007_spec.rb
         | 
| 136 135 | 
             
            - spec/issues/008_spec.rb
         | 
| 137 136 | 
             
            - spec/issues/018_spec.rb
         | 
| 137 | 
            +
            - spec/issues/028_spec.rb
         | 
| 138 | 
            +
            - spec/issues/032_spec.rb
         | 
| 138 139 | 
             
            - spec/spec_helper.rb
         | 
| 139 140 | 
             
            - spec/spec_suite.rb
         | 
| 140 141 | 
             
            homepage: http://github.com/kputnam/piggly
         |