ctags.rb 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (138) hide show
  1. data/Gemfile +2 -0
  2. data/Rakefile +23 -0
  3. data/ctags.rb.gemspec +23 -0
  4. data/ext/.gitignore +3 -0
  5. data/ext/extconf.rb +15 -0
  6. data/ext/vendor/exuberant-ctags/.gitignore +6 -0
  7. data/ext/vendor/exuberant-ctags/.indent.pro +31 -0
  8. data/ext/vendor/exuberant-ctags/COPYING +340 -0
  9. data/ext/vendor/exuberant-ctags/EXTENDING.html +386 -0
  10. data/ext/vendor/exuberant-ctags/FAQ +371 -0
  11. data/ext/vendor/exuberant-ctags/INSTALL +215 -0
  12. data/ext/vendor/exuberant-ctags/INSTALL.oth +73 -0
  13. data/ext/vendor/exuberant-ctags/MAINTAINERS +88 -0
  14. data/ext/vendor/exuberant-ctags/Makefile.in +222 -0
  15. data/ext/vendor/exuberant-ctags/NEWS +871 -0
  16. data/ext/vendor/exuberant-ctags/README +73 -0
  17. data/ext/vendor/exuberant-ctags/ant.c +42 -0
  18. data/ext/vendor/exuberant-ctags/argproc.c +505 -0
  19. data/ext/vendor/exuberant-ctags/args.c +274 -0
  20. data/ext/vendor/exuberant-ctags/args.h +63 -0
  21. data/ext/vendor/exuberant-ctags/asm.c +387 -0
  22. data/ext/vendor/exuberant-ctags/asp.c +328 -0
  23. data/ext/vendor/exuberant-ctags/awk.c +81 -0
  24. data/ext/vendor/exuberant-ctags/basic.c +203 -0
  25. data/ext/vendor/exuberant-ctags/beta.c +321 -0
  26. data/ext/vendor/exuberant-ctags/c.c +2932 -0
  27. data/ext/vendor/exuberant-ctags/cobol.c +50 -0
  28. data/ext/vendor/exuberant-ctags/config.h.in +277 -0
  29. data/ext/vendor/exuberant-ctags/configure +7704 -0
  30. data/ext/vendor/exuberant-ctags/configure.ac +532 -0
  31. data/ext/vendor/exuberant-ctags/ctags.1 +1186 -0
  32. data/ext/vendor/exuberant-ctags/ctags.h +28 -0
  33. data/ext/vendor/exuberant-ctags/ctags.html +2087 -0
  34. data/ext/vendor/exuberant-ctags/ctags.spec +40 -0
  35. data/ext/vendor/exuberant-ctags/debug.c +113 -0
  36. data/ext/vendor/exuberant-ctags/debug.h +70 -0
  37. data/ext/vendor/exuberant-ctags/descrip.mms +68 -0
  38. data/ext/vendor/exuberant-ctags/dosbatch.c +42 -0
  39. data/ext/vendor/exuberant-ctags/e_amiga.h +24 -0
  40. data/ext/vendor/exuberant-ctags/e_djgpp.h +47 -0
  41. data/ext/vendor/exuberant-ctags/e_mac.h +143 -0
  42. data/ext/vendor/exuberant-ctags/e_msoft.h +76 -0
  43. data/ext/vendor/exuberant-ctags/e_os2.h +37 -0
  44. data/ext/vendor/exuberant-ctags/e_qdos.h +34 -0
  45. data/ext/vendor/exuberant-ctags/e_riscos.h +58 -0
  46. data/ext/vendor/exuberant-ctags/e_vms.h +31 -0
  47. data/ext/vendor/exuberant-ctags/eiffel.c +1352 -0
  48. data/ext/vendor/exuberant-ctags/entry.c +847 -0
  49. data/ext/vendor/exuberant-ctags/entry.h +103 -0
  50. data/ext/vendor/exuberant-ctags/erlang.c +189 -0
  51. data/ext/vendor/exuberant-ctags/flex.c +2243 -0
  52. data/ext/vendor/exuberant-ctags/fortran.c +2197 -0
  53. data/ext/vendor/exuberant-ctags/general.h +127 -0
  54. data/ext/vendor/exuberant-ctags/get.c +669 -0
  55. data/ext/vendor/exuberant-ctags/get.h +50 -0
  56. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/all-wcprops +47 -0
  57. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/entries +112 -0
  58. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/README.txt.svn-base +5 -0
  59. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regcomp.c.svn-base +3818 -0
  60. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex.c.svn-base +74 -0
  61. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex.h.svn-base +575 -0
  62. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex_internal.c.svn-base +1713 -0
  63. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex_internal.h.svn-base +773 -0
  64. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regexec.c.svn-base +4338 -0
  65. data/ext/vendor/exuberant-ctags/gnu_regex/README.txt +5 -0
  66. data/ext/vendor/exuberant-ctags/gnu_regex/regcomp.c +3818 -0
  67. data/ext/vendor/exuberant-ctags/gnu_regex/regex.c +74 -0
  68. data/ext/vendor/exuberant-ctags/gnu_regex/regex.h +575 -0
  69. data/ext/vendor/exuberant-ctags/gnu_regex/regex_internal.c +1713 -0
  70. data/ext/vendor/exuberant-ctags/gnu_regex/regex_internal.h +773 -0
  71. data/ext/vendor/exuberant-ctags/gnu_regex/regexec.c +4338 -0
  72. data/ext/vendor/exuberant-ctags/html.c +49 -0
  73. data/ext/vendor/exuberant-ctags/jscript.c +1572 -0
  74. data/ext/vendor/exuberant-ctags/keyword.c +258 -0
  75. data/ext/vendor/exuberant-ctags/keyword.h +34 -0
  76. data/ext/vendor/exuberant-ctags/lisp.c +139 -0
  77. data/ext/vendor/exuberant-ctags/lregex.c +704 -0
  78. data/ext/vendor/exuberant-ctags/lua.c +133 -0
  79. data/ext/vendor/exuberant-ctags/mac.c +273 -0
  80. data/ext/vendor/exuberant-ctags/magic.diff +21 -0
  81. data/ext/vendor/exuberant-ctags/main.c +584 -0
  82. data/ext/vendor/exuberant-ctags/main.h +32 -0
  83. data/ext/vendor/exuberant-ctags/maintainer.mak +476 -0
  84. data/ext/vendor/exuberant-ctags/make.c +217 -0
  85. data/ext/vendor/exuberant-ctags/matlab.c +44 -0
  86. data/ext/vendor/exuberant-ctags/mk_bc3.mak +46 -0
  87. data/ext/vendor/exuberant-ctags/mk_bc5.mak +49 -0
  88. data/ext/vendor/exuberant-ctags/mk_djg.mak +18 -0
  89. data/ext/vendor/exuberant-ctags/mk_manx.mak +65 -0
  90. data/ext/vendor/exuberant-ctags/mk_mingw.mak +31 -0
  91. data/ext/vendor/exuberant-ctags/mk_mpw.mak +130 -0
  92. data/ext/vendor/exuberant-ctags/mk_mvc.mak +40 -0
  93. data/ext/vendor/exuberant-ctags/mk_os2.mak +104 -0
  94. data/ext/vendor/exuberant-ctags/mk_qdos.mak +100 -0
  95. data/ext/vendor/exuberant-ctags/mk_sas.mak +63 -0
  96. data/ext/vendor/exuberant-ctags/mkinstalldirs +40 -0
  97. data/ext/vendor/exuberant-ctags/ocaml.c +1842 -0
  98. data/ext/vendor/exuberant-ctags/options.c +1842 -0
  99. data/ext/vendor/exuberant-ctags/options.h +155 -0
  100. data/ext/vendor/exuberant-ctags/parse.c +677 -0
  101. data/ext/vendor/exuberant-ctags/parse.h +129 -0
  102. data/ext/vendor/exuberant-ctags/parsers.h +63 -0
  103. data/ext/vendor/exuberant-ctags/pascal.c +267 -0
  104. data/ext/vendor/exuberant-ctags/perl.c +382 -0
  105. data/ext/vendor/exuberant-ctags/php.c +237 -0
  106. data/ext/vendor/exuberant-ctags/python.c +771 -0
  107. data/ext/vendor/exuberant-ctags/qdos.c +106 -0
  108. data/ext/vendor/exuberant-ctags/read.c +569 -0
  109. data/ext/vendor/exuberant-ctags/read.h +116 -0
  110. data/ext/vendor/exuberant-ctags/readtags.c +959 -0
  111. data/ext/vendor/exuberant-ctags/readtags.h +252 -0
  112. data/ext/vendor/exuberant-ctags/rexx.c +39 -0
  113. data/ext/vendor/exuberant-ctags/routines.c +891 -0
  114. data/ext/vendor/exuberant-ctags/routines.h +134 -0
  115. data/ext/vendor/exuberant-ctags/ruby.c +408 -0
  116. data/ext/vendor/exuberant-ctags/scheme.c +111 -0
  117. data/ext/vendor/exuberant-ctags/sh.c +115 -0
  118. data/ext/vendor/exuberant-ctags/slang.c +41 -0
  119. data/ext/vendor/exuberant-ctags/sml.c +212 -0
  120. data/ext/vendor/exuberant-ctags/sort.c +230 -0
  121. data/ext/vendor/exuberant-ctags/sort.h +32 -0
  122. data/ext/vendor/exuberant-ctags/source.mak +122 -0
  123. data/ext/vendor/exuberant-ctags/sql.c +2112 -0
  124. data/ext/vendor/exuberant-ctags/strlist.c +281 -0
  125. data/ext/vendor/exuberant-ctags/strlist.h +54 -0
  126. data/ext/vendor/exuberant-ctags/tcl.c +116 -0
  127. data/ext/vendor/exuberant-ctags/tex.c +524 -0
  128. data/ext/vendor/exuberant-ctags/verilog.c +340 -0
  129. data/ext/vendor/exuberant-ctags/vhdl.c +835 -0
  130. data/ext/vendor/exuberant-ctags/vim.c +636 -0
  131. data/ext/vendor/exuberant-ctags/vstring.c +232 -0
  132. data/ext/vendor/exuberant-ctags/vstring.h +85 -0
  133. data/ext/vendor/exuberant-ctags/yacc.c +40 -0
  134. data/lib/ctags/exuberant.rb +45 -0
  135. data/lib/ctags/version.rb +3 -0
  136. data/lib/ctags.rb +6 -0
  137. data/test/test_ctags.rb +24 -0
  138. metadata +233 -0
