epitools 0.5.113 → 0.5.114
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/VERSION +1 -1
 - data/lib/epitools/colored.rb +3 -0
 - data/lib/epitools/core_ext/array.rb +1 -0
 - data/lib/epitools/core_ext/enumerable.rb +4 -1
 - data/lib/epitools/core_ext/hash.rb +14 -0
 - data/lib/epitools/core_ext/misc.rb +34 -1
 - data/lib/epitools/minimal.rb +7 -0
 - data/lib/epitools/path.rb +3 -2
 - data/spec/core_ext_spec.rb +28 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 12639fe716d554565a2dafdf486f339a0b5a85389dd6ab751c05ccbfbd6d76c3
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: dc13d1ab805e37c082a14af7e4262a86d7aed06842147f1405c3cce028d0b3c8
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: fd51698c2b95781babd4b7b4b741d39eac594852c2695f011c483d962d7498d6a426287e2486e158d7ff4f70d1145b385cc113a4e2fd9479404934b3f4d95faf
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 2a00245d9dc98adde9e5cdee8f565c7c1875f03b1413ff24a6e8de67546220f09d437440b54f4a480338cc9fadb5bd8fb7efbb694090ef4e862138ce0389b469
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            0.5. 
     | 
| 
      
 1 
     | 
    
         
            +
            0.5.114
         
     | 
    
        data/lib/epitools/colored.rb
    CHANGED
    
    | 
         @@ -39,6 +39,9 @@ 
     | 
|
| 
       39 
39 
     | 
    
         
             
            #   >> Colored.enable_temporarily { puts "whee!".red }
         
     | 
| 
       40 
40 
     | 
    
         
             
            #
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
      
 42 
     | 
    
         
            +
            # ANSI spec:
         
     | 
| 
      
 43 
     | 
    
         
            +
            #   https://github.com/tonyg/racket-ansi/blob/master/doc/all-escapes.txt
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
       42 
45 
     | 
    
         
             
            require 'set'
         
     | 
| 
       43 
46 
     | 
    
         
             
            require 'rbconfig'
         
     | 
| 
       44 
47 
     | 
    
         
             
            require 'Win32/Console/ANSI' if RbConfig::CONFIG['host_os'] =~ /mswin|mingw/
         
     | 
| 
         @@ -240,10 +240,13 @@ module Enumerable 
     | 
|
| 
       240 
240 
     | 
    
         
             
                already_seen = Set.new
         
     | 
| 
       241 
241 
     | 
    
         | 
| 
       242 
242 
     | 
    
         
             
                Enumerator::Lazy.new(self) do |yielder, value|
         
     | 
| 
       243 
     | 
    
         
            -
                   
     | 
| 
      
 243 
     | 
    
         
            +
                  key = block_given? ? yield(value) : value
         
     | 
| 
      
 244 
     | 
    
         
            +
                  yielder << value if already_seen.add?(key)
         
     | 
| 
       244 
245 
     | 
    
         
             
                end
         
     | 
| 
       245 
246 
     | 
    
         
             
              end
         
     | 
| 
       246 
247 
     | 
    
         | 
| 
      
 248 
     | 
    
         
            +
              alias_method :uniq_by, :uniq
         
     | 
| 
      
 249 
     | 
    
         
            +
             
     | 
| 
       247 
250 
     | 
    
         
             
              #
         
     | 
| 
       248 
251 
     | 
    
         
             
              # The same as "map", except that if an element is an Array or Enumerable, map is called
         
     | 
| 
       249 
252 
     | 
    
         
             
              # recursively on that element. (Hashes are ignored because of the complications of block
         
     | 
| 
         @@ -1,6 +1,20 @@ 
     | 
|
| 
       1 
1 
     | 
    
         | 
| 
       2 
2 
     | 
    
         
             
            class Hash
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
      
 4 
     | 
    
         
            +
              #
         
     | 
| 
      
 5 
     | 
    
         
            +
              # `hash1 + hash2` merge the two hashes, returning a new hash
         
     | 
| 
      
 6 
     | 
    
         
            +
              #
         
     | 
| 
      
 7 
     | 
    
         
            +
              def +(other)
         
     | 
| 
      
 8 
     | 
    
         
            +
                merge(other)
         
     | 
| 
      
 9 
     | 
    
         
            +
              end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              #
         
     | 
| 
      
 12 
     | 
    
         
            +
              # `hash1 - hash2` removes keys from hash1 that exist in hash2, returning a new hash
         
     | 
| 
      
 13 
     | 
    
         
            +
              #
         
     | 
| 
      
 14 
     | 
    
         
            +
              def -(other)
         
     | 
| 
      
 15 
     | 
    
         
            +
                dup.delete_if { |k,v| other.includes?(k) }
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       4 
18 
     | 
    
         
             
              #
         
     | 
| 
       5 
19 
     | 
    
         
             
              # 'true' if the Hash has no entries
         
     | 
| 
       6 
20 
     | 
    
         
             
              #
         
     | 
| 
         @@ -144,6 +144,39 @@ module URI 
     | 
|
| 
       144 
144 
     | 
    
         
             
                to_s
         
     | 
| 
       145 
145 
     | 
    
         
             
              end
         
     | 
| 
       146 
146 
     | 
    
         | 
| 
      
 147 
     | 
    
         
            +
              #
         
     | 
| 
      
 148 
     | 
    
         
            +
              # Default user agent for the 'get' method
         
     | 
| 
      
 149 
     | 
    
         
            +
              #
         
     | 
| 
      
 150 
     | 
    
         
            +
              # USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0"
         
     | 
| 
      
 151 
     | 
    
         
            +
             
     | 
| 
      
 152 
     | 
    
         
            +
              #
         
     | 
| 
      
 153 
     | 
    
         
            +
              # Get this URI using Net::HTTP
         
     | 
| 
      
 154 
     | 
    
         
            +
              #
         
     | 
| 
      
 155 
     | 
    
         
            +
              def get(headers={}, redirect_limit=10)
         
     | 
| 
      
 156 
     | 
    
         
            +
                raise "Sorry, URI can't get from #{scheme.inspect} URIs yet" unless scheme =~ /^https?$/
         
     | 
| 
      
 157 
     | 
    
         
            +
                raise 'Too many HTTP redirections' if redirect_limit == 0
         
     | 
| 
      
 158 
     | 
    
         
            +
             
     | 
| 
      
 159 
     | 
    
         
            +
                # headers['User-Agent'] ||= USER_AGENT
         
     | 
| 
      
 160 
     | 
    
         
            +
             
     | 
| 
      
 161 
     | 
    
         
            +
                # response = Net::HTTP.start(host, port) do |http|
         
     | 
| 
      
 162 
     | 
    
         
            +
                #   # the_path = path.empty? ? "/" : path
         
     | 
| 
      
 163 
     | 
    
         
            +
                #   req = Net::HTTP::Get.new(self, headers)
         
     | 
| 
      
 164 
     | 
    
         
            +
                #   http.request(req)
         
     | 
| 
      
 165 
     | 
    
         
            +
                # end
         
     | 
| 
      
 166 
     | 
    
         
            +
             
     | 
| 
      
 167 
     | 
    
         
            +
                response = Net::HTTP.get_response(self)
         
     | 
| 
      
 168 
     | 
    
         
            +
             
     | 
| 
      
 169 
     | 
    
         
            +
                case response
         
     | 
| 
      
 170 
     | 
    
         
            +
                when Net::HTTPSuccess
         
     | 
| 
      
 171 
     | 
    
         
            +
                  response
         
     | 
| 
      
 172 
     | 
    
         
            +
                when Net::HTTPRedirection
         
     | 
| 
      
 173 
     | 
    
         
            +
                  # puts "redirect: #{response['location']}"
         
     | 
| 
      
 174 
     | 
    
         
            +
                  URI(response['location']).get(headers, redirect_limit-1)
         
     | 
| 
      
 175 
     | 
    
         
            +
                else
         
     | 
| 
      
 176 
     | 
    
         
            +
                  response.error!
         
     | 
| 
      
 177 
     | 
    
         
            +
                end
         
     | 
| 
      
 178 
     | 
    
         
            +
              end
         
     | 
| 
      
 179 
     | 
    
         
            +
             
     | 
| 
       147 
180 
     | 
    
         
             
            end
         
     | 
| 
       148 
181 
     | 
    
         | 
| 
       149 
182 
     | 
    
         
             
            #
         
     | 
| 
         @@ -156,7 +189,7 @@ module Better_URI_RFC3986_Parser # ::RFC3986_relative_ref 
     | 
|
| 
       156 
189 
     | 
    
         
             
                subsitutions = ESCAPE_ME_PLZ.chars.map { |c| [c, CGI.escape(c)] }
         
     | 
| 
       157 
190 
     | 
    
         
             
                subsitutions << [" ", "%20"]
         
     | 
| 
       158 
191 
     | 
    
         | 
| 
       159 
     | 
    
         
            -
                subsitutions.each do |find, replace| 
     | 
| 
      
 192 
     | 
    
         
            +
                subsitutions.each do |find, replace|
         
     | 
| 
       160 
193 
     | 
    
         
             
                  uri = uri.gsub(find, replace)
         
     | 
| 
       161 
194 
     | 
    
         
             
                end
         
     | 
| 
       162 
195 
     | 
    
         | 
    
        data/lib/epitools/minimal.rb
    CHANGED
    
    
    
        data/lib/epitools/path.rb
    CHANGED
    
    | 
         @@ -653,8 +653,9 @@ class Path 
     | 
|
| 
       653 
653 
     | 
    
         
             
              #
         
     | 
| 
       654 
654 
     | 
    
         
             
              # All the lines in this file, chomped.
         
     | 
| 
       655 
655 
     | 
    
         
             
              #
         
     | 
| 
       656 
     | 
    
         
            -
              def each_line 
     | 
