p4ruby 2019.1.1873991-x64-mingw32 → 2021.1.2196401-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -57,6 +57,7 @@ P4Result::P4Result()
57
57
  VALUE cP4 = rb_const_get_at( rb_cObject, idP4 );
58
58
  cP4Msg = rb_const_get_at( cP4, idP4Msg );
59
59
 
60
+ Reset();
60
61
  }
61
62
 
62
63
 
@@ -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
- "MaxOpenFiles;code:413;type:word;len:12;;"
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
- "LdapUserDNAttribute;code:414;type:line;len:128;;"
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
- "Repos;code:462;len:8;;"
290
- },
203
+ "Repos;code:462;len:8;;"
204
+ "ExtraCapabilities;code:463;type:llist;len:512;;"
205
+ },
291
206
  {
292
207
  "protect",
293
- "SubPath;code:502;ro;len:64;;"
294
- "Update;code:503;type:date;ro;fmt:L;len:20;;"
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
- "Repo;code:1001;rq;ro;len:128;;"
316
- "Owner;code:1002;len:32;;"
317
- "Created;code:1003;type:date;ro;fmt:L;len:20;;"
318
- "Pushed;code:1004;type:date;ro;fmt:L;len:20;;"
319
- "ForkedFrom;code:1005;ro;len:128;;"
320
- "Description;code:1006;type:text;len:128;;"
321
- "DefaultBranch;code:1007;len:32;;"
322
- "MirroredFrom;code:1008;len:32;;"
323
- "Options;code:1009;type:select;len:10;val:lfs/nolfs;;"
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
- "Type;code:752;rq;len:32;;"
329
- "Name;code:753;type:line;len:32;;"
330
- "Address;code:754;type:line;len:32;;"
331
- "ExternalAddress;code:755;type:line;len:32;;"
332
- "Services;code:756;rq;len:128;;"
333
- "Options;code:764;type:line;len:32;val:"
334
- "nomandatory/mandatory;;"
335
- "ReplicatingFrom;code:765;type:line;len:32;;"
336
- "Description;code:757;type:text;len:128;;"
337
- "User;code:761;type:line;len:64;;"
338
- "AllowedAddresses;code:763;type:wlist;len:64;;"
339
- "ClientDataFilter;code:758;type:wlist;len:64;;"
340
- "RevisionDataFilter;code:759;type:wlist;len:64;;"
341
- "ArchiveDataFilter;code:760;type:wlist;len:64;;"
342
- "DistributedConfig;code:762;type:text;len:128;;"
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
- "Paths;code:710;rq;type:wlist;words:2;maxwords:3;len:64;open:propagate;;"
380
- "Remapped;code:711;type:wlist;words:2;len:64;open:propagate;;"
381
- "Ignored;code:712;type:wlist;words:1;len:64;open:propagate;;"
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/2.6/P4.so CHANGED
Binary file
data/lib/2.7/P4.so ADDED
Binary file
data/lib/3.0/P4.so ADDED
Binary file
data/lib/P4/version.rb CHANGED
@@ -1,3 +1,3 @@
1
- class P4
2
- Version = VERSION = '2019.1.1873991'
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
data/lib/P4.so ADDED
Binary file
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: 2019.1.1873991
4
+ version: 2021.1.2196401
5
5
  platform: x64-mingw32
6
6
  authors:
7
7
  - Perforce Software, Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-25 00:00:00.000000000 Z
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
@@ -43,17 +43,18 @@ files:
43
43
  - ext/P4/specmgr.cpp
44
44
  - ext/P4/specmgr.h
45
45
  - ext/P4/undefdups.h
46
- - lib/2.3/P4.so
47
- - lib/2.4/P4.so
48
- - lib/2.5/P4.so
49
46
  - lib/2.6/P4.so
47
+ - lib/2.7/P4.so
48
+ - lib/3.0/P4.so
50
49
  - lib/P4.rb
50
+ - lib/P4.so
51
51
  - lib/P4/version.rb
52
- homepage: https://swarm.workshop.perforce.com/projects/perforce-software-p4ruby/
52
+ homepage: https://github.com/perforce/p4ruby
53
53
  licenses:
54
54
  - MIT
55
- metadata: {}
56
- post_install_message:
55
+ metadata:
56
+ documentation_uri: https://www.perforce.com/manuals/p4ruby/Content/P4Ruby/Home-p4ruby.html
57
+ post_install_message:
57
58
  rdoc_options: []
58
59
  require_paths:
59
60
  - lib
@@ -68,8 +69,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
69
  - !ruby/object:Gem::Version
69
70
  version: '0'
70
71
  requirements: []
71
- rubygems_version: 3.0.6
72
- signing_key:
72
+ rubygems_version: 3.2.15
73
+ signing_key:
73
74
  specification_version: 4
74
75
  summary: Ruby extensions to the C++ Perforce API
75
76
  test_files: []
data/lib/2.3/P4.so DELETED
Binary file
data/lib/2.4/P4.so DELETED
Binary file
data/lib/2.5/P4.so DELETED
Binary file