okuribito_rails 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.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +68 -0
- data/Rakefile +30 -0
- data/app/assets/javascripts/okuribito_rails/application.js +13 -0
- data/app/assets/stylesheets/okuribito_rails/application.css +13 -0
- data/app/assets/stylesheets/okuribito_rails/method_call_info.css +19 -0
- data/app/controllers/okuribito_rails/application_controller.rb +4 -0
- data/app/controllers/okuribito_rails/method_call_logs_controller.rb +9 -0
- data/app/controllers/okuribito_rails/method_call_situations_controller.rb +9 -0
- data/app/helpers/okuribito_rails/application_helper.rb +4 -0
- data/app/models/okuribito_rails/method_call_log.rb +5 -0
- data/app/models/okuribito_rails/method_call_situation.rb +5 -0
- data/app/views/layouts/okuribito_rails/application.html.erb +14 -0
- data/app/views/okuribito_rails/method_call_logs/index.html.erb +24 -0
- data/app/views/okuribito_rails/method_call_situations/index.html.erb +30 -0
- data/config/routes.rb +4 -0
- data/db/migrate/20161027145839_create_okuribito_rails_method_call_situations.rb +14 -0
- data/db/migrate/20161027150000_create_okuribito_rails_method_call_logs.rb +15 -0
- data/lib/generators/okuribito_rails/install_generator.rb +44 -0
- data/lib/generators/okuribito_rails/templates/initializer.erb +7 -0
- data/lib/okuribito_rails/config.rb +8 -0
- data/lib/okuribito_rails/engine.rb +15 -0
- data/lib/okuribito_rails/observe_method.rb +21 -0
- data/lib/okuribito_rails/railtie.rb +19 -0
- data/lib/okuribito_rails/regist_method.rb +44 -0
- data/lib/okuribito_rails/version.rb +3 -0
- data/lib/okuribito_rails.rb +8 -0
- data/lib/tasks/okuribito_rails_tasks.rake +4 -0
- metadata +152 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 71c24bd6b8d02a6f2bf2e3aca3153d4e01cbeb4e
|
4
|
+
data.tar.gz: 81c7826c60d89e14c8b6511396ea57d82603d27d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 084359cca42f7a890cd3025bc7ebace2c7bc9c247df42abc308b971429c53c75624adf1453877b182e8e4b7b4034fc463343fd36447ba7a4a0fb635024327eff
|
7
|
+
data.tar.gz: 2a68eefce673d5c80ae800ff997261d38613464315ca2ceec402df15c644f36e744877a2ad4bf710f2ca8159d613bad140663b853d78b4dcb8db43fdcd1eb0c0
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2016 YOURNAME
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
# OkuribitoRails
|
2
|
+
|
3
|
+
OkuribitoRails is an engine for Rails that aims to be the managing method call status.
|
4
|
+
|
5
|
+
You should create a configuration file. (Describe the method name you want to monitor)
|
6
|
+
|
7
|
+
When OkuribitoRails detected a method call during application execution, it registers the method call information in the DB.
|
8
|
+
|
9
|
+
In other words, you can identify methods that have not been called from anywhere in production!
|
10
|
+
|
11
|
+