| 
       657 
     | 
    
         
            -
                 
     | 
| 
      
 656 
     | 
    
         
            +
              def each_line
         
     | 
| 
      
 657 
     | 
    
         
            +
                return to_enum(:each_line) unless block_given?
         
     | 
| 
      
 658 
     | 
    
         
            +
                open { |io| io.each_line { |line| yield line.chomp } }
         
     | 
| 
       658 
659 
     | 
    
         
             
              end
         
     | 
| 
       659 
660 
     | 
    
         
             
              alias_method :each,       :each_line
         
     | 
| 
       660 
661 
     | 
    
         
             
              alias_method :lines,      :each_line
         
     | 
    
        data/spec/core_ext_spec.rb
    CHANGED
    
    | 
         @@ -300,7 +300,7 @@ describe String do 
     | 
|
| 
       300 
300 
     | 
    
         
             
              it "wordses" do
         
     | 
| 
       301 
301 
     | 
    
         
             
                s = "This, is a bunch, of words."
         
     | 
| 
       302 
302 
     | 
    
         
             
                s.words.should == ["This", "is", "a", "bunch", "of", "words"]
         
     | 
| 
       303 
     | 
    
         
            -
             
     | 
| 
      
 303 
     | 
    
         
            +
             
     | 
| 
       304 
304 
     | 
    
         
             
                "Weird word-like things".words.should == ["Weird", "word", "like", "things"]
         
     | 
| 
       305 
305 
     | 
    
         
             
              end
         
     | 
| 
       306 
306 
     | 
    
         | 
| 
         @@ -664,6 +664,11 @@ describe Enumerable do 
     | 
|
| 
       664 
664 
     | 
    
         | 
| 
       665 
665 
     | 
    
         
             
              it "uniqs lazily" do
         
     | 
| 
       666 
666 
     | 
    
         
             
                [0,0,0,1].cycle.uniq.take(2).to_a.should == [0,1]
         
     | 
| 
      
 667 
     | 
    
         
            +
                [0,0,0,1].cycle.uniq_by(&:prime?).take(1).to_a.should == [0]
         
     | 
| 
      
 668 
     | 
    
         
            +
              end
         
     | 
| 
      
 669 
     | 
    
         
            +
             
     | 
| 
      
 670 
     | 
    
         
            +
              it "uniq_bys" do
         
     | 
| 
      
 671 
     | 
    
         
            +
                [1,2,3,4].uniq_by(&:prime?).to_a.should == [1,2]
         
     | 
| 
       667 
672 
     | 
    
         
             
              end
         
     | 
| 
       668 
673 
     | 
    
         | 
| 
       669 
674 
     | 
    
         
             
              it "foldl's" do
         
     | 
| 
         @@ -1140,3 +1145,25 @@ describe "Anything" do 
     | 
|
| 
       1140 
1145 
     | 
    
         
             
              end
         
     | 
| 
       1141 
1146 
     | 
    
         | 
| 
       1142 
1147 
     | 
    
         
             
            end
         
     | 
| 
      
 1148 
     | 
    
         
            +
             
     | 
| 
      
 1149 
     | 
    
         
            +
             
     | 
| 
      
 1150 
     | 
    
         
            +
            describe URI do
         
     | 
| 
      
 1151 
     | 
    
         
            +
             
     | 
| 
      
 1152 
     | 
    
         
            +
              it "paramses" do
         
     | 
| 
      
 1153 
     | 
    
         
            +
                opts = {"q" => "hello", "p" => "whee"}
         
     | 
| 
      
 1154 
     | 
    
         
            +
                query = opts.to_query
         
     | 
| 
      
 1155 
     | 
    
         
            +
                query.should == "q=hello&p=whee"
         
     | 
| 
      
 1156 
     | 
    
         
            +
             
     | 
| 
      
 1157 
     | 
    
         
            +
                uri = URI("http://blah.com/stuff?#{query}")
         
     | 
| 
      
 1158 
     | 
    
         
            +
             
     | 
| 
      
 1159 
     | 
    
         
            +
                uri.params.should == opts
         
     | 
| 
      
 1160 
     | 
    
         
            +
              end
         
     | 
| 
      
 1161 
     | 
    
         
            +
             
     | 
| 
      
 1162 
     | 
    
         
            +
              it "gets" do
         
     | 
| 
      
 1163 
     | 
    
         
            +
                response = URI("http://google.com/").get
         
     | 
| 
      
 1164 
     | 
    
         
            +
                response.body.size
         
     | 
| 
      
 1165 
     | 
    
         
            +
                (response.size > 0).should == true
         
     | 
| 
      
 1166 
     | 
    
         
            +
              end
         
     | 
| 
      
 1167 
     | 
    
         
            +
             
     | 
| 
      
 1168 
     | 
    
         
            +
            end
         
     | 
| 
      
 1169 
     | 
    
         
            +
             
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: epitools
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.5. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.5.114
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - epitron
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2018- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2018-08-13 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rspec
         
     |