p4ruby 2019.1.1873991 → 2021.1.2196401
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/LICENSE.txt +451 -20
- data/README.md +12 -875
- data/ext/P4/clientprogressruby.cpp +0 -1
- data/ext/P4/clientuserruby.cpp +254 -1
- data/ext/P4/clientuserruby.h +26 -1
- data/ext/P4/extconf.rb +66 -22
- data/ext/P4/p4.cpp +100 -9
- data/ext/P4/p4clientapi.cpp +75 -6
- data/ext/P4/p4clientapi.h +13 -2
- data/ext/P4/p4result.cpp +1 -0
- data/ext/P4/p4specdata.cpp +29 -0
- data/ext/P4/p4specdata.h +2 -0
- data/ext/P4/specmgr.cpp +43 -130
- data/lib/P4/version.rb +3 -3
- data/lib/P4.rb +16 -0
- metadata +9 -8
    
        data/ext/P4/p4clientapi.cpp
    CHANGED
    
    | @@ -37,6 +37,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| 37 37 | 
             
            #include <ruby.h>
         | 
| 38 38 | 
             
            #include "undefdups.h"
         | 
| 39 39 | 
             
            #include <p4/clientapi.h>
         | 
| 40 | 
            +
            #include <p4/strtable.h>
         | 
| 40 41 | 
             
            #include <p4/i18napi.h>
         | 
| 41 42 | 
             
            #include <p4/enviro.h>
         | 
| 42 43 | 
             
            #include <p4/hostenv.h>
         | 
| @@ -142,6 +143,21 @@ P4ClientApi::GetEnviroFile() | |
| 142 143 | 
             
                return enviro->GetEnviroFile();
         | 
| 143 144 | 
             
            }
         | 
| 144 145 |  | 
| 146 | 
            +
            void
         | 
| 147 | 
            +
            P4ClientApi::SetEVar( const char *var, const char *val )
         | 
| 148 | 
            +
            {
         | 
| 149 | 
            +
                StrRef sVar( var );
         | 
| 150 | 
            +
                StrRef sVal( val );
         | 
| 151 | 
            +
                client.SetEVar( sVar, sVal );
         | 
| 152 | 
            +
            }
         | 
| 153 | 
            +
             | 
| 154 | 
            +
            const StrPtr *
         | 
| 155 | 
            +
            P4ClientApi::GetEVar( const char *var )
         | 
| 156 | 
            +
            {
         | 
| 157 | 
            +
                StrRef sVar( var );
         | 
| 158 | 
            +
                return client.GetEVar( sVar );
         | 
| 159 | 
            +
            }
         | 
| 160 | 
            +
             | 
| 145 161 | 
             
            void
         | 
| 146 162 | 
             
            P4ClientApi::SetApiLevel( int level )
         | 
| 147 163 | 
             
            {
         | 
| @@ -323,6 +339,9 @@ P4ClientApi::Disconnect() | |
| 323 339 | 
             
                // Clear the specdef cache.
         | 
| 324 340 | 
             
                specMgr.Reset();
         | 
| 325 341 |  | 
| 342 | 
            +
                // Clear out any results from the last command
         | 
| 343 | 
            +
                ui.Reset();
         | 
| 344 | 
            +
             | 
| 326 345 | 
             
                return Qtrue;
         | 
| 327 346 | 
             
            }
         | 
| 328 347 |  | 
| @@ -426,12 +445,6 @@ P4ClientApi::IsIgnored( const char *path ) | |
| 426 445 | 
             
                return ignore->Reject( p, client.GetIgnoreFile() );
         | 
| 427 446 | 
             
            }
         | 
| 428 447 |  | 
| 429 | 
            -
            VALUE
         | 
| 430 | 
            -
            P4ClientApi::Reset()
         | 
| 431 | 
            -
            {
         | 
| 432 | 
            -
                ui.Reset();
         | 
| 433 | 
            -
            }
         | 
| 434 | 
            -
             | 
| 435 448 | 
             
            //
         | 
| 436 449 | 
             
            // Run returns the results of the command. If the client has not been
         | 
| 437 450 | 
             
            // connected, then an exception is raised but errors from Perforce
         | 
| @@ -702,6 +715,17 @@ P4ClientApi::SetProgress( VALUE progress ) { | |
| 702 715 | 
             
                return ui.SetProgress( progress );
         | 
| 703 716 | 
             
            }
         | 
| 704 717 |  | 
| 718 | 
            +
            VALUE
         | 
| 719 | 
            +
            P4ClientApi::SetSSOHandler( VALUE h )
         | 
| 720 | 
            +
            {
         | 
| 721 | 
            +
                if ( P4RDB_COMMANDS )
         | 
| 722 | 
            +
                    fprintf( stderr, "[P4] Received SSO handler object\n" );
         | 
| 723 | 
            +
             | 
| 724 | 
            +
                ui.SetRubySSOHandler( h );
         | 
| 725 | 
            +
             | 
| 726 | 
            +
                return Qtrue;
         | 
| 727 | 
            +
            }
         | 
