ripper-tags 0.1.2 → 0.1.3
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.
- 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
|