@@ -0,0 +1,232 @@
1
+ /*
2
+ * $Id: vstring.c 558 2007-06-15 19:17:02Z elliotth $
3
+ *
4
+ * Copyright (c) 1998-2002, Darren Hiebert
5
+ *
6
+ * This source code is released for free distribution under the terms of the
7
+ * GNU General Public License.
8
+ *
9
+ * This module contains functions supporting resizeable strings.
10
+ */
11
+
12
+ /*
13
+ * INCLUDE FILES
14
+ */
15
+ #include "general.h" /* must always come first */
16
+
17
+ #include <limits.h> /* to define INT_MAX */
18
+ #include <string.h>
19
+ #include <ctype.h>
20
+
21
+ #include "debug.h"
22
+ #include "routines.h"
23
+ #include "vstring.h"
24
+
25
+ /*
26
+ * DATA DEFINITIONS
27
+ */
28
+ static const size_t vStringInitialSize = 32;
29
+
30
+ /*
31
+ * FUNCTION DEFINITIONS
32
+ */
33
+
34
+ static void vStringResize (vString *const string, const size_t newSize)
35
+ {
36
+ char *const newBuffer = xRealloc (string->buffer, newSize, char);
37
+
38
+ string->size = newSize;
39
+ string->buffer = newBuffer;
40
+ }
41
+
42
+ /*
43
+ * External interface
44
+ */
45
+
46
+ extern boolean vStringAutoResize (vString *const string)
47
+ {
48
+ boolean ok = TRUE;
49
+
50
+ if (string->size <= INT_MAX / 2)
51
+ {
52
+ const size_t newSize = string->size * 2;
53
+
54
+ vStringResize (string, newSize);
55
+ }
56
+ return ok;
57
+ }
58
+
59
+ extern void vStringClear (vString *const string)
60
+ {
61
+ string->length = 0;
62
+ string->buffer [0] = '\0';
63
+ DebugStatement ( memset (string->buffer, 0, string->size); )
64
+ }
65
+
66
+ extern void vStringDelete (vString *const string)
67
+ {
68
+ if (string != NULL)
69
+ {
70
+ if (string->buffer != NULL)
71
+ eFree (string->buffer);
72
+ eFree (string);
73
+ }
74
+ }
75
+
76
+ extern vString *vStringNew (void)
77
+ {
78
+ vString *const string = xMalloc (1, vString);
79
+
80
+ string->length = 0;
81
+ string->size = vStringInitialSize;
82
+ string->buffer = xMalloc (string->size, char);
83
+
84
+ vStringClear (string);
85
+
86
+ return string;
87
+ }
88
+
89
+ #ifndef VSTRING_PUTC_MACRO
90
+ extern void vStringPut (vString *const string, const int c)
91
+ {
92
+ if (string->length + 1 == string->size) /* check for buffer overflow */
93
+ vStringAutoResize (string);
94
+
95
+ string->buffer [string->length] = c;
96
+ if (c != '\0')
97
+ string->buffer [++string->length] = '\0';
98
+ }
99
+ #endif
100
+
101
+ extern void vStringCatS (vString *const string, const char *const s)
102
+ {
103
+ #if 1
104
+ const size_t len = strlen (s);
105
+ while (string->length + len + 1 >= string->size)/* check for buffer overflow */
106
+ vStringAutoResize (string);
107
+ strcpy (string->buffer + string->length, s);
108
+ string->length += len;
109
+ #else
110
+ const char *p = s;
111
+ do
112
+ vStringPut (string, *p);
113
+ while (*p++ != '\0');
114
+ #endif
115
+ }
116
+
117
+ extern vString *vStringNewCopy (const vString *const string)
118
+ {
119
+ vString *vs = vStringNew ();
120
+ vStringCatS (vs, string->buffer);
121
+ return vs;
122
+ }
123
+
124
+ extern vString *vStringNewInit (const char *const s)
125
+ {
126
+ vString *vs = vStringNew ();
127
+ vStringCatS (vs, s);
128
+ return vs;
129
+ }
130
+
131
+ extern void vStringNCatS (
132
+ vString *const string, const char *const s, const size_t length)
133
+ {
134
+ const char *p = s;
135
+ size_t remain = length;
136
+
137
+ while (*p != '\0' && remain > 0)
138
+ {
139
+ vStringPut (string, *p);
140
+ --remain;
141
+ ++p;
142
+ }
143
+ vStringTerminate (string);
144
+ }
145
+
146
+ /* Strip trailing newline from string.
147
+ */
148
+ extern void vStringStripNewline (vString *const string)
149
+ {
150
+ const size_t final = string->length - 1;
151
+ if (string->buffer [final] == '\n')
152
+ {
153
+ string->buffer [final] = '\0';
154
+ string->length--;
155
+ }
156
+ }
157
+
158
+ /* Strip leading white space from string.
159
+ */
160
+ extern void vStringStripLeading (vString *const string)
161
+ {
162
+ while (isspace ((int) string->buffer [0]) && string->length > 0)
163
+ {
164
+ size_t i;
165
+ for (i = 1 ; i < string->length ; ++i)
166
+ string->buffer [i - 1] = string->buffer [i];
167
+ --string->length;
168
+ string->buffer [string->length] = '\0';
169
+ }
170
+ }
171
+
172
+ /* Strip trailing white space from string.
173
+ */
174
+ extern void vStringStripTrailing (vString *const string)
175
+ {
176
+ while (isspace ((int) string->buffer [string->length - 1]) &&
177
+ string->length > 0)
178
+ {
179
+ string->length--;
180
+ string->buffer [string->length] = '\0';
181
+ }
182
+ }
183
+
184
+ /* Chop last character from string.
185
+ */
186
+ extern void vStringChop (vString *const string)
187
+ {
188
+ if (string->length > 0)
189
+ {
190
+ --string->length;
191
+ string->buffer [string->length] = '\0';
192
+ }
193
+ }
194
+
195
+ extern void vStringCopyS (vString *const string, const char *const s)
196
+ {
197
+ vStringClear (string);
198
+ vStringCatS (string, s);
199
+ }
200
+
201
+ extern void vStringNCopyS (
202
+ vString *const string, const char *const s, const size_t length)
203
+ {
204
+ vStringClear (string);
205
+ vStringNCatS (string, s, length);
206
+ }
207
+
208
+ extern void vStringCopyToLower (vString *const dest, const vString *const src)
209
+ {
210
+ const size_t length = src->length;
211
+ const char *s = src->buffer;
212
+ char *d;
213
+ size_t i;
214
+
215
+ if (dest->size < src->size)
216
+ vStringResize (dest, src->size);
217
+ d = dest->buffer;
218
+ for (i = 0 ; i < length ; ++i)
219
+ {
220
+ int c = s [i];
221
+
222
+ d [i] = tolower (c);
223
+ }
224
+ d [i] = '\0';
225
+ }
226
+
227
+ extern void vStringSetLength (vString *const string)
228
+ {
229
+ string->length = strlen (string->buffer);
230
+ }
231
+
232
+ /* vi:set tabstop=4 shiftwidth=4: */
@@ -0,0 +1,85 @@
1
+ /*
2
+ * $Id: vstring.h 719 2009-07-07 03:46:59Z dhiebert $
3
+ *
4
+ * Copyright (c) 1998-2002, Darren Hiebert
5
+ *
6
+ * This source code is released for free distribution under the terms of the
7
+ * GNU General Public License.
8
+ *
9
+ * Provides the external interface for resizeable strings.
10
+ */
11
+ #ifndef _VSTRING_H
12
+ #define _VSTRING_H
13
+
14
+ /*
15
+ * INCLUDE FILES
16
+ */
17
+ #include "general.h" /* must always come first */
18
+
19
+ #if defined(HAVE_STDLIB_H)
20
+ # include <stdlib.h> /* to define size_t */
21
+ #endif
22
+
23
+ /*
24
+ * MACROS
25
+ */
26
+ #ifndef DEBUG
27
+ # define VSTRING_PUTC_MACRO 1
28
+ #endif
29
+ #ifdef VSTRING_PUTC_MACRO
30
+ #define vStringPut(s,c) \
31
+ (void)(((s)->length + 1 == (s)->size ? vStringAutoResize (s) : 0), \
32
+ ((s)->buffer [(s)->length] = (c)), \
33
+ ((c) == '\0' ? 0 : ((s)->buffer [++(s)->length] = '\0')))
34
+ #endif
35
+
36
+ #define vStringValue(vs) ((vs)->buffer)
37
+ #define vStringItem(vs,i) ((vs)->buffer[i])
38
+ #define vStringLast(vs) ((vs)->buffer[(vs)->length - 1])
39
+ #define vStringLength(vs) ((vs)->length)
40
+ #define vStringSize(vs) ((vs)->size)
41
+ #define vStringCat(vs,s) vStringCatS((vs), vStringValue((s)))
42
+ #define vStringNCat(vs,s,l) vStringNCatS((vs), vStringValue((s)), (l))
43
+ #define vStringCopy(vs,s) vStringCopyS((vs), vStringValue((s)))
44
+ #define vStringNCopy(vs,s,l) vStringNCopyS((vs), vStringValue((s)), (l))
45
+ #define vStringChar(vs,i) ((vs)->buffer[i])
46
+ #define vStringTerminate(vs) vStringPut(vs, '\0')
47
+ #define vStringLower(vs) toLowerString((vs)->buffer)
48
+ #define vStringUpper(vs) toUpperString((vs)->buffer)
49
+
50
+ /*
51
+ * DATA DECLARATIONS
52
+ */
53
+
54
+ typedef struct sVString {
55
+ size_t length; /* size of buffer used */
56
+ size_t size; /* allocated size of buffer */
57
+ char *buffer; /* location of buffer */
58
+ } vString;
59
+
60
+ /*
61
+ * FUNCTION PROTOTYPES
62
+ */
63
+ extern boolean vStringAutoResize (vString *const string);
64
+ extern void vStringClear (vString *const string);
65
+ extern vString *vStringNew (void);
66
+ extern void vStringDelete (vString *const string);
67
+ #ifndef VSTRING_PUTC_MACRO
68
+ extern void vStringPut (vString *const string, const int c);
69
+ #endif
70
+ extern void vStringStripNewline (vString *const string);
71
+ extern void vStringStripLeading (vString *const string);
72
+ extern void vStringChop (vString *const string);
73
+ extern void vStringStripTrailing (vString *const string);
74
+ extern void vStringCatS (vString *const string, const char *const s);
75
+ extern void vStringNCatS (vString *const string, const char *const s, const size_t length);
76
+ extern vString *vStringNewCopy (const vString *const string);
77
+ extern vString *vStringNewInit (const char *const s);
78
+ extern void vStringCopyS (vString *const string, const char *const s);
79
+ extern void vStringNCopyS (vString *const string, const char *const s, const size_t length);
80
+ extern void vStringCopyToLower (vString *const dest, const vString *const src);
81
+ extern void vStringSetLength (vString *const string);
82
+
83
+ #endif /* _VSTRING_H */
84
+
85
+ /* vi:set tabstop=4 shiftwidth=4: */
@@ -0,0 +1,40 @@
1
+ /*
2
+ * $Id: yacc.c 443 2006-05-30 04:37:13Z darren $
3
+ *
4
+ * Copyright (c) 2001-2002, Nick Hibma <n_hibma@van-laarhoven.org>
5
+ *
6
+ * This source code is released for free distribution under the terms of the
7
+ * GNU General Public License.
8
+ *
9
+ * This module contains functions for generating tags for YACC language files.
10
+ */
11
+
12
+ /*
13
+ * INCLUDE FILES
14
+ */
15
+ #include "general.h" /* must always come first */
16
+
17
+ #include <string.h>
18
+ #include "parse.h"
19
+
20
+ /*
21
+ * FUNCTION DEFINITIONS
22
+ */
23
+
24
+ static void installYaccRegex (const langType language)
25
+ {
26
+ addTagRegex (language,
27
+ "^([A-Za-z][A-Za-z_0-9]+)[ \t]*:", "\\1", "l,label,labels", NULL);
28
+ }
29
+
30
+ extern parserDefinition* YaccParser ()
31
+ {
32
+ static const char *const extensions [] = { "y", NULL };
33
+ parserDefinition* const def = parserNew ("YACC");
34
+ def->extensions = extensions;
35
+ def->initialize = installYaccRegex;
36
+ def->regex = TRUE;
37
+ return def;
38
+ }
39
+
40
+ /* vi:set tabstop=4 shiftwidth=4: */
@@ -0,0 +1,45 @@
1
+ require 'posix/spawn'
2
+
3
+ module Ctags
4
+ class Error < StandardError
5
+ end
6
+
7
+ module Exuberant
8
+ include POSIX::Spawn
9
+
10
+ BIN = File.expand_path("../../../ext/dst/bin/ctags", __FILE__)
11
+
12
+ def tags_for_code(file, code)
13
+ tags_for_file(file, code)
14
+ end
15
+
16
+ def tags_for_file(file, code=nil)
17
+ if code
18
+ child = Child.new(BIN, '-f', '-', '--extra=+f', '--excmd=number', "--stdin-filename=#{file}", :input => code)
19
+ else
20
+ child = Child.new(BIN, '-f', '-', '--extra=+f', '--excmd=number', file)
21
+ end
22
+
23
+ if !child.status.success?
24
+ raise Error, child.err
25
+ end
26
+
27
+ tags = {}
28
+
29
+ child.out.each_line.map do |line|
30
+ name, file, line, type, *rest = line.split("\t")
31
+ tags[name] = {
32
+ :file => file,
33
+ :line => line.sub(';"','').to_i,
34
+ :type => type.strip
35
+ }
36
+ rest.each do |part|
37
+ key, value = part.strip.split(':', 2)
38
+ tags[name][key.to_sym] = value
39
+ end
40
+ end
41
+
42
+ tags
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,3 @@
1
+ module Ctags
2
+ VERSION = '1.0.0'
3
+ end
data/lib/ctags.rb ADDED
@@ -0,0 +1,6 @@
1
+ require 'ctags/version'
2
+ require 'ctags/exuberant'
3
+
4
+ module Ctags
5
+ extend Ctags::Exuberant
6
+ end
@@ -0,0 +1,24 @@
1
+ #coding: utf-8
2
+
3
+ require 'test/unit'
4
+ require File.join(File.dirname(__FILE__), '..', '/lib/ctags.rb')
5
+
6
+ class CtagsTest < Test::Unit::TestCase
7
+ def test_tags_for_file
8
+ tags = Ctags.tags_for_file(__FILE__)
9
+ tag = tags[__method__.to_s]
10
+
11
+ assert_equal __FILE__, tag[:file]
12
+ assert_equal __LINE__-5, tag[:line]
13
+ assert_equal 'CtagsTest', tag[:class]
14
+ end
15
+
16
+ def test_tags_for_code
17
+ tags = Ctags.tags_for_code('file.rb', File.read(__FILE__))
18
+ tag = tags[__method__.to_s]
19
+
20
+ assert_equal 'file.rb', tag[:file]
21
+ assert_equal __LINE__-5, tag[:line]
22
+ assert_equal 'CtagsTest', tag[:class]
23
+ end
24
+ end
metadata ADDED
@@ -0,0 +1,233 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ctags.rb
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease:
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ version: 1.0.0
11
+ platform: ruby
12
+ authors:
13
+ - Aman Gupta
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-12-19 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: posix-spawn
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ~>
27
+ - !ruby/object:Gem::Version
28
+ hash: 31
29
+ segments:
30
+ - 0
31
+ - 3
32
+ - 6
33
+ version: 0.3.6
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake-compiler
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ hash: 15
45
+ segments:
46
+ - 0
47
+ - 7
48
+ - 6
49
+ version: 0.7.6
50
+ type: :development
51
+ version_requirements: *id002
52
+ description: ctags.rb exposes exuberant-ctags to Ruby
53
+ email:
54
+ - aman@tmm1.net
55
+ executables: []
56
+
57
+ extensions:
58
+ - ext/extconf.rb
59
+ extra_rdoc_files: []
60
+
61
+ files:
62
+ - Gemfile
63
+ - Rakefile
64
+ - ctags.rb.gemspec
65
+ - ext/.gitignore
66
+ - ext/extconf.rb
67
+ - ext/vendor/exuberant-ctags/.gitignore
68
+ - ext/vendor/exuberant-ctags/.indent.pro
69
+ - ext/vendor/exuberant-ctags/COPYING
70
+ - ext/vendor/exuberant-ctags/EXTENDING.html
71
+ - ext/vendor/exuberant-ctags/FAQ
72
+ - ext/vendor/exuberant-ctags/INSTALL
73
+ - ext/vendor/exuberant-ctags/INSTALL.oth
74
+ - ext/vendor/exuberant-ctags/MAINTAINERS
75
+ - ext/vendor/exuberant-ctags/Makefile.in
76
+ - ext/vendor/exuberant-ctags/NEWS
77
+ - ext/vendor/exuberant-ctags/README
78
+ - ext/vendor/exuberant-ctags/ant.c
79
+ - ext/vendor/exuberant-ctags/argproc.c
80
+ - ext/vendor/exuberant-ctags/args.c
81
+ - ext/vendor/exuberant-ctags/args.h
82
+ - ext/vendor/exuberant-ctags/asm.c
83
+ - ext/vendor/exuberant-ctags/asp.c
84
+ - ext/vendor/exuberant-ctags/awk.c
85
+ - ext/vendor/exuberant-ctags/basic.c
86
+ - ext/vendor/exuberant-ctags/beta.c
87
+ - ext/vendor/exuberant-ctags/c.c
88
+ - ext/vendor/exuberant-ctags/cobol.c
89
+ - ext/vendor/exuberant-ctags/config.h.in
90
+ - ext/vendor/exuberant-ctags/configure
91
+ - ext/vendor/exuberant-ctags/configure.ac
92
+ - ext/vendor/exuberant-ctags/ctags.1
93
+ - ext/vendor/exuberant-ctags/ctags.h
94
+ - ext/vendor/exuberant-ctags/ctags.html
95
+ - ext/vendor/exuberant-ctags/ctags.spec
96
+ - ext/vendor/exuberant-ctags/debug.c
97
+ - ext/vendor/exuberant-ctags/debug.h
98
+ - ext/vendor/exuberant-ctags/descrip.mms
99
+ - ext/vendor/exuberant-ctags/dosbatch.c
100
+ - ext/vendor/exuberant-ctags/e_amiga.h
101
+ - ext/vendor/exuberant-ctags/e_djgpp.h
102
+ - ext/vendor/exuberant-ctags/e_mac.h
103
+ - ext/vendor/exuberant-ctags/e_msoft.h
104
+ - ext/vendor/exuberant-ctags/e_os2.h
105
+ - ext/vendor/exuberant-ctags/e_qdos.h
106
+ - ext/vendor/exuberant-ctags/e_riscos.h
107
+ - ext/vendor/exuberant-ctags/e_vms.h
108
+ - ext/vendor/exuberant-ctags/eiffel.c
109
+ - ext/vendor/exuberant-ctags/entry.c
110
+ - ext/vendor/exuberant-ctags/entry.h
111
+ - ext/vendor/exuberant-ctags/erlang.c
112
+ - ext/vendor/exuberant-ctags/flex.c
113
+ - ext/vendor/exuberant-ctags/fortran.c
114
+ - ext/vendor/exuberant-ctags/general.h
115
+ - ext/vendor/exuberant-ctags/get.c
116
+ - ext/vendor/exuberant-ctags/get.h
117
+ - ext/vendor/exuberant-ctags/gnu_regex/.svn/all-wcprops
118
+ - ext/vendor/exuberant-ctags/gnu_regex/.svn/entries
119
+ - ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/README.txt.svn-base
120
+ - ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regcomp.c.svn-base
121
+ - ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex.c.svn-base
122
+ - ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex.h.svn-base
123
+ - ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex_internal.c.svn-base
124
+ - ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex_internal.h.svn-base
125
+ - ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regexec.c.svn-base
126
+ - ext/vendor/exuberant-ctags/gnu_regex/README.txt
127
+ - ext/vendor/exuberant-ctags/gnu_regex/regcomp.c
128
+ - ext/vendor/exuberant-ctags/gnu_regex/regex.c
129
+ - ext/vendor/exuberant-ctags/gnu_regex/regex.h
130
+ - ext/vendor/exuberant-ctags/gnu_regex/regex_internal.c
131
+ - ext/vendor/exuberant-ctags/gnu_regex/regex_internal.h
132
+ - ext/vendor/exuberant-ctags/gnu_regex/regexec.c
133
+ - ext/vendor/exuberant-ctags/html.c
134
+ - ext/vendor/exuberant-ctags/jscript.c
135
+ - ext/vendor/exuberant-ctags/keyword.c
136
+ - ext/vendor/exuberant-ctags/keyword.h
137
+ - ext/vendor/exuberant-ctags/lisp.c
138
+ - ext/vendor/exuberant-ctags/lregex.c
139
+ - ext/vendor/exuberant-ctags/lua.c
140
+ - ext/vendor/exuberant-ctags/mac.c
141
+ - ext/vendor/exuberant-ctags/magic.diff
142
+ - ext/vendor/exuberant-ctags/main.c
143
+ - ext/vendor/exuberant-ctags/main.h
144
+ - ext/vendor/exuberant-ctags/maintainer.mak
145
+ - ext/vendor/exuberant-ctags/make.c
146
+ - ext/vendor/exuberant-ctags/matlab.c
147
+ - ext/vendor/exuberant-ctags/mk_bc3.mak
148
+ - ext/vendor/exuberant-ctags/mk_bc5.mak
149
+ - ext/vendor/exuberant-ctags/mk_djg.mak
150
+ - ext/vendor/exuberant-ctags/mk_manx.mak
151
+ - ext/vendor/exuberant-ctags/mk_mingw.mak
152
+ - ext/vendor/exuberant-ctags/mk_mpw.mak
153
+ - ext/vendor/exuberant-ctags/mk_mvc.mak
154
+ - ext/vendor/exuberant-ctags/mk_os2.mak
155
+ - ext/vendor/exuberant-ctags/mk_qdos.mak
156
+ - ext/vendor/exuberant-ctags/mk_sas.mak
157
+ - ext/vendor/exuberant-ctags/mkinstalldirs
158
+ - ext/vendor/exuberant-ctags/ocaml.c
159
+ - ext/vendor/exuberant-ctags/options.c
160
+ - ext/vendor/exuberant-ctags/options.h
161
+ - ext/vendor/exuberant-ctags/parse.c
162
+ - ext/vendor/exuberant-ctags/parse.h
163
+ - ext/vendor/exuberant-ctags/parsers.h
164
+ - ext/vendor/exuberant-ctags/pascal.c
165
+ - ext/vendor/exuberant-ctags/perl.c
166
+ - ext/vendor/exuberant-ctags/php.c
167
+ - ext/vendor/exuberant-ctags/python.c
168
+ - ext/vendor/exuberant-ctags/qdos.c
169
+ - ext/vendor/exuberant-ctags/read.c
170
+ - ext/vendor/exuberant-ctags/read.h
171
+ - ext/vendor/exuberant-ctags/readtags.c
172
+ - ext/vendor/exuberant-ctags/readtags.h
173
+ - ext/vendor/exuberant-ctags/rexx.c
174
+ - ext/vendor/exuberant-ctags/routines.c
175
+ - ext/vendor/exuberant-ctags/routines.h
176
+ - ext/vendor/exuberant-ctags/ruby.c
177
+ - ext/vendor/exuberant-ctags/scheme.c
178
+ - ext/vendor/exuberant-ctags/sh.c
179
+ - ext/vendor/exuberant-ctags/slang.c
180
+ - ext/vendor/exuberant-ctags/sml.c
181
+ - ext/vendor/exuberant-ctags/sort.c
182
+ - ext/vendor/exuberant-ctags/sort.h
183
+ - ext/vendor/exuberant-ctags/source.mak
184
+ - ext/vendor/exuberant-ctags/sql.c
185
+ - ext/vendor/exuberant-ctags/strlist.c
186
+ - ext/vendor/exuberant-ctags/strlist.h
187
+ - ext/vendor/exuberant-ctags/tcl.c
188
+ - ext/vendor/exuberant-ctags/tex.c
189
+ - ext/vendor/exuberant-ctags/verilog.c
190
+ - ext/vendor/exuberant-ctags/vhdl.c
191
+ - ext/vendor/exuberant-ctags/vim.c
192
+ - ext/vendor/exuberant-ctags/vstring.c
193
+ - ext/vendor/exuberant-ctags/vstring.h
194
+ - ext/vendor/exuberant-ctags/yacc.c
195
+ - lib/ctags.rb
196
+ - lib/ctags/exuberant.rb
197
+ - lib/ctags/version.rb
198
+ - test/test_ctags.rb
199
+ homepage: http://github.com/tmm1/ctags.rb
200
+ licenses: []
201
+
202
+ post_install_message:
203
+ rdoc_options: []
204
+
205
+ require_paths:
206
+ - lib
207
+ required_ruby_version: !ruby/object:Gem::Requirement
208
+ none: false
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ hash: 3
213
+ segments:
214
+ - 0
215
+ version: "0"
216
+ required_rubygems_version: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ hash: 3
222
+ segments:
223
+ - 0
224
+ version: "0"
225
+ requirements: []
226
+
227
+ rubyforge_project:
228
+ rubygems_version: 1.8.24
229
+ signing_key:
230
+ specification_version: 3
231
+ summary: ctags wrapper for ruby
232
+ test_files: []
233
+