docurium 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/.gitignore +3 -0
  2. data/Gemfile +5 -0
  3. data/LICENCE +19 -0
  4. data/README.md +39 -0
  5. data/TODO.txt +19 -0
  6. data/bin/cm +31 -0
  7. data/docurium.gemspec +25 -0
  8. data/lib/docurium.rb +435 -0
  9. data/lib/docurium/cli.rb +10 -0
  10. data/site/css/style.css +236 -0
  11. data/site/images/search_icon.png +0 -0
  12. data/site/index.html +65 -0
  13. data/site/js/backbone.js +27 -0
  14. data/site/js/docurium.js +649 -0
  15. data/site/js/json2.js +26 -0
  16. data/site/js/underscore.js +26 -0
  17. data/site/shared/css/documentation.css +797 -0
  18. data/site/shared/css/pygments.css +60 -0
  19. data/site/shared/images/active-arrow.png +0 -0
  20. data/site/shared/images/background-v2.png +0 -0
  21. data/site/shared/images/background-white.png +0 -0
  22. data/site/shared/images/dropdown_sprites.jpg +0 -0
  23. data/site/shared/images/footer_logo.png +0 -0
  24. data/site/shared/images/logo.png +0 -0
  25. data/site/shared/images/nav-rule.png +0 -0
  26. data/site/shared/images/next_step_arrow.gif +0 -0
  27. data/site/shared/images/qmark.png +0 -0
  28. data/site/shared/js/documentation.js +43 -0
  29. data/site/shared/js/jquery.js +154 -0
  30. data/test/fixtures/git2/api.docurium +6 -0
  31. data/test/fixtures/git2/blob.h +121 -0
  32. data/test/fixtures/git2/commit.h +302 -0
  33. data/test/fixtures/git2/common.h +98 -0
  34. data/test/fixtures/git2/errors.h +149 -0
  35. data/test/fixtures/git2/index.h +270 -0
  36. data/test/fixtures/git2/object.h +147 -0
  37. data/test/fixtures/git2/odb.h +302 -0
  38. data/test/fixtures/git2/odb_backend.h +107 -0
  39. data/test/fixtures/git2/oid.h +191 -0
  40. data/test/fixtures/git2/refs.h +325 -0
  41. data/test/fixtures/git2/repository.h +217 -0
  42. data/test/fixtures/git2/revwalk.h +187 -0
  43. data/test/fixtures/git2/signature.h +81 -0
  44. data/test/fixtures/git2/tag.h +297 -0
  45. data/test/fixtures/git2/thread-utils.h +71 -0
  46. data/test/fixtures/git2/tree.h +266 -0
  47. data/test/fixtures/git2/types.h +162 -0
  48. data/test/fixtures/git2/zlib.h +58 -0
  49. data/test/repo_test.rb +101 -0
  50. data/test/test_helper.rb +29 -0
  51. metadata +167 -0