|
12
|
+
|
13
|
+
# Installation
|
14
|
+
|
15
|
+
Installing OkuribitoRails is easy.
|
16
|
+
|
17
|
+
## Specify Gem dependencies
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
gem 'okuribito_rails'
|
21
|
+
```
|
22
|
+
|
23
|
+
## Run the installer
|
24
|
+
|
25
|
+
Run the installer.
|
26
|
+
|
27
|
+
```shell
|
28
|
+
rails g okuribito_rails:install
|
29
|
+
```
|
30
|
+
|
31
|
+
The installer makes the following settings.
|
32
|
+
|
33
|
+
- Create migration files (Used by OkuribitoRails)
|
34
|
+
- Updating routing (Mount engine)
|
35
|
+
- Create default configuration
|
36
|
+
|
37
|
+
## Run db:migrate
|
38
|
+
|
39
|
+
```shell
|
40
|
+
rake db:migrate
|
41
|
+
```
|
42
|
+
|
43
|
+
## Definition of monitoring method
|
44
|
+
|
45
|
+
Create a file that defines the method to be monitored.
|
46
|
+
|
47
|
+
```ruby
|
48
|
+
User:
|
49
|
+
- '#feed'
|
50
|
+
- '#profile'
|
51
|
+
Micropost:
|
52
|
+
- '.from_users_followed_by'
|
53
|
+
```
|
54
|
+
|
55
|
+
And put it in the path defined in `config / initializers / okuribito_rails.rb`.
|
56
|
+
|
57
|
+
(By Default `config/okuribito.yml`)
|
58
|
+
|
59
|
+
## Features
|
60
|
+
|
61
|
+
Here's a comprehensive list of the features currently in OkuribitoRails:
|
62
|
+
|
63
|
+
* Monitoring
|
64
|
+
* During application execution, monitor specified method calls
|
65
|
+
* After detecting the method call, register the call history in the DB
|
66
|
+
* Web UI
|
67
|
+
* Viewing monitored methods
|
68
|
+
* Viewing call history of monitored methods
|
data/Rakefile
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'rdoc/task'
|
8
|
+
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
+
rdoc.rdoc_dir = 'rdoc'
|
11
|
+
rdoc.title = 'OkuribitoRails'
|
12
|
+
rdoc.options << '--line-numbers'
|
13
|
+
rdoc.rdoc_files.include('README.rdoc')
|
14
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
Bundler::GemHelper.install_tasks
|
19
|
+
|
20
|
+
require 'rake/testtask'
|
21
|
+
|
22
|
+
Rake::TestTask.new(:test) do |t|
|
23
|
+
t.libs << 'lib'
|
24
|
+
t.libs << 'spec'
|
25
|
+
t.pattern = 'spec/**/*_spec.rb'
|
26
|
+
t.verbose = false
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
task default: :test
|
@@ -0,0 +1,13 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// compiled file.
|
9
|
+
//
|
10
|
+
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
|
11
|
+
// about supported directives.
|
12
|
+
//
|
13
|
+
//= require_tree .
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
+
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the top of the
|
9
|
+
* compiled file, but it's generally better to create a new file per style scope.
|
10
|
+
*
|
11
|
+
*= require_self
|
12
|
+
*= require_tree .
|
13
|
+
*/
|
@@ -0,0 +1,19 @@
|
|
1
|
+
.method_call_info{
|
2
|
+
width: 100%;
|
3
|
+
border-collapse: collapse;
|
4
|
+
margin-bottom: 10px;
|
5
|
+
}
|
6
|
+
.method_call_info th{
|
7
|
+
padding: 6px;
|
8
|
+
text-align: left;
|
9
|
+
vertical-align: top;
|
10
|
+
color: #333;
|
11
|
+
background-color: #eee;
|
12
|
+
border: 1px solid #b9b9b9;
|
13
|
+
}
|
14
|
+
.method_call_info td{
|
15
|
+
padding: 6px;
|
16
|
+
background-color: #fff;
|
17
|
+
border: 1px solid #b9b9b9;
|
18
|
+
font-size: 0.9em
|
19
|
+
}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require_dependency "okuribito_rails/application_controller"
|
2
|
+
|
3
|
+
module OkuribitoRails
|
4
|
+
class MethodCallSituationsController < ApplicationController
|
5
|
+
def index
|
6
|
+
@method_call_situations = MethodCallSituation.page(params[Kaminari.config.param_name]).per(20)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>OkuribitoRails</title>
|
5
|
+
<%= stylesheet_link_tag "okuribito_rails/application", media: "all" %>
|
6
|
+
<%= javascript_include_tag "okuribito_rails/application" %>
|
7
|
+
<%= csrf_meta_tags %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<%= yield %>
|
12
|
+
|
13
|
+
</body>
|
14
|
+
</html>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<table class="method_call_info">
|
2
|
+
<tbody>
|
3
|
+
<tr>
|
4
|
+
<th>Method name</th>
|
5
|
+
<th>Backtrace</th>
|
6
|
+
<th>Recording date</th>
|
7
|
+
</tr>
|
8
|
+
<% @method_call_logs.each do |method_call_log| %>
|
9
|
+
<tr>
|
10
|
+
<td>
|
11
|
+
<%= method_call_log.class_name %><%= method_call_log.method_symbol %><%= method_call_log.method_name %>
|
12
|
+
</td>
|
13
|
+
<td>
|
14
|
+
<%= method_call_log.back_trace %>
|
15
|
+
</td>
|
16
|
+
<td>
|
17
|
+
<%= method_call_log.created_at %>
|
18
|
+
</td>
|
19
|
+
</tr>
|
20
|
+
<% end %>
|
21
|
+
</tbody>
|
22
|
+
</table>
|
23
|
+
|
24
|
+
<%= paginate @method_call_logs %>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<table class="method_call_info">
|
2
|
+
<tbody>
|
3
|
+
<tr>
|
4
|
+
<th>Method name</th>
|
5
|
+
<th>Number of calls</th>
|
6
|
+
<th>Monitoring start date</th>
|
7
|
+
<th>Last call date</th>
|
8
|
+
</tr>
|
9
|
+
<% @method_call_situations.each do |method_call_situation| %>
|
10
|
+
<tr>
|
11
|
+
<td>
|
12
|
+
<%= method_call_situation.class_name %><%= method_call_situation.method_symbol %><%= method_call_situation.method_name %>
|
13
|
+
</td>
|
14
|
+
<td>
|
15
|
+
<%= method_call_situation.called_num %>
|
16
|
+
</td>
|
17
|
+
<td>
|
18
|
+
<%= method_call_situation.created_at %>
|
19
|
+
</td>
|
20
|
+
<td>
|
21
|
+
<%= method_call_situation.called_num > 0 ? method_call_situation.updated_at : "Not called" %>
|
22
|
+
</td>
|
23
|
+
</tr>
|
24
|
+
<% end %>
|
25
|
+
</tbody>
|
26
|
+
</table>
|
27
|
+
|
28
|
+
<%= paginate @method_call_situations %>
|
29
|
+
|
30
|
+
|
data/config/routes.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
class CreateOkuribitoRailsMethodCallSituations < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :okuribito_rails_method_call_situations do |t|
|
4
|
+
t.string :class_name, null: false
|
5
|
+
t.string :method_symbol, null: false
|
6
|
+
t.string :method_name, null: false
|
7
|
+
t.integer :called_num, null: false, default: 0
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
add_index :okuribito_rails_method_call_situations, :class_name
|
12
|
+
add_index :okuribito_rails_method_call_situations, :method_name
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class CreateOkuribitoRailsMethodCallLogs < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :okuribito_rails_method_call_logs do |t|
|
4
|
+
t.integer :method_call_situation_id, null: false
|
5
|
+
t.string :class_name, null: false
|
6
|
+
t.string :method_symbol, null: false
|
7
|
+
t.string :method_name, null: false
|
8
|
+
t.text :back_trace
|
9
|
+
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
add_index :okuribito_rails_method_call_logs, :class_name
|
13
|
+
add_index :okuribito_rails_method_call_logs, :method_name
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module OkuribitoRails
|
4
|
+
class InstallGenerator < Rails::Generators::Base
|
5
|
+
class_option "with-migrate", :type => :boolean
|
6
|
+
|
7
|
+
def start
|
8
|
+
puts "Start installing okuribito_rails..."
|
9
|
+
puts ("*" * 80) + "\n"
|
10
|
+
end
|
11
|
+
|
12
|
+
def install_migrations
|
13
|
+
puts "Copying over OkuribitoRails migrations..."
|
14
|
+
Dir.chdir(Rails.root) do
|
15
|
+
`rake okuribito_rails:install:migrations`
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def run_migrations
|
20
|
+
if options["with-migrate"]
|
21
|
+
puts "Running rake db:migrate"
|
22
|
+
`rake db:migrate`
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def mount_engine
|
27
|
+
puts "Insert routing..."
|
28
|
+
route("mount OkuribitoRails::Engine, :at => '/okuribito_rails'")
|
29
|
+
end
|
30
|
+
|
31
|
+
def create_config_initializer
|
32
|
+
puts "Create configuration..."
|
33
|
+
OkuribitoRails::InstallGenerator.source_root File.expand_path('../templates', __FILE__)
|
34
|
+
template 'initializer.erb', 'config/initializers/okuribito_rails.rb'
|
35
|
+
end
|
36
|
+
|
37
|
+
def finished
|
38
|
+
puts "\n" + ("*" * 80)
|
39
|
+
puts "Done! OkuribitoRails has been successfully installed."
|
40
|
+
puts "Please create and deploy a configuration file of okuribito."
|
41
|
+
puts "(The yaml that defines the method you want to monitor)"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "okuribito"
|
2
|
+
|
3
|
+
module OkuribitoRails
|
4
|
+
class ObserveMethod
|
5
|
+
def patch_okuribito
|
6
|
+
Okuribito::OkuribitoPatch.new(once_detect: OkuribitoRails.config.once_detect) do |method_name, _obj_name, caller_info, class_name, method_symbol|
|
7
|
+
situation = MethodCallSituation.find_by(class_name: class_name,
|
8
|
+
method_symbol: method_symbol,
|
9
|
+
method_name: method_name)
|
10
|
+
if situation.present?
|
11
|
+
situation.increment!(:called_num)
|
12
|
+
MethodCallLog.create(method_call_situation: situation,
|
13
|
+
class_name: class_name,
|
14
|
+
method_symbol: method_symbol,
|
15
|
+
method_name: method_name,
|
16
|
+
back_trace: caller_info[0])
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require "okuribito_rails/regist_method"
|
2
|
+
require "okuribito_rails/observe_method"
|
3
|
+
|
4
|
+
module OkuribitoRails
|
5
|
+
class Railtie < ::Rails::Railtie
|
6
|
+
config.after_initialize do
|
7
|
+
if ActiveRecord::Base.connection.table_exists? 'okuribito_rails_method_call_situations'
|
8
|
+
yaml_path = OkuribitoRails.config.setting_path
|
9
|
+
|
10
|
+
# Update database by observed methods.
|
11
|
+
RegistMethod.new.update_observe_methods(yaml_path)
|
12
|
+
|
13
|
+
# Define behavior that when method called.
|
14
|
+
okuribito = ObserveMethod.new.patch_okuribito
|
15
|
+
okuribito.apply(yaml_path) if File.exist?(yaml_path)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require "yaml"
|
2
|
+
|
3
|
+
module OkuribitoRails
|
4
|
+
class RegistMethod
|
5
|
+
def update_observe_methods(path)
|
6
|
+
input = yaml_to_array(path)
|
7
|
+
base = db_to_array
|
8
|
+
new_methods = input - base
|
9
|
+
new_methods.each do |new_method|
|
10
|
+
array = new_method.split(/\s*(#|\.)\s*/)
|
11
|
+
MethodCallSituation.create(class_name: array[0],
|
12
|
+
method_symbol: array[1],
|
13
|
+
method_name: array[2])
|
14
|
+
end
|
15
|
+
delete_methods = base - input
|
16
|
+
delete_methods.each do |delete_method|
|
17
|
+
array = delete_method.split(/\s*(#|\.)\s*/)
|
18
|
+
MethodCallSituation.find_by(class_name: array[0],
|
19
|
+
method_symbol: array[1],
|
20
|
+
method_name: array[2]).destroy
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def yaml_to_array(path)
|
25
|
+
yaml = YAML.load_file(path)
|
26
|
+
methods_array = []
|
27
|
+
yaml.each do |class_name, observe_methods|
|
28
|
+
observe_methods.each do |observe_method|
|
29
|
+
methods_array.push(class_name + observe_method)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
methods_array
|
33
|
+
end
|
34
|
+
|
35
|
+
def db_to_array
|
36
|
+
methods_array = []
|
37
|
+
results = MethodCallSituation.all
|
38
|
+
results.each do |result|
|
39
|
+
methods_array.push(result.class_name + result.method_symbol + result.method_name)
|
40
|
+
end
|
41
|
+
methods_array
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
metadata
ADDED
@@ -0,0 +1,152 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: okuribito_rails
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Yasuhiro Matsumura
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-11-28 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: okuribito
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rails
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4.0'
|
34
|
+
- - <
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '6'
|
37
|
+
type: :runtime
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '4.0'
|
44
|
+
- - <
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '6'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: kaminari
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - '>='
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: sqlite3
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - '>='
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rspec-rails
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - '>='
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
description: OkuribitoRails is an engine for Rails that aims to be the managing method
|
90
|
+
call status.You should create a configuration file. (Describe the method name you
|
91
|
+
want to monitor)When OkuribitoRails detected a method call during application execution,
|
92
|
+
it registers the method call information in the DB.In other words, you can identify
|
93
|
+
methods that have not been called from anywhere in production!
|
94
|
+
email:
|
95
|
+
- ym.contributor@gmail.com
|
96
|
+
executables: []
|
97
|
+
extensions: []
|
98
|
+
extra_rdoc_files: []
|
99
|
+
files:
|
100
|
+
- app/assets/javascripts/okuribito_rails/application.js
|
101
|
+
- app/assets/stylesheets/okuribito_rails/application.css
|
102
|
+
- app/assets/stylesheets/okuribito_rails/method_call_info.css
|
103
|
+
- app/controllers/okuribito_rails/application_controller.rb
|
104
|
+
- app/controllers/okuribito_rails/method_call_logs_controller.rb
|
105
|
+
- app/controllers/okuribito_rails/method_call_situations_controller.rb
|
106
|
+
- app/helpers/okuribito_rails/application_helper.rb
|
107
|
+
- app/models/okuribito_rails/method_call_log.rb
|
108
|
+
- app/models/okuribito_rails/method_call_situation.rb
|
109
|
+
- app/views/layouts/okuribito_rails/application.html.erb
|
110
|
+
- app/views/okuribito_rails/method_call_logs/index.html.erb
|
111
|
+
- app/views/okuribito_rails/method_call_situations/index.html.erb
|
112
|
+
- config/routes.rb
|
113
|
+
- db/migrate/20161027145839_create_okuribito_rails_method_call_situations.rb
|
114
|
+
- db/migrate/20161027150000_create_okuribito_rails_method_call_logs.rb
|
115
|
+
- lib/generators/okuribito_rails/install_generator.rb
|
116
|
+
- lib/generators/okuribito_rails/templates/initializer.erb
|
117
|
+
- lib/okuribito_rails/config.rb
|
118
|
+
- lib/okuribito_rails/engine.rb
|
119
|
+
- lib/okuribito_rails/observe_method.rb
|
120
|
+
- lib/okuribito_rails/railtie.rb
|
121
|
+
- lib/okuribito_rails/regist_method.rb
|
122
|
+
- lib/okuribito_rails/version.rb
|
123
|
+
- lib/okuribito_rails.rb
|
124
|
+
- lib/tasks/okuribito_rails_tasks.rake
|
125
|
+
- MIT-LICENSE
|
126
|
+
- Rakefile
|
127
|
+
- README.md
|
128
|
+
homepage: https://github.com/muramurasan/okuribito_rails
|
129
|
+
licenses: []
|
130
|
+
metadata: {}
|
131
|
+
post_install_message:
|
132
|
+
rdoc_options: []
|
133
|
+
require_paths:
|
134
|
+
- lib
|
135
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - '>='
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - '>='
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
requirements: []
|
146
|
+
rubyforge_project:
|
147
|
+
rubygems_version: 2.0.14.1
|
148
|
+
signing_key:
|
149
|
+
specification_version: 4
|
150
|
+
summary: OkuribitoRails is an engine for Rails that aims to be the managing method
|
151
|
+
call status.
|
152
|
+
test_files: []
|