Skip to content

Commit c03723e

Browse files
committed
Renamed signature
1 parent b7a948d commit c03723e

7 files changed

Lines changed: 142 additions & 164 deletions

File tree

include/sig.h renamed to include/signature.h

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
* Dual licensed under the MIT and GPL licenses.
66
*/
77

8-
#ifndef GitSig_H
9-
#define GitSig_H
8+
#ifndef GitSignature_H
9+
#define GitSignature_H
1010

1111
#include <v8.h>
1212
#include <node.h>
@@ -18,23 +18,18 @@
1818
using namespace v8;
1919
using namespace node;
2020

21-
class GitSig : public ObjectWrap {
21+
class GitSignature : public ObjectWrap {
2222
public:
23-
static Persistent<FunctionTemplate> constructor_template;
23+
static Persistent<Function> constructor_template;
2424
static void Initialize(Handle<v8::Object> target);
2525

2626
void New(const char *name, const char *email, time_t time, int offset);
2727
git_signature* GetValue();
28-
void SetValue(git_signature* GitSig);
29-
git_signature* Dup();
30-
void Free();
31-
32-
char* Name();
33-
char* Email();
28+
void SetValue(git_signature* GitSignature);
3429

3530
protected:
36-
GitSig() {};
37-
~GitSig() {};
31+
GitSignature() {};
32+
~GitSignature() {};
3833

3934
static Handle<Value> New(const Arguments& args);
4035
static Handle<Value> Dup(const Arguments& args);
@@ -45,9 +40,6 @@ class GitSig : public ObjectWrap {
4540

4641
private:
4742
git_signature* sig;
48-
49-
char* name;
50-
char* email;
5143
};
5244

5345
#endif

lib/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ if (~os.type().indexOf('CYGWIN') && !~path.indexOf(root)) {
1212
// Import libraries
1313
exports.blob = require('./blob.js').blob;
1414
exports.repo = require('./repo.js').repo;
15-
exports.sig = require('./sig.js').sig;
15+
exports.signature = require('./signature.js').signature;
1616
exports.oid = require('./oid.js').oid;
1717
exports.object = require('./object.js').object;
1818
exports.reference = require('./reference.js').reference;

lib/sig.js

Lines changed: 0 additions & 31 deletions
This file was deleted.

lib/signature.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
var git = require('../');
2+
3+
var Signature = function(rawSignature) {
4+
if (rawSignature instanceof git.raw.Signature) {
5+
this.rawSignature = rawSignature;
6+
} else {
7+
this.rawSignature = new git.raw.Signature();
8+
}
9+
};
10+
11+
Signature.prototype.name = function(callback) {
12+
callback(null, this.rawSignature.name());
13+
};
14+
15+
Signature.prototype.email = function(callback) {
16+
callback(null, this.rawSignature.email());
17+
};
18+
19+
Signature.prototype.duplicate = function(callback) {
20+
callback(null, new Signature(git.rawSignature.duplicate()));
21+
};
22+
23+
exports.sig = Signature;

src/base.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#include "../vendor/libgit2/include/git2.h"
1212

1313
#include "../include/reference.h"
14-
#include "../include/sig.h"
14+
#include "../include/signature.h"
1515
#include "../include/error.h"
1616
#include "../include/blob.h"
1717
#include "../include/repo.h"
@@ -30,7 +30,7 @@ extern "C" void init(Handle<v8::Object> target) {
3030
GitError::Initialize(target);
3131

3232
GitReference::Initialize(target);
33-
GitSig::Initialize(target);
33+
GitSignature::Initialize(target);
3434
GitBlob::Initialize(target);
3535
GitOid::Initialize(target);
3636
GitObject::Initialize(target);

src/sig.cc

Lines changed: 0 additions & 115 deletions
This file was deleted.

src/signature.cc

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
/*
2+
* Copyright 2013, Tim Branyen @tbranyen <tim@tabdeveloper.com>
3+
* @author Michael Robinson @codeofinterest <mike@pagesofinterest.net>
4+
*
5+
* Dual licensed under the MIT and GPL licenses.
6+
*/
7+
8+
#include <v8.h>
9+
#include <node.h>
10+
11+
#include "../vendor/libgit2/include/git2.h"
12+
13+
#include "../include/repo.h"
14+
#include "../include/sig.h"
15+
16+
using namespace v8;
17+
using namespace node;
18+
19+
void GitSignature::Initialize (Handle<v8::Object> target) {
20+
Local<FunctionTemplate> tpl = FunctionTemplate::New(New);
21+
22+
tpl->InstanceTemplate()->SetInternalFieldCount(1);
23+
tpl->SetClassName(String::NewSymbol("Signature"));
24+
25+
NODE_SET_PROTOTYPE_METHOD(tpl, "duplicate", Duplicate);
26+
NODE_SET_PROTOTYPE_METHOD(tpl, "name", Name);
27+
NODE_SET_PROTOTYPE_METHOD(tpl, "email", Email);
28+
29+
NODE_SET_PROTOTYPE_METHOD(tpl, "free", Free);
30+
31+
constructor_template = Persistent<Function>::New(tpl->GetFunction());
32+
target->Set(String::NewSymbol("Signature"), constructor_template);
33+
}
34+
35+
git_signature* GitSignature::GetValue() {
36+
return this->sig;
37+
}
38+
39+
void GitSignature::SetValue(git_signature* sig) {
40+
this->sig = sig;
41+
this->name = sig->name;
42+
this->email = sig->email;
43+
}
44+
45+
void GitSignature::New(const char *name, const char *email, time_t time, int offset) {
46+
git_signature_new(&this->sig, name, email, time, offset);
47+
//this->sig = git_signature_new(name, email, time, offset);
48+
}
49+
50+
char* GitSignature::Name() {
51+
return this->name;
52+
}
53+
54+
char* GitSignature::Email() {
55+
return this->email;
56+
}
57+
58+
Handle<Value> GitSignature::New(const Arguments& args) {
59+
HandleScope scope;
60+
61+
GitSignature *signature = new GitSignature();
62+
signature->Wrap(args.This());
63+
64+
return scope.Close(args.This());
65+
}
66+
67+
Handle<Value> GitSignature::Duplicate(const Arguments& args) {
68+
HandleScope scope;
69+
70+
if(args.Length() == 0 || !args[0]->IsObject()) {
71+
return ThrowException(Exception::Error(String::New("GitSignature is required and must be an Object.")));
72+
}
73+
74+
Local<Object> duplicateSignature = GitSignature::constructor_template->NewInstance();
75+
GitSignature *duplicateSignatureInstance = ObjectWrap::Unwrap<GitSignature>(signature);
76+
77+
GitSignature* signature = ObjectWrap::Unwrap<GitSignature>(args[0]->ToObject());
78+
79+
duplicateSignatureInstance->SetValue(git_signature_dup(signature->GetValue()));
80+
81+
return duplicateSignature;
82+
}
83+
84+
Handle<Value> GitSignature::Free(const Arguments& args) {
85+
HandleScope scope;
86+
87+
GitSignature *signature = ObjectWrap::Unwrap<GitSignature>(args.This());
88+
git_signature_free(this->signature);
89+
90+
return Undefined();
91+
}
92+
93+
Handle<Value> GitSignature::Name(const Arguments& args) {
94+
HandleScope scope;
95+
96+
GitSignature *signature = ObjectWrap::Unwrap<GitSignature>(args.This());
97+
98+
return String::New(signature->Name());
99+
}
100+
101+
Handle<Value> GitSignature::Email(const Arguments& args) {
102+
HandleScope scope;
103+
104+
GitSignature *signature = ObjectWrap::Unwrap<GitSignature>(args.This());
105+
106+
return String::New(signature->Email());
107+
}
108+
109+
Persistent<Function> GitSignature::constructor_template;

0 commit comments

Comments
 (0)