breakout_parser 0.0.19 → 0.0.20
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.
- data/ChangeLog +5 -0
- data/ext/breakout_parser/parser.tab.c +14 -5
- data/ext/breakout_parser/parser.y +14 -5
- data/spec/parser_spec.rb +33 -0
- metadata +3 -3
    
        data/ChangeLog
    CHANGED
    
    
| @@ -2305,12 +2305,21 @@ process_svn_link(const char*target, int numbered_repo){ | |
| 2305 2305 | 
             
                process_link_tail(target,NULL,"revision:");
         | 
| 2306 2306 | 
             
            }
         | 
| 2307 2307 |  | 
| 2308 | 
            -
            int concat_custom_git_url(){
         | 
| 2309 | 
            -
                const char *c;
         | 
| 2308 | 
            +
            int concat_custom_git_url(const char*rev){
         | 
| 2309 | 
            +
                const char *c,*p,*t;
         | 
| 2310 2310 | 
             
                if( git_url && (c = StringValuePtr(git_url)) ){
         | 
| 2311 2311 | 
             
                    size_t l = strlen(c);
         | 
| 2312 2312 | 
             
                    if( l>0 ){
         | 
| 2313 | 
            -
                         | 
| 2313 | 
            +
                        if( p=strstr(c, "$REV$") ){
         | 
| 2314 | 
            +
                            concat(c, p-c);
         | 
| 2315 | 
            +
                            // concat revision number
         | 
| 2316 | 
            +
                            for(t=rev; *t && *t!=']' && *t!='|'; t++) concat_raw_char(*t);
         | 
| 2317 | 
            +
                            concat2(p+5);
         | 
| 2318 | 
            +
                        } else {
         | 
| 2319 | 
            +
                            concat2(c);
         | 
| 2320 | 
            +
                            // concat revision number
         | 
| 2321 | 
            +
                            for(t=rev; *t && *t!=']' && *t!='|'; t++) concat_raw_char(*t);
         | 
| 2322 | 
            +
                        }
         | 
| 2314 2323 | 
             
                        return 1;
         | 
| 2315 2324 | 
             
                    }
         | 
| 2316 2325 | 
             
                }
         | 
| @@ -2321,7 +2330,7 @@ process_git_link(const char*target, int numbered_repo){ | |
| 2321 2330 | 
             
                const char *c;
         | 
| 2322 2331 | 
             
                // can use sprintf here.. but I think it's a way slower than raw concat
         | 
| 2323 2332 | 
             
                concat("<a href=\"",9);
         | 
| 2324 | 
            -
                if( !concat_custom_git_url() ){
         | 
| 2333 | 
            +
                if( !concat_custom_git_url(target) ){
         | 
| 2325 2334 | 
             
                    concat_site_url();
         | 
| 2326 2335 | 
             
                    concat("/code/",6);
         | 
| 2327 2336 | 
             
                    concat(space_name,space_name_len);
         | 
| @@ -2333,8 +2342,8 @@ process_git_link(const char*target, int numbered_repo){ | |
| 2333 2342 | 
             
                    } else {
         | 
| 2334 2343 | 
             
                        concat("/git/changesets/",16);
         | 
| 2335 2344 | 
             
                    }
         | 
| 2345 | 
            +
                    for(c=target; *c && *c!=']' && *c!='|'; c++) concat_raw_char(*c);
         | 
| 2336 2346 | 
             
                }
         | 
| 2337 | 
            -
                for(c=target; *c && *c!=']' && *c!='|'; c++) concat_raw_char(*c);
         | 
| 2338 2347 | 
             
                process_link_tail(target,NULL,"revision:");
         | 
| 2339 2348 | 
             
            }
         | 
| 2340 2349 |  | 
| @@ -374,12 +374,21 @@ process_svn_link(const char*target, int numbered_repo){ | |
| 374 374 | 
             
                process_link_tail(target,NULL,"revision:");
         | 
| 375 375 | 
             
            }
         | 
| 376 376 |  | 
| 377 | 
            -
            int concat_custom_git_url(){
         | 
| 378 | 
            -
                const char *c;
         | 
| 377 | 
            +
            int concat_custom_git_url(const char*rev){
         | 
| 378 | 
            +
                const char *c,*p,*t;
         | 
| 379 379 | 
             
                if( git_url && (c = StringValuePtr(git_url)) ){
         | 
| 380 380 | 
             
                    size_t l = strlen(c);
         | 
| 381 381 | 
             
                    if( l>0 ){
         | 
| 382 | 
            -
                         | 
| 382 | 
            +
                        if( p=strstr(c, "$REV$") ){
         | 
| 383 | 
            +
                            concat(c, p-c);
         | 
| 384 | 
            +
                            // concat revision number
         | 
| 385 | 
            +
                            for(t=rev; *t && *t!=']' && *t!='|'; t++) concat_raw_char(*t);
         | 
| 386 | 
            +
                            concat2(p+5);
         | 
| 387 | 
            +
                        } else {
         | 
| 388 | 
            +
                            concat2(c);
         | 
| 389 | 
            +
                            // concat revision number
         | 
| 390 | 
            +
                            for(t=rev; *t && *t!=']' && *t!='|'; t++) concat_raw_char(*t);
         | 
| 391 | 
            +
                        }
         | 
| 383 392 | 
             
                        return 1;
         | 
| 384 393 | 
             
                    }
         | 
| 385 394 | 
             
                }
         | 
| @@ -390,7 +399,7 @@ process_git_link(const char*target, int numbered_repo){ | |
| 390 399 | 
             
                const char *c;
         | 
| 391 400 | 
             
                // can use sprintf here.. but I think it's a way slower than raw concat
         | 
| 392 401 | 
             
                concat("<a href=\"",9);
         | 
| 393 | 
            -
                if( !concat_custom_git_url() ){
         | 
| 402 | 
            +
                if( !concat_custom_git_url(target) ){
         | 
| 394 403 | 
             
                    concat_site_url();
         | 
| 395 404 | 
             
                    concat("/code/",6);
         | 
| 396 405 | 
             
                    concat(space_name,space_name_len);
         | 
| @@ -402,8 +411,8 @@ process_git_link(const char*target, int numbered_repo){ | |
| 402 411 | 
             
                    } else {
         | 
| 403 412 | 
             
                        concat("/git/changesets/",16);
         | 
| 404 413 | 
             
                    }
         | 
| 414 | 
            +
                    for(c=target; *c && *c!=']' && *c!='|'; c++) concat_raw_char(*c);
         | 
| 405 415 | 
             
                }
         | 
| 406 | 
            -
                for(c=target; *c && *c!=']' && *c!='|'; c++) concat_raw_char(*c);
         | 
| 407 416 | 
             
                process_link_tail(target,NULL,"revision:");
         | 
| 408 417 | 
             
            }
         | 
| 409 418 |  | 
    
        data/spec/parser_spec.rb
    CHANGED
    
    | @@ -896,6 +896,39 @@ describe 'BreakoutParser' do | |
| 896 896 | 
             
                        v.sub('/code/test_space/git/changesets/',git_url)
         | 
| 897 897 | 
             
                    end
         | 
| 898 898 |  | 
| 899 | 
            +
                    it "parses [[#{k}]] with custom git_url (String) + $REV$" do
         | 
| 900 | 
            +
                      git_url = "http://www.ru/$REV$/show"
         | 
| 901 | 
            +
                      rev = k.split(':').last.tr(']','')
         | 
| 902 | 
            +
                      parse("[[#{k}]]", :git_url => git_url).should ==
         | 
| 903 | 
            +
                        v.sub('/code/test_space/git/changesets/',git_url).sub(rev,'').sub('$REV$',rev)
         | 
| 904 | 
            +
             | 
| 905 | 
            +
                      git_url = "http://www.ru/$REV$"
         | 
| 906 | 
            +
                      parse("[[#{k}]]", :git_url => git_url).should ==
         | 
| 907 | 
            +
                        v.sub('/code/test_space/git/changesets/',git_url).sub(rev,'').sub('$REV$',rev)
         | 
| 908 | 
            +
             | 
| 909 | 
            +
                      git_url = "$REV$"
         | 
| 910 | 
            +
                      parse("[[#{k}]]", :git_url => git_url).should ==
         | 
| 911 | 
            +
                        v.sub('/code/test_space/git/changesets/',git_url).sub(rev,'').sub('$REV$',rev)
         | 
| 912 | 
            +
                    end
         | 
| 913 | 
            +
             | 
| 914 | 
            +
                    it "parses [[#{k}]] with custom git_url (ObjProxy) + $REV$" do
         | 
| 915 | 
            +
                      rev = k.split(':').last.tr(']','')
         | 
| 916 | 
            +
                      @asdfg = 'http://mmm.us/$REV$/show'
         | 
| 917 | 
            +
                      git_url = Breakout::ObjProxy.new do
         | 
| 918 | 
            +
                        @asdfg
         | 
| 919 | 
            +
                      end
         | 
| 920 | 
            +
                      parse("[[#{k}]]", :git_url => git_url).should ==
         | 
| 921 | 
            +
                        v.sub('/code/test_space/git/changesets/',git_url).sub(rev,'').sub('$REV$',rev)
         | 
| 922 | 
            +
             | 
| 923 | 
            +
                      @asdfg = 'http://mmm.us/$REV$'
         | 
| 924 | 
            +
                      parse("[[#{k}]]", :git_url => git_url).should ==
         | 
| 925 | 
            +
                        v.sub('/code/test_space/git/changesets/',git_url).sub(rev,'').sub('$REV$',rev)
         | 
| 926 | 
            +
             | 
| 927 | 
            +
                      @asdfg = '$REV$'
         | 
| 928 | 
            +
                      parse("[[#{k}]]", :git_url => git_url).should ==
         | 
| 929 | 
            +
                        v.sub('/code/test_space/git/changesets/',git_url).sub(rev,'').sub('$REV$',rev)
         | 
| 930 | 
            +
                    end
         | 
| 931 | 
            +
             | 
| 899 932 | 
             
                    it "parses [[#{k}]] with NULL git_url (ObjProxy)" do
         | 
| 900 933 | 
             
                      rev = k.split(':').last.tr(']','')
         | 
| 901 934 | 
             
                      git_url = Breakout::ObjProxy.new do
         | 
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: breakout_parser
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 55
         | 
| 5 5 | 
             
              prerelease: false
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 0
         | 
| 8 8 | 
             
              - 0
         | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 0.0. | 
| 9 | 
            +
              - 20
         | 
| 10 | 
            +
              version: 0.0.20
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Andrey "Zed" Zaikin
         |