verveine-ruby 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: