verveine-ruby 0.0.1

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.
@@ -0,0 +1,16 @@
1
+ This is a quick hack to get statistics on method visibility in Ruby code, using [Yard][].
2
+ It generates a very minimal [FAMIX][] file for loading into [Moose][].
3
+
4
+ ## Installation and usage
5
+
6
+ Get the code, then
7
+
8
+ gem install yard
9
+ ./verveine-ruby $RUBY_CODE_DIRECTORY > file.famix
10
+
11
+ It was hastily hacked with Yard 0.8.4 on Ruby 1.9.3.
12
+
13
+ [yard]: http://yardoc.org/
14
+ [famix]: http://www.moosetechnology.org/docs/famix
15
+ [moose]: http://www.moosetechnology.org
16
+
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'yard'
4
+
5
+ root = ARGV.first || '.'
6
+ exit 1 unless File.directory? root
7
+
8
+ logger = YARD::Logger.instance STDERR
9
+
10
+ famix_id = 0
11
+ files = 0
12
+ puts '('
13
+ Dir.glob "#{root}/**/*.rb" do |f|
14
+ files = files + 1
15
+ logger.puts "parsing #{f}..."
16
+ YARD.parse f
17
+
18
+ YARD::Registry.all(:method).each do |m|
19
+ famix_id = famix_id+1
20
+ puts "(FAMIX.Method (id: #{famix_id}) (name '#{m.name}') (modifiers '#{m.visibility}'))"
21
+ end
22
+ YARD::Registry.clear
23
+ end
24
+ puts ')'
25
+
26
+ logger.puts "Phew, done! #{famix_id} methods in #{files} files"
27
+
@@ -0,0 +1,20 @@
1
+ # encoding: utf-8
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = "verveine-ruby"
5
+ s.version = "0.0.1"
6
+ s.date = "2013-02-05"
7
+ s.homepage = "https://github.com/cdlm/verveine-ruby"
8
+ s.summary = "FAMIX export of method visibility statistics in Ruby code"
9
+
10
+ s.authors = [ "Damien Pollet", "Damien Cassou" ]
11
+ s.email = "damien.pollet@inria.fr"
12
+
13
+ s.files = Dir['bin/**/*'] + [
14
+ 'verveine-ruby.gemspec',
15
+ 'README.markdown'
16
+ ]
17
+ s.executables = [ 'verveine-ruby' ]
18
+
19
+ s.add_runtime_dependency('yard')
20
+ end
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: verveine-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Damien Pollet
9
+ - Damien Cassou
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2013-02-05 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: yard
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ description:
32
+ email: damien.pollet@inria.fr
33
+ executables:
34
+ - verveine-ruby
35
+ extensions: []
36
+ extra_rdoc_files: []
37
+ files:
38
+ - bin/verveine-ruby
39
+ - verveine-ruby.gemspec
40
+ - README.markdown
41
+ homepage: https://github.com/cdlm/verveine-ruby
42
+ licenses: []
43
+ post_install_message:
44
+ rdoc_options: []
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ none: false
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ! '>='
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ requirements: []
60
+ rubyforge_project:
61
+ rubygems_version: 1.8.23
62
+ signing_key:
63
+ specification_version: 3
64
+ summary: FAMIX export of method visibility statistics in Ruby code
65
+ test_files: []
66
+ has_rdoc: