ctags.rb 1.0.0

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.
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
+