| 728 | 
            +
             | 
| 705 729 |  | 
| 706 730 | 
             
            void
         | 
| 707 731 | 
             
            P4ClientApi::GCMark()
         | 
| @@ -764,3 +788,48 @@ P4ClientApi::Except( const char *func, Error *e ) | |
| 764 788 | 
             
                Except( func, m.Text() );
         | 
| 765 789 | 
             
            }
         | 
| 766 790 |  | 
| 791 | 
            +
            //
         | 
| 792 | 
            +
            // SSO Handlers
         | 
| 793 | 
            +
            //
         | 
| 794 | 
            +
             | 
| 795 | 
            +
            VALUE
         | 
| 796 | 
            +
            P4ClientApi::SetEnableSSO( VALUE e )
         | 
| 797 | 
            +
            {
         | 
| 798 | 
            +
                return ui.EnableSSO( e );
         | 
| 799 | 
            +
            }
         | 
| 800 | 
            +
             | 
| 801 | 
            +
            VALUE
         | 
| 802 | 
            +
            P4ClientApi::GetEnableSSO()
         | 
| 803 | 
            +
            {
         | 
| 804 | 
            +
                return ui.SSOEnabled();
         | 
| 805 | 
            +
            }
         | 
| 806 | 
            +
             | 
| 807 | 
            +
            VALUE
         | 
| 808 | 
            +
            P4ClientApi::GetSSOVars()
         | 
| 809 | 
            +
            {
         | 
| 810 | 
            +
                return ui.GetSSOVars();
         | 
| 811 | 
            +
            }
         | 
| 812 | 
            +
             | 
| 813 | 
            +
            VALUE
         | 
| 814 | 
            +
            P4ClientApi::SetSSOPassResult( VALUE r )
         | 
| 815 | 
            +
            {
         | 
| 816 | 
            +
                return ui.SetSSOPassResult( r );
         | 
| 817 | 
            +
            }
         | 
| 818 | 
            +
             | 
| 819 | 
            +
            VALUE
         | 
| 820 | 
            +
            P4ClientApi::GetSSOPassResult()
         | 
| 821 | 
            +
            {
         | 
| 822 | 
            +
                return ui.GetSSOPassResult();
         | 
| 823 | 
            +
            }
         | 
| 824 | 
            +
             | 
| 825 | 
            +
            VALUE
         | 
| 826 | 
            +
            P4ClientApi::SetSSOFailResult( VALUE r )
         | 
| 827 | 
            +
            {
         | 
| 828 | 
            +
               return ui.SetSSOFailResult( r );
         | 
| 829 | 
            +
            }
         | 
| 830 | 
            +
             | 
| 831 | 
            +
            VALUE
         | 
| 832 | 
            +
            P4ClientApi::GetSSOFailResult()
         | 
| 833 | 
            +
            {
         | 
| 834 | 
            +
                return ui.GetSSOFailResult();
         | 
| 835 | 
            +
            }
         | 
    
        data/ext/P4/p4clientapi.h
    CHANGED
    
    | @@ -73,6 +73,7 @@ public: | |
| 73 73 | 
             
                void SetClient( const char *c )	{ client.SetClient( c );	}
         | 
| 74 74 | 
             
                void SetCwd( const char *c );
         | 
| 75 75 | 
             
                void SetEnviroFile( const char *c );
         | 
| 76 | 
            +
                void SetEVar( const char *var, const char *val );
         | 
| 76 77 | 
             
                void SetHost( const char *h )	{ client.SetHost( h );		}
         | 
| 77 78 | 
             
                void SetIgnoreFile( const char *f )	{ client.SetIgnoreFile( f );	}
         | 
| 78 79 | 
             
                void SetMaxResults( int v )		{ maxResults = v;		}
         | 
| @@ -96,6 +97,7 @@ public: | |
| 96 97 | 
             
                const StrPtr &GetCwd()		{ return client.GetCwd();	}
         | 
| 97 98 | 
             
                const char * GetEnv( const char *v);
         | 
| 98 99 | 
             
                const StrPtr *GetEnviroFile();
         | 
| 100 | 
            +
                const StrPtr *GetEVar(const char *v);
         | 
| 99 101 | 
             
                const StrPtr &GetHost()		{ return client.GetHost();	}
         | 
| 100 102 | 
             
                const StrPtr &GetIgnoreFile()	{ return client.GetIgnoreFile();}
         | 
| 101 103 | 
             
                const StrPtr &GetLanguage()		{ return client.GetLanguage();	}
         | 
| @@ -121,7 +123,6 @@ public: | |
| 121 123 | 
             
                VALUE Connect();		// P4Exception on error
         | 
| 122 124 | 
             
                VALUE Connected();		// Return true if connected and not dropped.
         | 
| 123 125 | 
             
                VALUE Disconnect();
         | 
| 124 | 
            -
                VALUE Reset();          // Clear out any results from the previous command
         | 
| 125 126 |  | 
| 126 127 | 
             
                // Executing commands.
         | 
| 127 128 | 
             
                VALUE Run( const char *cmd, int argc, char * const *argv );
         | 
| @@ -170,6 +171,17 @@ public: | |
| 170 171 | 
             
                VALUE SetProgress( VALUE progress );
         | 
| 171 172 | 
             
                VALUE GetProgress() { return ui.GetProgress(); }
         | 
| 172 173 |  | 
| 174 | 
            +
                // SSO handler
         | 
| 175 | 
            +
                VALUE SetEnableSSO( VALUE e );
         | 
| 176 | 
            +
                VALUE GetEnableSSO();
         | 
| 177 | 
            +
                VALUE GetSSOVars();
         | 
| 178 | 
            +
                VALUE SetSSOPassResult( VALUE r );
         | 
| 179 | 
            +
                VALUE GetSSOPassResult();
         | 
| 180 | 
            +
                VALUE SetSSOFailResult( VALUE r );
         | 
| 181 | 
            +
                VALUE GetSSOFailResult();
         | 
| 182 | 
            +
                VALUE SetSSOHandler( VALUE handler );
         | 
| 183 | 
            +
                VALUE GetSSOHandler() { return ui.GetRubySSOHandler(); }
         | 
| 184 | 
            +
             | 
| 173 185 | 
             
                // Ruby garbage collection
         | 
| 174 186 | 
             
                void  GCMark();
         | 
| 175 187 |  | 
| @@ -248,4 +260,3 @@ private: | |
| 248 260 | 
             
                int			maxScanRows;
         | 
| 249 261 | 
             
                int			maxLockTime;
         | 
| 250 262 | 
             
            };
         | 
| 251 | 
            -
             | 
    
        data/ext/P4/p4result.cpp
    CHANGED
    
    
    
        data/ext/P4/p4specdata.cpp
    CHANGED
    
    | @@ -106,3 +106,32 @@ SpecDataRuby::SetLine( SpecElem *sd, int x, const StrPtr *v, Error *e ) | |
| 106 106 | 
             
            	}
         | 
| 107 107 | 
             
            	return;
         | 
| 108 108 | 
             
            }
         | 
| 109 | 
            +
             | 
| 110 | 
            +
            void
         | 
| 111 | 
            +
            SpecDataRuby::Comment ( SpecElem *sd, int x, const char **wv,  int nl, Error *e )
         | 
| 112 | 
            +
            {
         | 
| 113 | 
            +
            	VALUE 	key;
         | 
| 114 | 
            +
            	VALUE	val;
         | 
| 115 | 
            +
            	VALUE	ary;
         | 
| 116 | 
            +
            	StrBuf	t;
         | 
| 117 | 
            +
             | 
| 118 | 
            +
            	key = P4Utils::ruby_string( sd->tag.Text(), sd->tag.Length() );
         | 
| 119 | 
            +
            	val = P4Utils::ruby_string( *wv );
         | 
| 120 | 
            +
             | 
| 121 | 
            +
            	if( sd->IsList() )
         | 
| 122 | 
            +
            	{
         | 
| 123 | 
            +
             | 
| 124 | 
            +
            	    ary = rb_hash_aref( hash, key ); // rb_hash_aref  - get the value for hash key
         | 
| 125 | 
            +
            	    if( ary == Qnil )
         | 
| 126 | 
            +
            	    {
         | 
| 127 | 
            +
            		ary = rb_ary_new();
         | 
| 128 | 
            +
            		rb_hash_aset( hash, key, ary ); // rb_hash_aset(hash, key, value) - set the hash key to value
         | 
| 129 | 
            +
            	    }
         | 
| 130 | 
            +
            	    rb_ary_store( ary, x, val );
         | 
| 131 | 
            +
            	}
         | 
| 132 | 
            +
            	else
         | 
| 133 | 
            +
            	{ 
         | 
| 134 | 
            +
            	    rb_hash_aset( hash, key, val );
         | 
| 135 | 
            +
            	}
         | 
| 136 | 
            +
            	return;
         | 
| 137 | 
            +
            }
         | 
    
        data/ext/P4/p4specdata.h
    CHANGED
    
    | @@ -44,6 +44,8 @@ class SpecDataRuby : public SpecData | |
| 44 44 | 
             
            	virtual StrPtr *GetLine( SpecElem *sd, int x, const char **cmt );
         | 
| 45 45 | 
             
            	virtual void	SetLine( SpecElem *sd, int x, const StrPtr *val,
         | 
| 46 46 | 
             
            				Error *e );
         | 
| 47 | 
            +
            	virtual void	Comment( SpecElem *sd, int x, const char **wv,
         | 
| 48 | 
            +
            	            int nl, Error *e );
         | 
| 47 49 |  | 
| 48 50 | 
             
                private:
         | 
| 49 51 | 
             
            	VALUE	hash;
         | 
    
        data/ext/P4/specmgr.cpp
    CHANGED
    
    | @@ -63,22 +63,6 @@ struct defaultspec { | |
| 63 63 | 
             
                        "unlocked/locked;;"
         | 
| 64 64 | 
             
                    "View;code:311;type:wlist;words:2;len:64;;"
         | 
| 65 65 | 
             
                },
         | 
| 66 | 
            -
                {
         | 
| 67 | 
            -
                    "changeX",
         | 
| 68 | 
            -
                    "Change;code:201;rq;ro;fmt:L;seq:1;len:10;;"
         | 
| 69 | 
            -
                    "Date;code:202;type:date;ro;fmt:R;seq:3;len:20;;"
         | 
| 70 | 
            -
                    "Client;code:203;ro;fmt:L;seq:2;len:32;;"
         | 
| 71 | 
            -
                    "User;code:204;ro;fmt:L;seq:4;len:32;;"
         | 
| 72 | 
            -
                    "Status;code:205;ro;fmt:R;seq:5;len:10;;"
         | 
| 73 | 
            -
                    "Type;code:211;seq:6;type:select;fmt:L;len:10;"
         | 
| 74 | 
            -
                        "val:public/restricted;;"
         | 
| 75 | 
            -
                    "ImportedBy;code:212;type:line;ro;fmt:L;len:32;;"
         | 
| 76 | 
            -
                    "Identity;code:213;type:line;;"
         | 
| 77 | 
            -
                    "Description;code:206;type:text;rq;;"
         | 
| 78 | 
            -
                    "Jobs;code:209;type:wlist;words:2;len:32;;"
         | 
| 79 | 
            -
                    "Stream;code:214;type:line;len:64;;"
         | 
| 80 | 
            -
                    "Files;code:210;type:llist;len:64;;"
         | 
| 81 | 
            -
                },
         | 