@@ -0,0 +1,98 @@
1
+ /*
2
+ * This file is free software; you can redistribute it and/or modify
3
+ * it under the terms of the GNU General Public License, version 2,
4
+ * as published by the Free Software Foundation.
5
+ *
6
+ * In addition to the permissions in the GNU General Public License,
7
+ * the authors give you unlimited permission to link the compiled
8
+ * version of this file into combinations with other programs,
9
+ * and to distribute those combinations without any restriction
10
+ * coming from the use of this file. (The General Public License
11
+ * restrictions do apply in other respects; for example, they cover
12
+ * modification of the file, and distribution when not linked into
13
+ * a combined executable.)
14
+ *
15
+ * This file is distributed in the hope that it will be useful, but
16
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
17
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18
+ * General Public License for more details.
19
+ *
20
+ * You should have received a copy of the GNU General Public License
21
+ * along with this program; see the file COPYING. If not, write to
22
+ * the Free Software Foundation, 51 Franklin Street, Fifth Floor,
23
+ * Boston, MA 02110-1301, USA.
24
+ */
25
+ #ifndef INCLUDE_git_common_h__
26
+ #define INCLUDE_git_common_h__
27
+
28
+ #include "thread-utils.h"
29
+ #include <time.h>
30
+ #include <stdlib.h>
31
+
32
+ #ifdef __cplusplus
33
+ # define GIT_BEGIN_DECL extern "C" {
34
+ # define GIT_END_DECL }
35
+ #else
36
+ /** Start declarations in C mode */
37
+ # define GIT_BEGIN_DECL /* empty */
38
+ /** End declarations in C mode */
39
+ # define GIT_END_DECL /* empty */
40
+ #endif
41
+
42
+ /** Declare a public function exported for application use. */
43
+ #ifdef __GNUC__
44
+ # define GIT_EXTERN(type) extern \
45
+ __attribute__((visibility("default"))) \
46
+ type
47
+ #elif defined(_MSC_VER)
48
+ # define GIT_EXTERN(type) __declspec(dllexport) type
49
+ #else
50
+ # define GIT_EXTERN(type) extern type
51
+ #endif
52
+
53
+ /** Declare a public TLS symbol exported for application use. */
54
+ #ifdef __GNUC__
55
+ # define GIT_EXTERN_TLS(type) extern \
56
+ __attribute__((visibility("default"))) \
57
+ GIT_TLS \
58
+ type
59
+ #elif defined(_MSC_VER)
60
+ # define GIT_EXTERN_TLS(type) __declspec(dllexport) GIT_TLS type
61
+ #else
62
+ # define GIT_EXTERN_TLS(type) extern GIT_TLS type
63
+ #endif
64
+
65
+ /** Declare a function as always inlined. */
66
+ #if defined(_MSC_VER)
67
+ # define GIT_INLINE(type) static __inline type
68
+ #else
69
+ # define GIT_INLINE(type) static inline type
70
+ #endif
71
+
72
+ /** Declare a function's takes printf style arguments. */
73
+ #ifdef __GNUC__
74
+ # define GIT_FORMAT_PRINTF(a,b) __attribute__((format (printf, a, b)))
75
+ #else
76
+ # define GIT_FORMAT_PRINTF(a,b) /* empty */
77
+ #endif
78
+
79
+ /**
80
+ * @file git2/common.h
81
+ * @brief Git common platform definitions
82
+ * @defgroup git_common Git common platform definitions
83
+ * @ingroup Git
84
+ * @{
85
+ */
86
+
87
+ GIT_BEGIN_DECL
88
+
89
+ typedef struct {
90
+ char **strings;
91
+ size_t count;
92
+ } git_strarray;
93
+
94
+ GIT_EXTERN(void) git_strarray_free(git_strarray *array);
95
+
96
+ /** @} */
97
+ GIT_END_DECL
98
+ #endif
@@ -0,0 +1,149 @@
1
+ /*
2
+ * This file is free software; you can redistribute it and/or modify
3
+ * it under the terms of the GNU General Public License, version 2,
4
+ * as published by the Free Software Foundation.
5
+ *
6
+ * In addition to the permissions in the GNU General Public License,
7
+ * the authors give you unlimited permission to link the compiled
8
+ * version of this file into combinations with other programs,
9
+ * and to distribute those combinations without any restriction
10
+ * coming from the use of this file. (The General Public License
11
+ * restrictions do apply in other respects; for example, they cover
12
+ * modification of the file, and distribution when not linked into
13
+ * a combined executable.)
14
+ *
15
+ * This file is distributed in the hope that it will be useful, but
16
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
17
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18
+ * General Public License for more details.
19
+ *
20
+ * You should have received a copy of the GNU General Public License
21
+ * along with this program; see the file COPYING. If not, write to
22
+ * the Free Software Foundation, 51 Franklin Street, Fifth Floor,
23
+ * Boston, MA 02110-1301, USA.
24
+ */
25
+ #ifndef INCLUDE_git_errors_h__
26
+ #define INCLUDE_git_errors_h__
27
+
28
+ /**
29
+ * @file git2/errors.h
30
+ * @brief Git error handling routines and variables
31
+ * @ingroup Git
32
+ * @{
33
+ */
34
+ GIT_BEGIN_DECL
35
+
36
+ /** Operation completed successfully. */
37
+ #define GIT_SUCCESS 0
38
+
39
+ /**
40
+ * Operation failed, with unspecified reason.
41
+ * This value also serves as the base error code; all other
42
+ * error codes are subtracted from it such that all errors
43
+ * are < 0, in typical POSIX C tradition.
44
+ */
45
+ #define GIT_ERROR -1
46
+
47
+ /** Input was not a properly formatted Git object id. */
48
+ #define GIT_ENOTOID (GIT_ERROR - 1)
49
+
50
+ /** Input does not exist in the scope searched. */
51
+ #define GIT_ENOTFOUND (GIT_ERROR - 2)
52
+
53
+ /** Not enough space available. */
54
+ #define GIT_ENOMEM (GIT_ERROR - 3)
55
+
56
+ /** Consult the OS error information. */
57
+ #define GIT_EOSERR (GIT_ERROR - 4)
58
+
59
+ /** The specified object is of invalid type */
60
+ #define GIT_EOBJTYPE (GIT_ERROR - 5)
61
+
62
+ /** The specified object has its data corrupted */
63
+ #define GIT_EOBJCORRUPTED (GIT_ERROR - 6)
64
+
65
+ /** The specified repository is invalid */
66
+ #define GIT_ENOTAREPO (GIT_ERROR - 7)
67
+
68
+ /** The object type is invalid or doesn't match */
69
+ #define GIT_EINVALIDTYPE (GIT_ERROR - 8)
70
+
71
+ /** The object cannot be written because it's missing internal data */
72
+ #define GIT_EMISSINGOBJDATA (GIT_ERROR - 9)
73
+
74
+ /** The packfile for the ODB is corrupted */
75
+ #define GIT_EPACKCORRUPTED (GIT_ERROR - 10)
76
+
77
+ /** Failed to acquire or release a file lock */
78
+ #define GIT_EFLOCKFAIL (GIT_ERROR - 11)
79
+
80
+ /** The Z library failed to inflate/deflate an object's data */
81
+ #define GIT_EZLIB (GIT_ERROR - 12)
82
+
83
+ /** The queried object is currently busy */
84
+ #define GIT_EBUSY (GIT_ERROR - 13)
85
+
86
+ /** The index file is not backed up by an existing repository */
87
+ #define GIT_EBAREINDEX (GIT_ERROR - 14)
88
+
89
+ /** The name of the reference is not valid */
90
+ #define GIT_EINVALIDREFNAME (GIT_ERROR - 15)
91
+
92
+ /** The specified reference has its data corrupted */
93
+ #define GIT_EREFCORRUPTED (GIT_ERROR - 16)
94
+
95
+ /** The specified symbolic reference is too deeply nested */
96
+ #define GIT_ETOONESTEDSYMREF (GIT_ERROR - 17)
97
+
98
+ /** The pack-refs file is either corrupted or its format is not currently supported */
99
+ #define GIT_EPACKEDREFSCORRUPTED (GIT_ERROR - 18)
100
+
101
+ /** The path is invalid */
102
+ #define GIT_EINVALIDPATH (GIT_ERROR - 19)
103
+
104
+ /** The revision walker is empty; there are no more commits left to iterate */
105
+ #define GIT_EREVWALKOVER (GIT_ERROR - 20)
106
+
107
+ /** The state of the reference is not valid */
108
+ #define GIT_EINVALIDREFSTATE (GIT_ERROR - 21)
109
+
110
+ /** This feature has not been implemented yet */
111
+ #define GIT_ENOTIMPLEMENTED (GIT_ERROR - 22)
112
+
113
+ /** A reference with this name already exists */
114
+ #define GIT_EEXISTS (GIT_ERROR - 23)
115
+
116
+ /** The given integer literal is too large to be parsed */
117
+ #define GIT_EOVERFLOW (GIT_ERROR - 24)
118
+
119
+ /** The given literal is not a valid number */
120
+ #define GIT_ENOTNUM (GIT_ERROR - 25)
121
+
122
+ /** Streaming error */
123
+ #define GIT_ESTREAM (GIT_ERROR - 26)
124
+
125
+ /** invalid arguments to function */
126
+ #define GIT_EINVALIDARGS (GIT_ERROR - 27)
127
+
128
+ /**
129
+ * Return a detailed error string with the latest error
130
+ * that occurred in the library.
131
+ * @return a string explaining the error
132
+ */
133
+ GIT_EXTERN(const char *) git_lasterror(void);
134
+
135
+ /**
136
+ * strerror() for the Git library
137
+ *
138
+ * Get a string description for a given error code.
139
+ * NOTE: This method will be eventually deprecated in favor
140
+ * of the new `git_lasterror`.
141
+ *
142
+ * @param num The error code to explain
143
+ * @return a string explaining the error code
144
+ */
145
+ GIT_EXTERN(const char *) git_strerror(int num);
146
+
147
+ /** @} */
148
+ GIT_END_DECL
149
+ #endif
@@ -0,0 +1,270 @@
1
+ /*
2
+ * This file is free software; you can redistribute it and/or modify
3
+ * it under the terms of the GNU General Public License, version 2,
4
+ * as published by the Free Software Foundation.
5
+ *
6
+ * In addition to the permissions in the GNU General Public License,
7
+ * the authors give you unlimited permission to link the compiled
8
+ * version of this file into combinations with other programs,
9
+ * and to distribute those combinations without any restriction
10
+ * coming from the use of this file. (The General Public License
11
+ * restrictions do apply in other respects; for example, they cover
12
+ * modification of the file, and distribution when not linked into
13
+ * a combined executable.)
14
+ *
15
+ * This file is distributed in the hope that it will be useful, but
16
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
17
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18
+ * General Public License for more details.
19
+ *
20
+ * You should have received a copy of the GNU General Public License
21
+ * along with this program; see the file COPYING. If not, write to
22
+ * the Free Software Foundation, 51 Franklin Street, Fifth Floor,
23
+ * Boston, MA 02110-1301, USA.
24
+ */
25
+ #ifndef INCLUDE_git_index_h__
26
+ #define INCLUDE_git_index_h__
27
+
28
+ #include "common.h"
29
+ #include "types.h"
30
+ #include "oid.h"
31
+
32
+ /**
33
+ * @file git2/index.h
34
+ * @brief Git index parsing and manipulation routines
35
+ * @defgroup git_index Git index parsing and manipulation routines
36
+ * @ingroup Git
37
+ * @{
38
+ */
39
+ GIT_BEGIN_DECL
40
+
41
+ #define GIT_IDXENTRY_NAMEMASK (0x0fff)
42
+ #define GIT_IDXENTRY_STAGEMASK (0x3000)
43
+ #define GIT_IDXENTRY_EXTENDED (0x4000)
44
+ #define GIT_IDXENTRY_VALID (0x8000)
45
+ #define GIT_IDXENTRY_STAGESHIFT 12
46
+
47
+ /*
48
+ * Flags are divided into two parts: in-memory flags and
49
+ * on-disk ones. Flags in GIT_IDXENTRY_EXTENDED_FLAGS
50
+ * will get saved on-disk.
51
+ *
52
+ * In-memory only flags:
53
+ */
54
+ #define GIT_IDXENTRY_UPDATE (1 << 0)
55
+ #define GIT_IDXENTRY_REMOVE (1 << 1)
56
+ #define GIT_IDXENTRY_UPTODATE (1 << 2)
57
+ #define GIT_IDXENTRY_ADDED (1 << 3)
58
+
59
+ #define GIT_IDXENTRY_HASHED (1 << 4)
60
+ #define GIT_IDXENTRY_UNHASHED (1 << 5)
61
+ #define GIT_IDXENTRY_WT_REMOVE (1 << 6) /* remove in work directory */
62
+ #define GIT_IDXENTRY_CONFLICTED (1 << 7)
63
+
64
+ #define GIT_IDXENTRY_UNPACKED (1 << 8)
65
+ #define GIT_IDXENTRY_NEW_SKIP_WORKTREE (1 << 9)
66
+
67
+ /*
68
+ * Extended on-disk flags:
69
+ */
70
+ #define GIT_IDXENTRY_INTENT_TO_ADD (1 << 13)
71
+ #define GIT_IDXENTRY_SKIP_WORKTREE (1 << 14)
72
+ /* GIT_IDXENTRY_EXTENDED2 is for future extension */
73
+ #define GIT_IDXENTRY_EXTENDED2 (1 << 15)
74
+
75
+ #define GIT_IDXENTRY_EXTENDED_FLAGS (GIT_IDXENTRY_INTENT_TO_ADD | GIT_IDXENTRY_SKIP_WORKTREE)
76
+
77
+ /** Time used in a git index entry */
78
+ typedef struct {
79
+ git_time_t seconds;
80
+ /* nsec should not be stored as time_t compatible */
81
+ unsigned int nanoseconds;
82
+ } git_index_time;
83
+
84
+ /** Memory representation of a file entry in the index. */
85
+ typedef struct git_index_entry {
86
+ git_index_time ctime;
87
+ git_index_time mtime;
88
+
89
+ unsigned int dev;
90
+ unsigned int ino;
91
+ unsigned int mode;
92
+ unsigned int uid;
93
+ unsigned int gid;
94
+ git_off_t file_size;
95
+
96
+ git_oid oid;
97
+
98
+ unsigned short flags;
99
+ unsigned short flags_extended;
100
+
101
+ char *path;
102
+ } git_index_entry;
103
+
104
+
105
+ /**
106
+ * Create a new Git index object as a memory representation
107
+ * of the Git index file in 'index_path', without a repository
108
+ * to back it.
109
+ *
110
+ * Since there is no ODB behind this index, any Index methods
111
+ * which rely on the ODB (e.g. index_add) will fail with the
112
+ * GIT_EBAREINDEX error code.
113
+ *
114
+ * @param index the pointer for the new index
115
+ * @param index_path the path to the index file in disk
116
+ * @return 0 on success; error code otherwise
117
+ */
118
+ GIT_EXTERN(int) git_index_open_bare(git_index **index, const char *index_path);
119
+
120
+ /**
121
+ * Open the Index inside the git repository pointed
122
+ * by 'repo'.
123
+ *
124
+ * @param index the pointer for the new index
125
+ * @param repo the git repo which owns the index
126
+ * @return 0 on success; error code otherwise
127
+ */
128
+ GIT_EXTERN(int) git_index_open_inrepo(git_index **index, git_repository *repo);
129
+
130
+ /**
131
+ * Clear the contents (all the entries) of an index object.
132
+ * This clears the index object in memory; changes must be manually
133
+ * written to disk for them to take effect.
134
+ *
135
+ * @param index an existing index object
136
+ */
137
+ GIT_EXTERN(void) git_index_clear(git_index *index);
138
+
139
+ /**
140
+ * Free an existing index object.
141
+ *
142
+ * @param index an existing index object
143
+ */
144
+ GIT_EXTERN(void) git_index_free(git_index *index);
145
+
146
+ /**
147
+ * Update the contents of an existing index object in memory
148
+ * by reading from the hard disk.
149
+ *
150
+ * @param index an existing index object
151
+ * @return 0 on success, otherwise an error code
152
+ */
153
+ GIT_EXTERN(int) git_index_read(git_index *index);
154
+
155
+ /**
156
+ * Write an existing index object from memory back to disk
157
+ * using an atomic file lock.
158
+ *
159
+ * @param index an existing index object
160
+ * @return 0 on success, otherwise an error code
161
+ */
162
+ GIT_EXTERN(int) git_index_write(git_index *index);
163
+
164
+ /**
165
+ * Find the first index of any entries which point to given
166
+ * path in the Git index.
167
+ *
168
+ * @param index an existing index object
169
+ * @param path path to search
170
+ * @return an index >= 0 if found, -1 otherwise
171
+ */
172
+ GIT_EXTERN(int) git_index_find(git_index *index, const char *path);
173
+
174
+ /**
175
+ * Add or update an index entry from a file in disk
176
+ *
177
+ * The file `path` must be relative to the repository's
178
+ * working folder and must be readable.
179
+ *
180
+ * This method will fail in bare index instances.
181
+ *
182
+ * @param index an existing index object
183
+ * @param path filename to add
184
+ * @param stage stage for the entry
185
+ * @return 0 on success, otherwise an error code
186
+ */
187
+ GIT_EXTERN(int) git_index_add(git_index *index, const char *path, int stage);
188
+
189
+ /**
190
+ * Add or update an index entry from an in-memory struct
191
+ *
192
+ * A full copy (including the 'path' string) of the given
193
+ * 'source_entry' will be inserted on the index.
194
+ *
195
+ * @param index an existing index object
196
+ * @param source_entry new entry object
197
+ * @return 0 on success, otherwise an error code
198
+ */
199
+ GIT_EXTERN(int) git_index_add2(git_index *index, const git_index_entry *source_entry);
200
+
201
+ /**
202
+ * Add (append) an index entry from a file in disk
203
+ *
204
+ * A new entry will always be inserted into the index;
205
+ * if the index already contains an entry for such
206
+ * path, the old entry will **not** be replaced.
207
+ *
208
+ * The file `path` must be relative to the repository's
209
+ * working folder and must be readable.
210
+ *
211
+ * This method will fail in bare index instances.
212
+ *
213
+ * @param index an existing index object
214
+ * @param path filename to add
215
+ * @param stage stage for the entry
216
+ * @return 0 on success, otherwise an error code
217
+ */
218
+ GIT_EXTERN(int) git_index_append(git_index *index, const char *path, int stage);
219
+
220
+ /**
221
+ * Add (append) an index entry from an in-memory struct
222
+ *
223
+ * A new entry will always be inserted into the index;
224
+ * if the index already contains an entry for the path
225
+ * in the `entry` struct, the old entry will **not** be
226
+ * replaced.
227
+ *
228
+ * A full copy (including the 'path' string) of the given
229
+ * 'source_entry' will be inserted on the index.
230
+ *
231
+ * @param index an existing index object
232
+ * @param source_entry new entry object
233
+ * @return 0 on success, otherwise an error code
234
+ */
235
+ GIT_EXTERN(int) git_index_append2(git_index *index, const git_index_entry *source_entry);
236
+
237
+ /**
238
+ * Remove an entry from the index
239
+ *
240
+ * @param index an existing index object
241
+ * @param position position of the entry to remove
242
+ * @return 0 on success, otherwise an error code
243
+ */
244
+ GIT_EXTERN(int) git_index_remove(git_index *index, int position);
245
+
246
+
247
+ /**
248
+ * Get a pointer to one of the entries in the index
249
+ *
250
+ * This entry can be modified, and the changes will be written
251
+ * back to disk on the next write() call.
252
+ *
253
+ * @param index an existing index object
254
+ * @param n the position of the entry
255
+ * @return a pointer to the entry; NULL if out of bounds
256
+ */
257
+ GIT_EXTERN(git_index_entry *) git_index_get(git_index *index, int n);
258
+
259
+ /**
260
+ * Get the count of entries currently in the index
261
+ *
262
+ * @param index an existing index object
263
+ * @return integer of count of current entries
264
+ */
265
+ GIT_EXTERN(unsigned int) git_index_entrycount(git_index *index);
266
+
267
+
268
+ /** @} */
269
+ GIT_END_DECL
270
+ #endif