ripper-tags 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/.gitignore +2 -0
- data/lib/ripper-tags/parser.rb +17 -12
- data/ripper-tags.gemspec +1 -1
- data/test/test_data_reader.rb +2 -2
- data/test/test_ripper_tags.rb +44 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Yzc2MzlhZjllZTM4NTk1OWMzNmU3ZjkyNDIxNjVmYTk1NmJiOGJhZA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZDlmM2U4YmUyNzZkMGY3OTkxNTRmNWRjMGQxZTk1YjQzN2NiZGZlZA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
Zjg2MDJmOTg4Y2UwYTA4MzI0ZDUwNWEzYWY3ZGZkYmE5ZTQ5YTRkN2FkMWZm
|
10
|
+
MmQ1ODdmNmZhNWYwYzA1MzM4ZWY1OWNlMTU2M2VmNjI3MWNiYWVlZGJhY2M3
|
11
|
+
MTEzNGQ3NDQ1ZmUyOGVlNjRlM2I0Njc4YzdjN2M3ZjNiOWQ3YjU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NGY3N2YxMzU0NDM2MmIyNjRiZGU4MmUwNThmYzE2YjVjMWFlMjdmMzMwMTkx
|
14
|
+
NzkxZWViZWZjMzRhNmRjZDYxYjQ2ZWNhNGI2MWI1ZjNhZTlmODBjN2VmYjcy
|
15
|
+
ZjNkYjU0MjE4MTlhZmI5Nzc1ZDBkZTcwNDYxYTA4NmFhZDI5NTc=
|
data/.gitignore
CHANGED
data/lib/ripper-tags/parser.rb
CHANGED
@@ -144,22 +144,26 @@ class Parser < Ripper
|
|
144
144
|
gen
|
145
145
|
end
|
146
146
|
when "has_many", "has_and_belongs_to_many"
|
147
|
-
a = args[1][0]
|
147
|
+
a = args[1][0].to_s
|
148
148
|
kind = name.to_sym
|
149
149
|
gen = []
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
150
|
+
unless a.is_a?(Enumerable)
|
151
|
+
gen << [:rails_def, kind, a, line]
|
152
|
+
gen << [:rails_def, kind, "#{a}=", line]
|
153
|
+
if a.respond_to?(:chomp) && (sing = a.chomp('s')) != a
|
154
|
+
# poor man's singularize
|
155
|
+
gen << [:rails_def, kind, "#{sing}_ids", line]
|
156
|
+
gen << [:rails_def, kind, "#{sing}_ids=", line]
|
157
|
+
end
|
156
158
|
end
|
157
159
|
gen
|
158
160
|
when "belongs_to", "has_one"
|
159
161
|
a = args[1][0]
|
160
|
-
|
161
|
-
|
162
|
-
|
162
|
+
unless a.is_a?(Enumerable)
|
163
|
+
kind = name.to_sym
|
164
|
+
%W[ #{a} #{a}= build_#{a} create_#{a} create_#{a}! ].inject([]) do |gen, ident|
|
165
|
+
gen << [:rails_def, kind, ident, line]
|
166
|
+
end
|
163
167
|
end
|
164
168
|
end
|
165
169
|
else
|
@@ -244,7 +248,8 @@ end
|
|
244
248
|
sexp.each{ |child| process(child) }
|
245
249
|
when Symbol
|
246
250
|
name, *args = sexp
|
247
|
-
|
251
|
+
handler = "on_#{name}"
|
252
|
+
__send__(handler, *args) if respond_to?(handler)
|
248
253
|
when String, nil
|
249
254
|
# nothing
|
250
255
|
end
|
@@ -283,7 +288,7 @@ end
|
|
283
288
|
on_module_or_class(:module, name, nil, body)
|
284
289
|
end
|
285
290
|
|
286
|
-
def on_class(name, superclass, body)
|
291
|
+
def on_class(name, superclass, body = nil)
|
287
292
|
on_module_or_class(:class, name, superclass, body)
|
288
293
|
end
|
289
294
|
|
data/ripper-tags.gemspec
CHANGED
data/test/test_data_reader.rb
CHANGED
@@ -41,7 +41,7 @@ class DataReaderTest < Test::Unit::TestCase
|
|
41
41
|
very/deep/script.rb
|
42
42
|
very/inter.rb
|
43
43
|
]
|
44
|
-
assert_equal expected, files
|
44
|
+
assert_equal Set.new(expected), Set.new(files)
|
45
45
|
end
|
46
46
|
|
47
47
|
def test_file_finder_no_exclude
|
@@ -61,7 +61,7 @@ class DataReaderTest < Test::Unit::TestCase
|
|
61
61
|
encoding.rb
|
62
62
|
very/inter.rb
|
63
63
|
]
|
64
|
-
assert_equal expected, files
|
64
|
+
assert_equal Set.new(expected), Set.new(files)
|
65
65
|
end
|
66
66
|
|
67
67
|
def with_default_encoding(name)
|
data/test/test_ripper_tags.rb
CHANGED
@@ -295,4 +295,48 @@ class TagRipperTest < Test::Unit::TestCase
|
|
295
295
|
assert_equal '2: scope C.red', inspect(tags[1])
|
296
296
|
assert_equal '3: scope C.red', inspect(tags[2])
|
297
297
|
end
|
298
|
+
|
299
|
+
def test_extract_from_erb
|
300
|
+
tags = extract(<<-EOC)
|
301
|
+
class NavigationTest < ActionDispatch::IntegrationTest
|
302
|
+
<% unless options[:skip_active_record] -%>
|
303
|
+
fixtures :all
|
304
|
+
<% end -%>
|
305
|
+
|
306
|
+
# test "the truth" do
|
307
|
+
# assert true
|
308
|
+
# end
|
309
|
+
end
|
310
|
+
EOC
|
311
|
+
|
312
|
+
assert_equal 1, tags.size
|
313
|
+
assert_equal 'NavigationTest', tags[0][:name]
|
314
|
+
end
|
315
|
+
|
316
|
+
def test_extract_with_keyword_variables
|
317
|
+
tags = extract(<<-EOC)
|
318
|
+
class Foo
|
319
|
+
@public
|
320
|
+
@protected
|
321
|
+
@private
|
322
|
+
end
|
323
|
+
EOC
|
324
|
+
|
325
|
+
assert_equal 1, tags.size
|
326
|
+
assert_equal 'Foo', tags[0][:name]
|
327
|
+
end
|
328
|
+
|
329
|
+
def test_extract_associations_with_class_name
|
330
|
+
tags = extract(<<-EOC)
|
331
|
+
class Foo
|
332
|
+
belongs_to Bar
|
333
|
+
has_one Bar
|
334
|
+
has_and_belongs_to_many Bar
|
335
|
+
has_many Bar
|
336
|
+
end
|
337
|
+
EOC
|
338
|
+
|
339
|
+
assert_equal 1, tags.size
|
340
|
+
assert_equal 'Foo', tags[0][:name]
|
341
|
+
end
|
298
342
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ripper-tags
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aman Gupta
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11
|
11
|
+
date: 2013-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yajl-ruby
|