ruby-uriparser 0.1.2 → 0.2.0
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 +5 -5
 - data/Gemfile +4 -2
 - data/README.md +3 -1
 - data/Rakefile +5 -3
 - data/ext/uriparser_ext/extconf.rb +3 -1
 - data/ext/uriparser_ext/uriparser.c +60 -30
 - data/lib/uriparser.rb +13 -19
 - data/lib/uriparser/uri_gem.rb +6 -4
 - data/lib/uriparser/version.rb +4 -2
 - data/test/test_helper.rb +11 -2
 - data/test/uriparser_test.rb +95 -71
 - metadata +37 -10
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 2 
     | 
    
         
            +
            SHA256:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 04a0cd98ff9826b233dbc567276e1dad5485c0068ac48c5d6809929876b05c73
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: '08cb5e19c101d70dfd1a34a189be595829b03de8ed150fbaadc7edeb36ae4504'
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: fdc713b945f0874b05cf622941387ff0f90f74fd6f9a84b938f334f31e15ccfa7cb899afd9a8b1f3cbf8afb03474a7e40a959bbdf17a674b48b3356e3a11c4a9
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: ad799965b0b8bf958255b0a4be711e7f40f0a527d424a5d00c637220e4a4431ac6c199bc57346d61cb09f3b45d8fc4e56aa7788d53ba8ffc579ae23f84657ef7
         
     | 
    
        data/Gemfile
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -1,6 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # ruby-uriparser
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            [](http://badge.fury.io/rb/ruby-uriparser)
         
     | 
| 
      
 4 
     | 
    
         
            +
            [](https://travis-ci.org/tlewin/ruby-uriparser)
         
     | 
| 
      
 5 
     | 
    
         
            +
            [](https://github.com/rubocop-hq/rubocop)
         
     | 
| 
       4 
6 
     | 
    
         | 
| 
       5 
7 
     | 
    
         
             
            Ruby-uriparser is a wrapper for [uriparser](http://uriparser.sourceforge.net/) C library which is fast (linear input length time complexity), approximatelly 7.5x faster than the standard ruby URI library with a low memory consumption.
         
     | 
| 
       6 
8 
     | 
    
         | 
| 
         @@ -56,4 +58,4 @@ This project includes code from the New BSD licensed: 
     | 
|
| 
       56 
58 
     | 
    
         
             
            * Copyright (C) 2007, Weijia Song <songweijia@gmail.com>
         
     | 
| 
       57 
59 
     | 
    
         
             
            * Copyright (C) 2007, Sebastian Pipping <webmaster@hartwork.org>
         
     | 
| 
       58 
60 
     | 
    
         | 
| 
       59 
     | 
    
         
            -
            All rights reserved.
         
     | 
| 
      
 61 
     | 
    
         
            +
            All rights reserved.
         
     | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -1,10 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       1 
3 
     | 
    
         
             
            require 'rake/extensiontask'
         
     | 
| 
       2 
4 
     | 
    
         
             
            require 'rake/testtask'
         
     | 
| 
       3 
5 
     | 
    
         | 
| 
       4 
6 
     | 
    
         
             
            Rake::ExtensionTask.new('uriparser_ext')
         
     | 
| 
       5 
7 
     | 
    
         | 
| 
       6 
8 
     | 
    
         
             
            desc 'run tests'
         
     | 
| 
       7 
     | 
    
         
            -
            Rake::TestTask.new(: 
     | 
| 
      
 9 
     | 
    
         
            +
            Rake::TestTask.new(test: :'ext:build') do |test|
         
     | 
| 
       8 
10 
     | 
    
         
             
              test.libs << 'test'
         
     | 
| 
       9 
11 
     | 
    
         
             
              test.pattern = 'test/**/*_test.rb'
         
     | 
| 
       10 
12 
     | 
    
         
             
              test.verbose = true
         
     | 
| 
         @@ -12,7 +14,7 @@ end 
     | 
|
| 
       12 
14 
     | 
    
         | 
| 
       13 
15 
     | 
    
         
             
            namespace :ext do
         
     | 
| 
       14 
16 
     | 
    
         
             
              desc 'build extention'
         
     | 
| 
       15 
     | 
    
         
            -
              task : 
     | 
| 
      
 17 
     | 
    
         
            +
              task build: %i[clobber compile]
         
     | 
| 
       16 
18 
     | 
    
         
             
            end
         
     | 
| 
       17 
19 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
            task : 
     | 
| 
      
 20 
     | 
    
         
            +
            task default: :test
         
     | 
| 
         @@ -73,10 +73,11 @@ struct uri_data { 
     | 
|
| 
       73 
73 
     | 
    
         | 
| 
       74 
74 
     | 
    
         
             
            /* Helper methods prototypes */
         
     | 
| 
       75 
75 
     | 
    
         
             
            static void reset_fields(struct uri_data *);
         
     | 
| 
       76 
     | 
    
         
            -
            static void populate_fields(VALUE 
     | 
| 
      
 76 
     | 
    
         
            +
            static void populate_fields(VALUE);
         
     | 
| 
       77 
77 
     | 
    
         
             
            static VALUE compose_uri_from_data(struct uri_data *);
         
     | 
| 
       78 
     | 
    
         
            -
            static int parse_uri(char *, UriUriA *);
         
     | 
| 
      
 78 
     | 
    
         
            +
            static int parse_uri(const char *, UriUriA *);
         
     | 
| 
       79 
79 
     | 
    
         
             
            static void free_uri(UriUriA *);
         
     | 
| 
      
 80 
     | 
    
         
            +
            static UriUriA* update_uri(VALUE);
         
     | 
| 
       80 
81 
     | 
    
         | 
| 
       81 
82 
     | 
    
         
             
            static void
         
     | 
| 
       82 
83 
     | 
    
         
             
            rb_uriparser_mark(void *p)
         
     | 
| 
         @@ -169,14 +170,9 @@ rb_uriparser_get_path(VALUE self) 
     | 
|
| 
       169 
170 
     | 
    
         
             
                    UriPathSegmentA *path_segment = data->uri->pathHead;
         
     | 
| 
       170 
171 
     | 
    
         
             
                    data->path = rb_str_new("/", 1);
         
     | 
| 
       171 
172 
     | 
    
         
             
                    do { /* go through the linked list */ 
         
     | 
| 
       172 
     | 
    
         
            -
                       
     | 
| 
       173 
     | 
    
         
            -
             
     | 
| 
       174 
     | 
    
         
            -
             
     | 
| 
       175 
     | 
    
         
            -
                          path_segment->text.afterLast - path_segment->text.first + 1);
         
     | 
| 
       176 
     | 
    
         
            -
                      } else {
         
     | 
| 
       177 
     | 
    
         
            -
                        rb_str_cat(data->path, path_segment->text.first, 
         
     | 
| 
       178 
     | 
    
         
            -
                          path_segment->text.afterLast - path_segment->text.first);
         
     | 
| 
       179 
     | 
    
         
            -
                      }
         
     | 
| 
      
 173 
     | 
    
         
            +
                      rb_str_cat(data->path, path_segment->text.first, 
         
     | 
| 
      
 174 
     | 
    
         
            +
                        path_segment->text.afterLast - path_segment->text.first + 
         
     | 
| 
      
 175 
     | 
    
         
            +
                          (*path_segment->text.afterLast == '/')); /* check if there is a slash to add */
         
     | 
| 
       180 
176 
     | 
    
         
             
                      path_segment = path_segment->next;
         
     | 
| 
       181 
177 
     | 
    
         
             
                    } while(path_segment);
         
     | 
| 
       182 
178 
     | 
    
         
             
                  } else {
         
     | 
| 
         @@ -197,25 +193,8 @@ rb_uriparser_normalize_bang(VALUE self) 
     | 
|
| 
       197 
193 
     | 
    
         
             
              struct uri_data *data;
         
     | 
| 
       198 
194 
     | 
    
         | 
| 
       199 
195 
     | 
    
         
             
              Data_Get_Struct(self, struct uri_data, data);
         
     | 
| 
       200 
     | 
    
         
            -
               
     | 
| 
       201 
     | 
    
         
            -
             
     | 
| 
       202 
     | 
    
         
            -
                  populate_fields(self);
         
     | 
| 
       203 
     | 
    
         
            -
                }
         
     | 
| 
       204 
     | 
    
         
            -
                /* Compute and parse the new URI */
         
     | 
| 
       205 
     | 
    
         
            -
                VALUE new_uri = compose_uri_from_data(data);
         
     | 
| 
       206 
     | 
    
         
            -
                UriUriA *uri = ALLOC(UriUriA);
         
     | 
| 
       207 
     | 
    
         
            -
             
     | 
| 
       208 
     | 
    
         
            -
                if(parse_uri(StringValueCStr(new_uri), uri) != URI_SUCCESS) {
         
     | 
| 
       209 
     | 
    
         
            -
                  free_uri(uri);
         
     | 
| 
       210 
     | 
    
         
            -
                  rb_gc_mark(new_uri);
         
     | 
| 
       211 
     | 
    
         
            -
                  rb_raise(rb_eStandardError, "invalid URI (%s) to normalize", StringValueCStr(new_uri));
         
     | 
| 
       212 
     | 
    
         
            -
                }
         
     | 
| 
       213 
     | 
    
         
            -
             
     | 
| 
       214 
     | 
    
         
            -
                free_uri(data->uri);
         
     | 
| 
       215 
     | 
    
         
            -
                rb_gc_mark(new_uri);
         
     | 
| 
       216 
     | 
    
         
            -
                data->uri = uri;
         
     | 
| 
       217 
     | 
    
         
            -
              }
         
     | 
| 
       218 
     | 
    
         
            -
             
     | 
| 
      
 196 
     | 
    
         
            +
              update_uri(self);
         
     | 
| 
      
 197 
     | 
    
         
            +
              
         
     | 
| 
       219 
198 
     | 
    
         
             
              if(uriNormalizeSyntaxA(data->uri) != URI_SUCCESS) {
         
     | 
| 
       220 
199 
     | 
    
         
             
                rb_raise(rb_eStandardError, "unable to normalize the URI");
         
     | 
| 
       221 
200 
     | 
    
         
             
              } 
         
     | 
| 
         @@ -237,6 +216,25 @@ rb_uriparser_unescape(VALUE self) 
     | 
|
| 
       237 
216 
     | 
    
         
             
              return Qnil;
         
     | 
| 
       238 
217 
     | 
    
         
             
            }
         
     | 
| 
       239 
218 
     | 
    
         | 
| 
      
 219 
     | 
    
         
            +
            static VALUE
         
     | 
| 
      
 220 
     | 
    
         
            +
            rb_uriparser_to_s(VALUE self)
         
     | 
| 
      
 221 
     | 
    
         
            +
            {
         
     | 
| 
      
 222 
     | 
    
         
            +
              int chars_required;
         
     | 
| 
      
 223 
     | 
    
         
            +
              char *str_uri;
         
     | 
| 
      
 224 
     | 
    
         
            +
              UriUriA *uri = update_uri(self);
         
     | 
| 
      
 225 
     | 
    
         
            +
              VALUE obj_str_uri;
         
     | 
| 
      
 226 
     | 
    
         
            +
              
         
     | 
| 
      
 227 
     | 
    
         
            +
              if(uriToStringCharsRequiredA(uri, &chars_required) != URI_SUCCESS ||
         
     | 
| 
      
 228 
     | 
    
         
            +
                  !(str_uri = ALLOC_N(char, ++chars_required)) ||
         
     | 
| 
      
 229 
     | 
    
         
            +
                  uriToStringA(str_uri, uri, chars_required, NULL) != URI_SUCCESS) {
         
     | 
| 
      
 230 
     | 
    
         
            +
                rb_raise(rb_eStandardError, "unable to convert to string");
         
     | 
| 
      
 231 
     | 
    
         
            +
              }
         
     | 
| 
      
 232 
     | 
    
         
            +
             
     | 
| 
      
 233 
     | 
    
         
            +
              obj_str_uri = rb_str_new2(str_uri);
         
     | 
| 
      
 234 
     | 
    
         
            +
              xfree(str_uri);
         
     | 
| 
      
 235 
     | 
    
         
            +
              return obj_str_uri;
         
     | 
| 
      
 236 
     | 
    
         
            +
            }
         
     | 
| 
      
 237 
     | 
    
         
            +
             
     | 
| 
       240 
238 
     | 
    
         
             
            static void
         
     | 
| 
       241 
239 
     | 
    
         
             
            reset_fields(struct uri_data *data) 
         
     | 
| 
       242 
240 
     | 
    
         
             
            {
         
     | 
| 
         @@ -318,7 +316,7 @@ compose_uri_from_data(struct uri_data *data) 
     | 
|
| 
       318 
316 
     | 
    
         
             
            }
         
     | 
| 
       319 
317 
     | 
    
         | 
| 
       320 
318 
     | 
    
         
             
            static int
         
     | 
| 
       321 
     | 
    
         
            -
            parse_uri(char *str_uri, UriUriA *uri) 
         
     | 
| 
      
 319 
     | 
    
         
            +
            parse_uri(const char *str_uri, UriUriA *uri) 
         
     | 
| 
       322 
320 
     | 
    
         
             
            {
         
     | 
| 
       323 
321 
     | 
    
         
             
              uri_parse_state.uri = uri;
         
     | 
| 
       324 
322 
     | 
    
         | 
| 
         @@ -334,6 +332,37 @@ free_uri(UriUriA *uri) 
     | 
|
| 
       334 
332 
     | 
    
         
             
              }
         
     | 
| 
       335 
333 
     | 
    
         
             
            }
         
     | 
| 
       336 
334 
     | 
    
         | 
| 
      
 335 
     | 
    
         
            +
            static UriUriA *
         
     | 
| 
      
 336 
     | 
    
         
            +
            update_uri(VALUE uri_obj)
         
     | 
| 
      
 337 
     | 
    
         
            +
            {
         
     | 
| 
      
 338 
     | 
    
         
            +
              struct uri_data *data;
         
     | 
| 
      
 339 
     | 
    
         
            +
             
     | 
| 
      
 340 
     | 
    
         
            +
              Data_Get_Struct(uri_obj, struct uri_data, data);
         
     | 
| 
      
 341 
     | 
    
         
            +
              if(!data->uri || data->updated) {
         
     | 
| 
      
 342 
     | 
    
         
            +
                VALUE new_uri;
         
     | 
| 
      
 343 
     | 
    
         
            +
                UriUriA *uri = ALLOC(UriUriA);
         
     | 
| 
      
 344 
     | 
    
         
            +
                
         
     | 
| 
      
 345 
     | 
    
         
            +
                if(data->updated) {
         
     | 
| 
      
 346 
     | 
    
         
            +
                  populate_fields(uri_obj);
         
     | 
| 
      
 347 
     | 
    
         
            +
                }
         
     | 
| 
      
 348 
     | 
    
         
            +
                /* Compute and parse the new URI */
         
     | 
| 
      
 349 
     | 
    
         
            +
                new_uri = compose_uri_from_data(data);
         
     | 
| 
      
 350 
     | 
    
         
            +
             
     | 
| 
      
 351 
     | 
    
         
            +
                if(parse_uri(StringValueCStr(new_uri), uri) != URI_SUCCESS) {
         
     | 
| 
      
 352 
     | 
    
         
            +
                  free_uri(uri);
         
     | 
| 
      
 353 
     | 
    
         
            +
                  rb_gc_mark(new_uri);
         
     | 
| 
      
 354 
     | 
    
         
            +
                  rb_raise(rb_eStandardError, "invalid URI (%s) to normalize", StringValueCStr(new_uri));
         
     | 
| 
      
 355 
     | 
    
         
            +
                }
         
     | 
| 
      
 356 
     | 
    
         
            +
             
     | 
| 
      
 357 
     | 
    
         
            +
                free_uri(data->uri);
         
     | 
| 
      
 358 
     | 
    
         
            +
                rb_gc_mark(new_uri);
         
     | 
| 
      
 359 
     | 
    
         
            +
                data->uri = uri;
         
     | 
| 
      
 360 
     | 
    
         
            +
              }
         
     | 
| 
      
 361 
     | 
    
         
            +
             
     | 
| 
      
 362 
     | 
    
         
            +
              return data->uri;
         
     | 
| 
      
 363 
     | 
    
         
            +
            }
         
     | 
| 
      
 364 
     | 
    
         
            +
             
     | 
| 
      
 365 
     | 
    
         
            +
             
     | 
| 
       337 
366 
     | 
    
         
             
            void
         
     | 
| 
       338 
367 
     | 
    
         
             
            Init_uriparser_ext()
         
     | 
| 
       339 
368 
     | 
    
         
             
            {
         
     | 
| 
         @@ -360,6 +389,7 @@ Init_uriparser_ext() 
     | 
|
| 
       360 
389 
     | 
    
         
             
              rb_define_method(rb_cUri_Class, "normalize!", rb_uriparser_normalize_bang, 0);
         
     | 
| 
       361 
390 
     | 
    
         
             
              rb_define_method(rb_cUri_Class, "escape", rb_uriparser_escape, 0);
         
     | 
| 
       362 
391 
     | 
    
         
             
              rb_define_method(rb_cUri_Class, "unescape", rb_uriparser_unescape, 0);
         
     | 
| 
      
 392 
     | 
    
         
            +
              rb_define_method(rb_cUri_Class, "to_s", rb_uriparser_to_s, 0);
         
     | 
| 
       363 
393 
     | 
    
         | 
| 
       364 
394 
     | 
    
         
             
              rb_define_singleton_method(rb_mUriParser, "parse", rb_uriparser_s_parse, 1);
         
     | 
| 
       365 
395 
     | 
    
         
             
            }
         
     | 
    
        data/lib/uriparser.rb
    CHANGED
    
    | 
         @@ -1,35 +1,29 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            $LOAD_PATH.push __dir__
         
     | 
| 
       2 
4 
     | 
    
         
             
            require 'uriparser_ext'
         
     | 
| 
       3 
5 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
            module UriParser
         
     | 
| 
      
 6 
     | 
    
         
            +
            module UriParser #:nodoc: all
         
     | 
| 
       5 
7 
     | 
    
         
             
              class URI
         
     | 
| 
       6 
8 
     | 
    
         
             
                def port
         
     | 
| 
       7 
     | 
    
         
            -
                  @port ||=  
     | 
| 
       8 
     | 
    
         
            -
                    nil
         
     | 
| 
       9 
     | 
    
         
            -
                  else
         
     | 
| 
       10 
     | 
    
         
            -
                    str_port.to_i
         
     | 
| 
       11 
     | 
    
         
            -
                  end
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @port ||= str_port.nil? ? nil : str_port.to_i
         
     | 
| 
       12 
10 
     | 
    
         
             
                end
         
     | 
| 
       13 
11 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
                def port=value
         
     | 
| 
      
 12 
     | 
    
         
            +
                def port=(value)
         
     | 
| 
       15 
13 
     | 
    
         
             
                  @port         = value.to_i
         
     | 
| 
       16 
14 
     | 
    
         
             
                  self.str_port = (value.nil? ? nil : value.to_s)
         
     | 
| 
       17 
15 
     | 
    
         
             
                end
         
     | 
| 
       18 
16 
     | 
    
         | 
| 
       19 
17 
     | 
    
         
             
                def user
         
     | 
| 
       20 
     | 
    
         
            -
                   
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
                   
     | 
| 
       23 
     | 
    
         
            -
                    nil
         
     | 
| 
       24 
     | 
    
         
            -
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
                  return unless userinfo
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  userinfo.split(':').first
         
     | 
| 
       25 
21 
     | 
    
         
             
                end
         
     | 
| 
       26 
22 
     | 
    
         | 
| 
       27 
23 
     | 
    
         
             
                def password
         
     | 
| 
       28 
     | 
    
         
            -
                   
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                   
     | 
| 
       31 
     | 
    
         
            -
                    nil
         
     | 
| 
       32 
     | 
    
         
            -
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
                  return unless userinfo
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  userinfo.split(':')[1]
         
     | 
| 
       33 
27 
     | 
    
         
             
                end
         
     | 
| 
       34 
28 
     | 
    
         
             
              end
         
     | 
| 
       35 
     | 
    
         
            -
            end
         
     | 
| 
      
 29 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/uriparser/uri_gem.rb
    CHANGED
    
    | 
         @@ -1,15 +1,17 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       1 
3 
     | 
    
         
             
            require 'uri'
         
     | 
| 
       2 
4 
     | 
    
         
             
            require 'uriparser'
         
     | 
| 
       3 
5 
     | 
    
         | 
| 
       4 
6 
     | 
    
         
             
            # wrapper the ruby URI class
         
     | 
| 
       5 
     | 
    
         
            -
            module URI
         
     | 
| 
       6 
     | 
    
         
            -
              def self. 
     | 
| 
      
 7 
     | 
    
         
            +
            module URI #:nodoc: all
         
     | 
| 
      
 8 
     | 
    
         
            +
              def self.parse(uri)
         
     | 
| 
       7 
9 
     | 
    
         
             
                UriParser.parse(uri)
         
     | 
| 
       8 
10 
     | 
    
         
             
              end
         
     | 
| 
       9 
11 
     | 
    
         
             
            end
         
     | 
| 
       10 
12 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
            module Kernel
         
     | 
| 
       12 
     | 
    
         
            -
              def URI(uri)
         
     | 
| 
      
 13 
     | 
    
         
            +
            module Kernel #:nodoc: all
         
     | 
| 
      
 14 
     | 
    
         
            +
              def URI(uri) # rubocop:disable Naming/MethodName
         
     | 
| 
       13 
15 
     | 
    
         
             
                UriParser.parse(uri)
         
     | 
| 
       14 
16 
     | 
    
         
             
              end
         
     | 
| 
       15 
17 
     | 
    
         
             
            end
         
     | 
    
        data/lib/uriparser/version.rb
    CHANGED
    
    
    
        data/test/test_helper.rb
    CHANGED
    
    | 
         @@ -1,4 +1,13 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'minitest/autorun'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'shoulda/context'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'shoulda/matchers'
         
     | 
| 
       3 
6 
     | 
    
         | 
| 
       4 
7 
     | 
    
         
             
            require './lib/uriparser'
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            Shoulda::Matchers.configure do |config|
         
     | 
| 
      
 10 
     | 
    
         
            +
              config.integrate do |with|
         
     | 
| 
      
 11 
     | 
    
         
            +
                with.test_framework :minitest
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
            end
         
     | 
    
        data/test/uriparser_test.rb
    CHANGED
    
    | 
         @@ -1,103 +1,120 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       1 
3 
     | 
    
         
             
            require 'test_helper'
         
     | 
| 
       2 
4 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            class UriParserTest < Test 
     | 
| 
      
 5 
     | 
    
         
            +
            class UriParserTest < Minitest::Test # rubocop:disable Metrics/ClassLength
         
     | 
| 
      
 6 
     | 
    
         
            +
              FULL_URI        = 'http://user:pwd@ruby-lang.org:80/en/about?yes=1#any'
         
     | 
| 
      
 7 
     | 
    
         
            +
              SIMPLE_URI      = 'https://ruby-lang.org'
         
     | 
| 
      
 8 
     | 
    
         
            +
              WEIRD_PATH_URI  = 'http://example.org/one/two/../../one'
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              def setup
         
     | 
| 
      
 11 
     | 
    
         
            +
                @full_uri   = UriParser.parse(FULL_URI)
         
     | 
| 
      
 12 
     | 
    
         
            +
                @simple_uri = UriParser.parse(SIMPLE_URI)
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                @manual_uri = UriParser::URI.new
         
     | 
| 
      
 15 
     | 
    
         
            +
                @manual_uri.scheme    = 'http'
         
     | 
| 
      
 16 
     | 
    
         
            +
                @manual_uri.host      = 'example.org'
         
     | 
| 
      
 17 
     | 
    
         
            +
                @manual_uri.path      = '/one/two/../'
         
     | 
| 
      
 18 
     | 
    
         
            +
                @manual_uri.fragment  = 'test'
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                @weird_path_uri = UriParser.parse(WEIRD_PATH_URI)
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
       4 
22 
     | 
    
         | 
| 
       5 
23 
     | 
    
         
             
              context 'URI parsing' do
         
     | 
| 
       6 
24 
     | 
    
         
             
                should 'raise an exception if was unable to parse the URI' do
         
     | 
| 
       7 
     | 
    
         
            -
                   
     | 
| 
      
 25 
     | 
    
         
            +
                  assert_raises(StandardError) { UriParser.parse('invalid uri') }
         
     | 
| 
       8 
26 
     | 
    
         
             
                end
         
     | 
| 
       9 
27 
     | 
    
         | 
| 
       10 
28 
     | 
    
         
             
                should 'parse valid URI' do
         
     | 
| 
       11 
     | 
    
         
            -
                   
     | 
| 
       12 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       13 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       14 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       15 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       16 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       17 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       18 
     | 
    
         
            -
                  assert_equal uri.fragment,  'any'
         
     | 
| 
      
 29 
     | 
    
         
            +
                  assert_equal @full_uri.scheme,    'http'
         
     | 
| 
      
 30 
     | 
    
         
            +
                  assert_equal @full_uri.userinfo,  'user:pwd'
         
     | 
| 
      
 31 
     | 
    
         
            +
                  assert_equal @full_uri.host,      'ruby-lang.org'
         
     | 
| 
      
 32 
     | 
    
         
            +
                  assert_equal @full_uri.str_port,  '80'
         
     | 
| 
      
 33 
     | 
    
         
            +
                  assert_equal @full_uri.path,      '/en/about'
         
     | 
| 
      
 34 
     | 
    
         
            +
                  assert_equal @full_uri.query,     'yes=1'
         
     | 
| 
      
 35 
     | 
    
         
            +
                  assert_equal @full_uri.fragment,  'any'
         
     | 
| 
       19 
36 
     | 
    
         
             
                end
         
     | 
| 
       20 
37 
     | 
    
         | 
| 
       21 
38 
     | 
    
         
             
                should 'paser valid but incomplete URI' do
         
     | 
| 
       22 
     | 
    
         
            -
                   
     | 
| 
       23 
     | 
    
         
            -
                   
     | 
| 
       24 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       25 
     | 
    
         
            -
                   
     | 
| 
       26 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       27 
     | 
    
         
            -
                   
     | 
| 
       28 
     | 
    
         
            -
                   
     | 
| 
       29 
     | 
    
         
            -
                  assert_equal uri.fragment,  nil
         
     | 
| 
      
 39 
     | 
    
         
            +
                  assert_equal @simple_uri.scheme, 'https'
         
     | 
| 
      
 40 
     | 
    
         
            +
                  assert_nil @simple_uri.userinfo
         
     | 
| 
      
 41 
     | 
    
         
            +
                  assert_equal @simple_uri.host, 'ruby-lang.org'
         
     | 
| 
      
 42 
     | 
    
         
            +
                  assert_nil @simple_uri.str_port
         
     | 
| 
      
 43 
     | 
    
         
            +
                  assert_equal @simple_uri.path, ''
         
     | 
| 
      
 44 
     | 
    
         
            +
                  assert_nil @simple_uri.query
         
     | 
| 
      
 45 
     | 
    
         
            +
                  assert_nil @simple_uri.fragment
         
     | 
| 
       30 
46 
     | 
    
         
             
                end
         
     | 
| 
       31 
47 
     | 
    
         | 
| 
       32 
48 
     | 
    
         
             
                should 'return URI object after a successful parsing' do
         
     | 
| 
       33 
     | 
    
         
            -
                   
     | 
| 
       34 
     | 
    
         
            -
                  assert_instance_of UriParser::URI, uri
         
     | 
| 
      
 49 
     | 
    
         
            +
                  assert_instance_of UriParser::URI, @simple_uri
         
     | 
| 
       35 
50 
     | 
    
         
             
                end
         
     | 
| 
       36 
51 
     | 
    
         
             
              end
         
     | 
| 
       37 
52 
     | 
    
         | 
| 
       38 
53 
     | 
    
         
             
              context 'URI class API' do
         
     | 
| 
       39 
54 
     | 
    
         
             
                should 'allow update any URI field' do
         
     | 
| 
       40 
     | 
    
         
            -
                   
     | 
| 
       41 
     | 
    
         
            -
                   
     | 
| 
       42 
     | 
    
         
            -
                   
     | 
| 
       43 
     | 
    
         
            -
                   
     | 
| 
       44 
     | 
    
         
            -
                   
     | 
| 
       45 
     | 
    
         
            -
                   
     | 
| 
       46 
     | 
    
         
            -
                   
     | 
| 
       47 
     | 
    
         
            -
                   
     | 
| 
       48 
     | 
    
         
            -
                   
     | 
| 
       49 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       50 
     | 
    
         
            -
                   
     | 
| 
       51 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       52 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       53 
     | 
    
         
            -
                   
     | 
| 
       54 
     | 
    
         
            -
                  assert_equal uri.fragment,  nil
         
     | 
| 
      
 55 
     | 
    
         
            +
                  @full_uri.scheme    = 'ftp'
         
     | 
| 
      
 56 
     | 
    
         
            +
                  @full_uri.userinfo  = nil
         
     | 
| 
      
 57 
     | 
    
         
            +
                  @full_uri.host      = 'example.org'
         
     | 
| 
      
 58 
     | 
    
         
            +
                  @full_uri.str_port  = nil
         
     | 
| 
      
 59 
     | 
    
         
            +
                  @full_uri.path      = '/'
         
     | 
| 
      
 60 
     | 
    
         
            +
                  @full_uri.query     = 'xx=11'
         
     | 
| 
      
 61 
     | 
    
         
            +
                  @full_uri.fragment  = nil
         
     | 
| 
      
 62 
     | 
    
         
            +
                  assert_equal @full_uri.scheme, 'ftp'
         
     | 
| 
      
 63 
     | 
    
         
            +
                  assert_nil @full_uri.userinfo
         
     | 
| 
      
 64 
     | 
    
         
            +
                  assert_equal @full_uri.host, 'example.org'
         
     | 
| 
      
 65 
     | 
    
         
            +
                  assert_nil @full_uri.str_port
         
     | 
| 
      
 66 
     | 
    
         
            +
                  assert_equal @full_uri.path, '/'
         
     | 
| 
      
 67 
     | 
    
         
            +
                  assert_equal @full_uri.query, 'xx=11'
         
     | 
| 
      
 68 
     | 
    
         
            +
                  assert_nil @full_uri.fragment
         
     | 
| 
       55 
69 
     | 
    
         
             
                end
         
     | 
| 
       56 
70 
     | 
    
         | 
| 
       57 
71 
     | 
    
         
             
                should 'split userinfo data' do
         
     | 
| 
       58 
     | 
    
         
            -
                   
     | 
| 
       59 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       60 
     | 
    
         
            -
                  assert_equal uri.password, 'pwd'
         
     | 
| 
      
 72 
     | 
    
         
            +
                  assert_equal @full_uri.user, 'user'
         
     | 
| 
      
 73 
     | 
    
         
            +
                  assert_equal @full_uri.password, 'pwd'
         
     | 
| 
       61 
74 
     | 
    
         
             
                end
         
     | 
| 
       62 
75 
     | 
    
         | 
| 
       63 
76 
     | 
    
         
             
                should 'return nil if no user/password informed' do
         
     | 
| 
       64 
77 
     | 
    
         
             
                  uri = UriParser.parse('http://ruby-lang.org:80/en/about?yes=1#any')
         
     | 
| 
       65 
     | 
    
         
            -
                   
     | 
| 
       66 
     | 
    
         
            -
                   
     | 
| 
      
 78 
     | 
    
         
            +
                  assert_nil uri.user
         
     | 
| 
      
 79 
     | 
    
         
            +
                  assert_nil uri.password
         
     | 
| 
       67 
80 
     | 
    
         
             
                end
         
     | 
| 
       68 
81 
     | 
    
         | 
| 
       69 
82 
     | 
    
         
             
                should 'port and str_port be synchronized' do
         
     | 
| 
       70 
     | 
    
         
            -
                   
     | 
| 
       71 
     | 
    
         
            -
                   
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
      
 83 
     | 
    
         
            +
                  @full_uri.port = 1
         
     | 
| 
      
 84 
     | 
    
         
            +
                  assert_equal @full_uri.str_port, '1'
         
     | 
| 
      
 85 
     | 
    
         
            +
                end
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
                should 'convert to string (to_s)' do
         
     | 
| 
      
 88 
     | 
    
         
            +
                  assert_equal @simple_uri.to_s, SIMPLE_URI
         
     | 
| 
      
 89 
     | 
    
         
            +
                  assert_equal @full_uri.to_s, FULL_URI
         
     | 
| 
      
 90 
     | 
    
         
            +
                  assert_equal @manual_uri.to_s, 'http://example.org/one/two/../#test'
         
     | 
| 
      
 91 
     | 
    
         
            +
                  assert_equal @weird_path_uri.to_s, WEIRD_PATH_URI
         
     | 
| 
       73 
92 
     | 
    
         
             
                end
         
     | 
| 
       74 
93 
     | 
    
         
             
              end
         
     | 
| 
       75 
94 
     | 
    
         | 
| 
       76 
95 
     | 
    
         
             
              context 'URI normalizing' do
         
     | 
| 
       77 
96 
     | 
    
         
             
                should 'normalize a valid URI' do
         
     | 
| 
       78 
     | 
    
         
            -
                   
     | 
| 
       79 
     | 
    
         
            -
                   
     | 
| 
       80 
     | 
    
         
            -
                   
     | 
| 
       81 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       82 
     | 
    
         
            -
                   
     | 
| 
       83 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       84 
     | 
    
         
            -
                   
     | 
| 
       85 
     | 
    
         
            -
                   
     | 
| 
       86 
     | 
    
         
            -
                  assert_equal uri.fragment,  nil
         
     | 
| 
      
 97 
     | 
    
         
            +
                  @weird_path_uri.normalize!
         
     | 
| 
      
 98 
     | 
    
         
            +
                  assert_equal @weird_path_uri.scheme, 'http'
         
     | 
| 
      
 99 
     | 
    
         
            +
                  assert_nil @weird_path_uri.userinfo
         
     | 
| 
      
 100 
     | 
    
         
            +
                  assert_equal @weird_path_uri.host, 'example.org'
         
     | 
| 
      
 101 
     | 
    
         
            +
                  assert_nil @weird_path_uri.str_port
         
     | 
| 
      
 102 
     | 
    
         
            +
                  assert_equal @weird_path_uri.path, '/one'
         
     | 
| 
      
 103 
     | 
    
         
            +
                  assert_nil @weird_path_uri.query
         
     | 
| 
      
 104 
     | 
    
         
            +
                  assert_nil @weird_path_uri.fragment
         
     | 
| 
       87 
105 
     | 
    
         
             
                end
         
     | 
| 
       88 
106 
     | 
    
         | 
| 
       89 
107 
     | 
    
         
             
                should 'normalize an updated URI' do
         
     | 
| 
       90 
     | 
    
         
            -
                   
     | 
| 
       91 
     | 
    
         
            -
                   
     | 
| 
       92 
     | 
    
         
            -
                   
     | 
| 
       93 
     | 
    
         
            -
                   
     | 
| 
       94 
     | 
    
         
            -
                   
     | 
| 
       95 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       96 
     | 
    
         
            -
                   
     | 
| 
       97 
     | 
    
         
            -
                  assert_equal  
     | 
| 
       98 
     | 
    
         
            -
                   
     | 
| 
       99 
     | 
    
         
            -
                   
     | 
| 
       100 
     | 
    
         
            -
                  assert_equal uri.fragment,  nil
         
     | 
| 
      
 108 
     | 
    
         
            +
                  @simple_uri.path = '/one/two/../../one'
         
     | 
| 
      
 109 
     | 
    
         
            +
                  assert_equal @simple_uri.path, '/one/two/../../one'
         
     | 
| 
      
 110 
     | 
    
         
            +
                  @simple_uri.normalize!
         
     | 
| 
      
 111 
     | 
    
         
            +
                  assert_equal @simple_uri.scheme, 'https'
         
     | 
| 
      
 112 
     | 
    
         
            +
                  assert_nil @simple_uri.userinfo
         
     | 
| 
      
 113 
     | 
    
         
            +
                  assert_equal @simple_uri.host, 'ruby-lang.org'
         
     | 
| 
      
 114 
     | 
    
         
            +
                  assert_nil @simple_uri.str_port
         
     | 
| 
      
 115 
     | 
    
         
            +
                  assert_equal @simple_uri.path, '/one'
         
     | 
| 
      
 116 
     | 
    
         
            +
                  assert_nil @simple_uri.query
         
     | 
| 
      
 117 
     | 
    
         
            +
                  assert_nil @simple_uri.fragment
         
     | 
| 
       101 
118 
     | 
    
         
             
                end
         
     | 
| 
       102 
119 
     | 
    
         | 
| 
       103 
120 
     | 
    
         
             
                should 'normalize an URI manually created' do
         
     | 
| 
         @@ -107,13 +124,20 @@ class UriParserTest < Test::Unit::TestCase 
     | 
|
| 
       107 
124 
     | 
    
         
             
                  uri.path      = '/one/two/../'
         
     | 
| 
       108 
125 
     | 
    
         
             
                  uri.fragment  = 'test'
         
     | 
| 
       109 
126 
     | 
    
         
             
                  uri.normalize!
         
     | 
| 
       110 
     | 
    
         
            -
                  assert_equal uri.scheme, 
     | 
| 
       111 
     | 
    
         
            -
                   
     | 
| 
       112 
     | 
    
         
            -
                  assert_equal uri.host, 
     | 
| 
       113 
     | 
    
         
            -
                   
     | 
| 
       114 
     | 
    
         
            -
                  assert_equal uri.path, 
     | 
| 
       115 
     | 
    
         
            -
                   
     | 
| 
       116 
     | 
    
         
            -
                  assert_equal uri.fragment, 
     | 
| 
      
 127 
     | 
    
         
            +
                  assert_equal uri.scheme, 'http'
         
     | 
| 
      
 128 
     | 
    
         
            +
                  assert_nil uri.userinfo
         
     | 
| 
      
 129 
     | 
    
         
            +
                  assert_equal uri.host, 'example.org'
         
     | 
| 
      
 130 
     | 
    
         
            +
                  assert_nil uri.str_port
         
     | 
| 
      
 131 
     | 
    
         
            +
                  assert_equal uri.path, '/one'
         
     | 
| 
      
 132 
     | 
    
         
            +
                  assert_nil uri.query
         
     | 
| 
      
 133 
     | 
    
         
            +
                  assert_equal uri.fragment, 'test'
         
     | 
| 
      
 134 
     | 
    
         
            +
                end
         
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
      
 136 
     | 
    
         
            +
                should 'update URI string representation' do
         
     | 
| 
      
 137 
     | 
    
         
            +
                  @weird_path_uri.normalize!
         
     | 
| 
      
 138 
     | 
    
         
            +
                  @manual_uri.normalize!
         
     | 
| 
      
 139 
     | 
    
         
            +
                  assert_equal @weird_path_uri.to_s, 'http://example.org/one'
         
     | 
| 
      
 140 
     | 
    
         
            +
                  assert_equal @manual_uri.to_s, 'http://example.org/one/#test'
         
     | 
| 
       117 
141 
     | 
    
         
             
                end
         
     | 
| 
       118 
142 
     | 
    
         
             
              end
         
     | 
| 
       119 
     | 
    
         
            -
            end
         
     | 
| 
      
 143 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,35 +1,63 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: ruby-uriparser
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.2.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Thiago Lewin
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2020-09-26 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
     | 
    
         
            -
              name:  
     | 
| 
      
 14 
     | 
    
         
            +
              name: rake-compiler
         
     | 
| 
       15 
15 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       16 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
17 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: ' 
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '1.1'
         
     | 
| 
      
 20 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 21 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 22 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 23 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 24 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       21 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       22 
     | 
    
         
            -
                    version:  
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '1.1'
         
     | 
| 
      
 27 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 28 
     | 
    
         
            +
              name: rubocop
         
     | 
| 
      
 29 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 30 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 31 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 32 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 33 
     | 
    
         
            +
                    version: '0.92'
         
     | 
| 
       23 
34 
     | 
    
         
             
              type: :development
         
     | 
| 
       24 
35 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       25 
36 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       26 
37 
     | 
    
         
             
                requirements:
         
     | 
| 
      
 38 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 39 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 40 
     | 
    
         
            +
                    version: '0.92'
         
     | 
| 
      
 41 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 42 
     | 
    
         
            +
              name: shoulda
         
     | 
| 
      
 43 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 44 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 45 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 46 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 47 
     | 
    
         
            +
                    version: 3.5.0
         
     | 
| 
       27 
48 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       28 
49 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       29 
50 
     | 
    
         
             
                    version: '3.5'
         
     | 
| 
      
 51 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 52 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 53 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 54 
     | 
    
         
            +
                requirements:
         
     | 
| 
       30 
55 
     | 
    
         
             
                - - ">="
         
     | 
| 
       31 
56 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       32 
57 
     | 
    
         
             
                    version: 3.5.0
         
     | 
| 
      
 58 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 59 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 60 
     | 
    
         
            +
                    version: '3.5'
         
     | 
| 
       33 
61 
     | 
    
         
             
            description: Ruby wrapper for uriparser C library
         
     | 
| 
       34 
62 
     | 
    
         
             
            email:
         
     | 
| 
       35 
63 
     | 
    
         
             
            - thiago_lewin@yahoo.com.br
         
     | 
| 
         @@ -61,18 +89,17 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       61 
89 
     | 
    
         
             
              requirements:
         
     | 
| 
       62 
90 
     | 
    
         
             
              - - ">="
         
     | 
| 
       63 
91 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       64 
     | 
    
         
            -
                  version:  
     | 
| 
      
 92 
     | 
    
         
            +
                  version: 2.4.0
         
     | 
| 
       65 
93 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       66 
94 
     | 
    
         
             
              requirements:
         
     | 
| 
       67 
95 
     | 
    
         
             
              - - ">="
         
     | 
| 
       68 
96 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       69 
97 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       70 
98 
     | 
    
         
             
            requirements: []
         
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
     | 
    
         
            -
            rubygems_version: 2.2.2
         
     | 
| 
      
 99 
     | 
    
         
            +
            rubygems_version: 3.0.1
         
     | 
| 
       73 
100 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       74 
101 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       75 
102 
     | 
    
         
             
            summary: Ruby wrapper for uriparser C library
         
     | 
| 
       76 
103 
     | 
    
         
             
            test_files:
         
     | 
| 
       77 
     | 
    
         
            -
            - test/test_helper.rb
         
     | 
| 
       78 
104 
     | 
    
         
             
            - test/uriparser_test.rb
         
     | 
| 
      
 105 
     | 
    
         
            +
            - test/test_helper.rb
         
     |