| 82 66 | 
             
                {
         | 
| 83 67 | 
             
                    "change",
         | 
| 84 68 | 
             
                    "Change;code:201;rq;ro;fmt:L;seq:1;len:10;;"
         | 
| @@ -123,42 +107,6 @@ struct defaultspec { | |
| 123 107 | 
             
                    "View;code:311;type:wlist;words:2;len:64;;"
         | 
| 124 108 | 
             
                    "ChangeView;code:317;type:llist;len:64;;"
         | 
| 125 109 | 
             
                },
         | 
| 126 | 
            -
                {
         | 
| 127 | 
            -
                    "clientX",
         | 
| 128 | 
            -
                    "Client;code:301;rq;ro;seq:1;len:32;;"
         | 
| 129 | 
            -
                    "Update;code:302;type:date;ro;seq:2;fmt:L;len:20;;"
         | 
| 130 | 
            -
                    "Access;code:303;type:date;ro;seq:4;fmt:L;len:20;;"
         | 
| 131 | 
            -
                    "Owner;code:304;seq:3;fmt:R;len:32;;"
         | 
| 132 | 
            -
                    "Host;code:305;seq:5;fmt:R;len:32;;"
         | 
| 133 | 
            -
                    "Description;code:306;type:text;len:128;;"
         | 
| 134 | 
            -
                    "Root;code:307;rq;type:line;len:64;;"
         | 
| 135 | 
            -
                    "AltRoots;code:308;type:llist;len:64;;"
         | 
| 136 | 
            -
                    "Options;code:309;type:line;len:64;val:"
         | 
| 137 | 
            -
                        "noallwrite/allwrite,noclobber/clobber,nocompress/compress,"
         | 
| 138 | 
            -
                        "unlocked/locked,nomodtime/modtime,normdir/rmdir;;"
         | 
| 139 | 
            -
                    "SubmitOptions;code:313;type:select;fmt:L;len:25;val:"
         | 
| 140 | 
            -
                        "submitunchanged/submitunchanged+reopen/revertunchanged/"
         | 
| 141 | 
            -
                        "revertunchanged+reopen/leaveunchanged/leaveunchanged+reopen;;"
         | 
| 142 | 
            -
                    "LineEnd;code:310;type:select;fmt:L;len:12;val:"
         | 
| 143 | 
            -
                        "local/unix/mac/win/share;;"
         | 
| 144 | 
            -
                    "View;code:311;type:wlist;words:2;len:64;;"
         | 
| 145 | 
            -
                },
         | 
| 146 | 
            -
                {
         | 
| 147 | 
            -
                    "clientSpecing021",
         | 
| 148 | 
            -
                    "Client;code:301;rq;ro;len:32;;"
         | 
| 149 | 
            -
                    "Update;code:302;type:date;ro;len:20;;"
         | 
| 150 | 
            -
                    "Access;code:303;type:date;ro;len:20;;"
         | 
| 151 | 
            -
                    "Owner;code:304;len:32;;"
         | 
| 152 | 
            -
                    "Host;code:305;len:32;;"
         | 
| 153 | 
            -
                    "Description;code:306;type:text;len:128;;"
         | 
| 154 | 
            -
                    "Root;code:307;rq;type:line;len:64;;"
         | 
| 155 | 
            -
                    "AltRoots;code:308;type:text;len:64;;"
         | 
| 156 | 
            -
                    "Options;code:309;type:line;len:64;val:"
         | 
| 157 | 
            -
                        "noallwrite/allwrite,noclobber/clobber,nocompress/compress,"
         | 
| 158 | 
            -
                        "unlocked/locked,nomodtime/modtime,normdir/rmdir;;"
         | 
| 159 | 
            -
                    "LineEnd;code:310;type:select;len:12;val:local/unix/mac/win/share;;"
         | 
| 160 | 
            -
                    "View;code:311;type:wlist;words:2;len:64;;"
         | 
| 161 | 
            -
                },
         | 
| 162 110 | 
             
                {
         | 
| 163 111 | 
             
                    "depot",
         | 
| 164 112 | 
             
                    "Depot;code:251;rq;ro;len:32;;"
         | 
| @@ -172,53 +120,19 @@ struct defaultspec { | |
| 172 120 | 
             
                    "Map;code:257;rq;len:64;;"
         | 
| 173 121 | 
             
                    "SpecMap;code:259;type:wlist;len:64;;"
         | 
| 174 122 | 
             
                },
         | 
| 175 | 
            -
                {
         | 
| 176 | 
            -
                    "extensionGbl",
         | 
| 177 | 
            -
            	"ExtName;code:901;type:line;opt:once;len:64;;"
         | 
| 178 | 
            -
            	"ExtDescription;code:902;type:text;opt:once;len:128;;"
         | 
| 179 | 
            -
            	"ExtVersion;code:903;type:line;opt:once;len:32;;"
         | 
| 180 | 
            -
            	"ExtUUID;code:904;type:line;opt:once;len:36;;"
         | 
| 181 | 
            -
            	"ExtRev;code:905;type:word;opt:once;len:20;;"
         | 
| 182 | 
            -
            	"ExtMaxScriptTime;code:913;type:word;len:12;;"
         | 
| 183 | 
            -
            	"ExtMaxScriptMem;code:914;type:word;len:12;;"
         | 
| 184 | 
            -
            	"ExtAllowedGroups;code:915;type:wlist;len:32;opt:default;;"
         | 
| 185 | 
            -
            	"ExtEnabled;code:916;type:word;opt:default;len:12;;"
         | 
| 186 | 
            -
            	"ExtP4USER;code:917;type:word;opt:default;len:12;;"
         | 
| 187 | 
            -
            	"Name;code:906;type:line;opt:default;len:32;;"
         | 
| 188 | 
            -
            	"Owner;code:907;type:word;opt:default;len:36;;"
         | 
| 189 | 
            -
            	"Update;code:908;type:date;opt:always;fmt:L;len:20;;"
         | 
| 190 | 
            -
            	"Description;code:909;type:text;opt:required;len:128;;"
         | 
| 191 | 
            -
            	"ExtConfig;code:912;type:text;opt:required;len:256;;"
         | 
| 192 | 
            -
                },
         | 
| 193 | 
            -
                {
         | 
| 194 | 
            -
                    "extensionIns",
         | 
| 195 | 
            -
            	"ExtName;code:901;type:line;opt:once;len:64;;"
         | 
| 196 | 
            -
            	"ExtDescription;code:902;type:text;opt:once;len:128;;"
         | 
| 197 | 
            -
            	"ExtVersion;code:903;type:line;opt:once;len:32;;"
         | 
| 198 | 
            -
            	"ExtUUID;code:904;type:line;opt:once;len:36;;"
         | 
| 199 | 
            -
            	"ExtRev;code:905;type:word;opt:once;len:20;;"
         | 
| 200 | 
            -
            	"ExtMaxScriptTime;code:913;type:word;len:12;;"
         | 
| 201 | 
            -
            	"ExtMaxScriptMem;code:914;type:word;len:12;;"
         | 
| 202 | 
            -
            	"ExtEnabled;code:916;type:word;opt:default;len:12;;"
         | 
| 203 | 
            -
            	"Name;code:906;type:line;opt:default;len:32;;"
         | 
| 204 | 
            -
            	"Owner;code:907;type:word;opt:default;len:36;;"
         | 
| 205 | 
            -
            	"Update;code:908;type:date;opt:always;fmt:L;len:20;;"
         | 
| 206 | 
            -
            	"Description;code:909;type:text;opt:required;len:128;;"
         | 
| 207 | 
            -
            	"ExtConfig;code:912;type:text;opt:required;len:256;;"
         | 
| 208 | 
            -
                },
         | 
| 209 123 | 
             
                {
         | 
| 210 124 | 
             
                    "group",
         | 
| 211 125 | 
             
                    "Group;code:401;rq;ro;len:32;;"
         | 
| 212 126 | 
             
                    "MaxResults;code:402;type:word;len:12;;"
         | 
| 213 127 | 
             
                    "MaxScanRows;code:403;type:word;len:12;;"
         | 
| 214 128 | 
             
                    "MaxLockTime;code:407;type:word;len:12;;"
         | 
| 215 | 
            -
             | 
| 129 | 
            +
                    "MaxOpenFiles;code:413;type:word;len:12;;"
         | 
| 216 130 | 
             
                    "Timeout;code:406;type:word;len:12;;"
         | 
| 217 131 | 
             
                    "PasswordTimeout;code:409;type:word;len:12;;"
         | 
| 218 132 | 
             
                    "LdapConfig;code:410;type:line;len:128;;"
         | 
| 219 133 | 
             
                    "LdapSearchQuery;code:411;type:line;len:128;;"
         | 
| 220 134 | 
             
                    "LdapUserAttribute;code:412;type:line;len:128;;"
         | 
| 221 | 
            -
             | 
| 135 | 
            +
                    "LdapUserDNAttribute;code:414;type:line;len:128;;"
         | 
| 222 136 | 
             
                    "Subgroups;code:404;type:wlist;len:32;opt:default;;"
         | 
| 223 137 | 
             
                    "Owners;code:408;type:wlist;len:32;opt:default;;"
         | 
| 224 138 | 
             
                    "Users;code:405;type:wlist;len:32;opt:default;;"
         | 
| @@ -286,12 +200,13 @@ struct defaultspec { | |
| 286 200 | 
             
                    "Clients;code:458;len:8;;"
         | 
| 287 201 | 
             
                    "Users;code:459;len:8;;"
         | 
| 288 202 | 
             
                    "Files;code:460;len:8;;"
         | 
| 289 | 
            -
             | 
| 290 | 
            -
             | 
| 203 | 
            +
                    "Repos;code:462;len:8;;"
         | 
| 204 | 
            +
                    "ExtraCapabilities;code:463;type:llist;len:512;;"
         | 
| 205 | 
            +
                    },
         | 
| 291 206 | 
             
                {
         | 
| 292 207 | 
             
                    "protect",
         | 
| 293 | 
            -
             | 
| 294 | 
            -
             | 
| 208 | 
            +
                    "SubPath;code:502;ro;len:64;;"
         | 
| 209 | 
            +
                    "Update;code:503;type:date;ro;fmt:L;len:20;;"
         | 
| 295 210 | 
             
                    "Protections;code:501;fmt:C;type:wlist;words:5;opt:default;z;len:64;;"
         | 
| 296 211 | 
             
                },
         | 
| 297 212 | 
             
                {
         | 
| @@ -312,45 +227,40 @@ struct defaultspec { | |
| 312 227 | 
             
                },
         | 
| 313 228 | 
             
                {
         | 
| 314 229 | 
             
                    "repo",
         | 
| 315 | 
            -
             | 
| 316 | 
            -
             | 
| 317 | 
            -
             | 
| 318 | 
            -
             | 
| 319 | 
            -
             | 
| 320 | 
            -
             | 
| 321 | 
            -
             | 
| 322 | 
            -
             | 
| 323 | 
            -
             | 
| 230 | 
            +
                    "Repo;code:1001;rq;ro;fmt:L;len:128;;"
         | 
| 231 | 
            +
                    "Owner;code:1002;fmt:R;len:32;;"
         | 
| 232 | 
            +
                    "Created;code:1003;type:date;ro;fmt:L;len:20;;"
         | 
| 233 | 
            +
                    "Pushed;code:1004;type:date;ro;fmt:R;len:20;;"
         | 
| 234 | 
            +
                    "ForkedFrom;code:1005;ro;fmt:L;len:128;;"
         | 
| 235 | 
            +
                    "Description;code:1006;type:text;len:128;;"
         | 
| 236 | 
            +
                    "DefaultBranch;code:1007;fmt:L;len:32;;"
         | 
| 237 | 
            +
                    "MirroredFrom;code:1008;fmt:R;len:32;;"
         | 
| 238 | 
            +
                    "Options;code:1009;type:select;len:10;val:lfs/nolfs;;"
         | 
| 239 | 
            +
                    "GconnMirrorServerId;code:1010;fmt:L;len:32;;"
         | 
| 240 | 
            +
                    "GconnMirrorSecretToken;code:NNN;len:36;;"
         | 
| 241 | 
            +
                    "GconnMirrorStatus;code:NNN;len:8;;"
         | 
| 242 | 
            +
                    "GconnMirrorExcludedBranches;code:NNN;len:256;;"
         | 
| 243 | 
            +
                    "GconnMirrorHideFetchUrl;code:NNN;len:5;;"
         | 
| 324 244 | 
             
                },
         | 
| 325 245 | 
             
                {
         | 
| 326 246 | 
             
                    "server",
         | 
| 327 247 | 
             
                    "ServerID;code:751;rq;ro;len:32;;"
         | 
| 328 | 
            -
             | 
| 329 | 
            -
             | 
| 330 | 
            -
             | 
| 331 | 
            -
             | 
| 332 | 
            -
             | 
| 333 | 
            -
             | 
| 334 | 
            -
             | 
| 335 | 
            -
             | 
| 336 | 
            -
             | 
| 337 | 
            -
             | 
| 338 | 
            -
             | 
| 339 | 
            -
             | 
| 340 | 
            -
             | 
| 341 | 
            -
             | 
| 342 | 
            -
             | 
| 343 | 
            -
             | 
| 344 | 
            -
                {
         | 
| 345 | 
            -
                    "specW",
         | 
| 346 | 
            -
                    "Fields;code:351;type:wlist;words:5;rq;;"
         | 
| 347 | 
            -
                    "Required;code:357;type:wlist;;"
         | 
| 348 | 
            -
                    "Readonly;code:358;type:wlist;;"
         | 
| 349 | 
            -
                    "Words;code:352;type:wlist;words:2;;"
         | 
| 350 | 
            -
                    "Formats;code:353;type:wlist;words:3;;"
         | 
| 351 | 
            -
                    "Values;code:354;type:wlist;words:2;;"
         | 
| 352 | 
            -
                    "Presets;code:355;type:wlist;words:2;;"
         | 
| 353 | 
            -
                    "Comments;code:356;type:text;;"
         | 
| 248 | 
            +
                    "Type;code:752;rq;len:32;;"
         | 
| 249 | 
            +
                    "Name;code:753;type:line;len:32;;"
         | 
| 250 | 
            +
                    "Address;code:754;type:line;len:32;;"
         | 
| 251 | 
            +
                    "ExternalAddress;code:755;type:line;len:32;;"
         | 
| 252 | 
            +
                    "Services;code:756;rq;len:128;;"
         | 
| 253 | 
            +
                    "Options;code:764;type:line;len:32;val:"
         | 
| 254 | 
            +
                        "nomandatory/mandatory;;"
         | 
| 255 | 
            +
                    "ReplicatingFrom;code:765;type:line;len:32;;"
         | 
| 256 | 
            +
                    "Description;code:757;type:text;len:128;;"
         | 
| 257 | 
            +
                    "User;code:761;type:line;len:64;;"
         | 
| 258 | 
            +
                    "AllowedAddresses;code:763;type:wlist;len:64;;"
         | 
| 259 | 
            +
                    "UpdateCachedRepos;code:766;type:wlist;len:64;;"
         | 
| 260 | 
            +
                    "ClientDataFilter;code:758;type:wlist;len:64;;"
         | 
| 261 | 
            +
                    "RevisionDataFilter;code:759;type:wlist;len:64;;"
         | 
| 262 | 
            +
                    "ArchiveDataFilter;code:760;type:wlist;len:64;;"
         | 
| 263 | 
            +
                    "DistributedConfig;code:762;type:text;len:128;;"
         | 
| 354 264 | 
             
                },
         | 
| 355 265 | 
             
                {
         | 
| 356 266 | 
             
                    "spec",
         | 
| @@ -360,6 +270,7 @@ struct defaultspec { | |
| 360 270 | 
             
                    "Values;code:354;type:wlist;words:2;;"
         | 
| 361 271 | 
             
                    "Presets;code:355;type:wlist;words:2;;"
         | 
| 362 272 | 
             
                    "Openable;code:362;type:wlist;words:2;;"
         | 
| 273 | 
            +
                        "Maxwords;code:361;type:wlist;words:2;;"
         | 
| 363 274 | 
             
                    "Comments;code:356;type:text;;"
         | 
| 364 275 | 
             
                },
         | 
| 365 276 | 
             
                {
         | 
| @@ -376,9 +287,11 @@ struct defaultspec { | |
| 376 287 | 
             
                        "allsubmit/ownersubmit,unlocked/locked,"
         | 
| 377 288 | 
             
                        "toparent/notoparent,fromparent/nofromparent,"
         | 
| 378 289 | 
             
                        "mergedown/mergeany;open:isolate;;"
         | 
| 379 | 
            -
                    " | 
| 380 | 
            -
                    " | 
| 381 | 
            -
                    " | 
| 290 | 
            +
                    "ParentView;code:NNN;rq;open:isolate;"
         | 
| 291 | 
            +
                    "pre:inherit;val:noinherit/inherit;;"
         | 
| 292 | 
            +
                    "Paths;code:710;rq;type:wlist;words:2;maxwords:3;len:64;open:propagate;fmt:C;;"
         | 
| 293 | 
            +
                    "Remapped;code:711;type:wlist;words:2;len:64;open:propagate;fmt:C;;"
         | 
| 294 | 
            +
                    "Ignored;code:712;type:wlist;words:1;len:64;open:propagate;fmt:C;;"
         | 
| 382 295 | 
             
                    "View;code:713;type:wlist;words:2;len:64;;"
         | 
| 383 296 | 
             
                    "ChangeView;code:714;type:llist;ro;len:64;;"
         | 
| 384 297 | 
             
                },
         | 
    
        data/lib/P4/version.rb
    CHANGED
    
    | @@ -1,3 +1,3 @@ | |
| 1 | 
            -
            class P4
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            end
         | 
| 1 | 
            +
            class P4
         | 
| 2 | 
            +
                Version = VERSION = '2021.1.2196401'
         | 
| 3 | 
            +
            end
         | 
    
        data/lib/P4.rb
    CHANGED
    
    | @@ -118,6 +118,13 @@ class P4 | |
| 118 118 | 
             
              PROG_FAILDONE         = 2
         | 
| 119 119 | 
             
              PROG_FLUSH            = 3
         | 
| 120 120 |  | 
| 121 | 
            +
              # SSO Handler return values constants
         | 
| 122 | 
            +
              SSO_PASS	            = 0  # SSO succeeded (result is an authentication token)
         | 
| 123 | 
            +
            	SSO_FAIL	            = 1  # SSO failed (result will be logged as error message)
         | 
| 124 | 
            +
            	SSO_UNSET	            = 2  # Client has no SSO support
         | 
| 125 | 
            +
            	SSO_EXIT	            = 3  # Stop login process
         | 
| 126 | 
            +
            	SSO_SKIP	            = 4  # Fall back to default P4API behavior
         | 
| 127 | 
            +
             | 
| 121 128 | 
             
              # Mappings for P4#each_<spec>
         | 
| 122 129 | 
             
              # Hash of type vs. key
         | 
| 123 130 | 
             
              SpecTypes = {
         | 
| @@ -669,4 +676,13 @@ class P4 | |
| 669 676 | 
             
                  HANDLED
         | 
| 670 677 | 
             
                end
         | 
| 671 678 | 
             
              end
         | 
| 679 | 
            +
             | 
| 680 | 
            +
              #*****************************************************************************
         | 
| 681 | 
            +
              # P4::SSOHandler class.
         | 
| 682 | 
            +
              #*****************************************************************************
         | 
| 683 | 
            +
              class SSOHandler
         | 
| 684 | 
            +
                def authorize(vars, maxLength)
         | 
| 685 | 
            +
                  [ SSO_SKIP, "" ]
         | 
| 686 | 
            +
                end
         | 
| 687 | 
            +
              end
         | 
| 672 688 | 
             
            end # class P4
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: p4ruby
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 2021.1.2196401
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Perforce Software, Inc.
         | 
| 8 | 
            -
            autorequire: | 
| 8 | 
            +
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2021-10-14 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies: []
         | 
| 13 13 | 
             
            description: Ruby extensions to the C++ Perforce API.
         | 
| 14 14 | 
             
            email: support@perforce.com
         | 
| @@ -46,11 +46,12 @@ files: | |
| 46 46 | 
             
            - ext/P4/undefdups.h
         | 
| 47 47 | 
             
            - lib/P4.rb
         | 
| 48 48 | 
             
            - lib/P4/version.rb
         | 
| 49 | 
            -
            homepage: https:// | 
| 49 | 
            +
            homepage: https://github.com/perforce/p4ruby
         | 
| 50 50 | 
             
            licenses:
         | 
| 51 51 | 
             
            - MIT
         | 
| 52 | 
            -
            metadata: | 
| 53 | 
            -
             | 
| 52 | 
            +
            metadata:
         | 
| 53 | 
            +
              documentation_uri: https://www.perforce.com/manuals/p4ruby/Content/P4Ruby/Home-p4ruby.html
         | 
| 54 | 
            +
            post_install_message:
         | 
| 54 55 | 
             
            rdoc_options: []
         | 
| 55 56 | 
             
            require_paths:
         | 
| 56 57 | 
             
            - lib
         | 
| @@ -65,8 +66,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 65 66 | 
             
                - !ruby/object:Gem::Version
         | 
| 66 67 | 
             
                  version: '0'
         | 
| 67 68 | 
             
            requirements: []
         | 
| 68 | 
            -
            rubygems_version: 3. | 
| 69 | 
            -
            signing_key: | 
| 69 | 
            +
            rubygems_version: 3.2.15
         | 
| 70 | 
            +
            signing_key:
         | 
| 70 71 | 
             
            specification_version: 4
         | 
| 71 72 | 
             
            summary: Ruby extensions to the C++ Perforce API
         | 
| 72 73 | 
             
            test_files: []
         |