tuttle 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +22 -0
- data/Rakefile +37 -0
- data/app/assets/javascripts/tuttle/application.js +12 -0
- data/app/assets/stylesheets/scaffold.css +56 -0
- data/app/assets/stylesheets/tuttle/application.css +71 -0
- data/app/controllers/tuttle/application_controller.rb +20 -0
- data/app/controllers/tuttle/cancancan_controller.rb +29 -0
- data/app/controllers/tuttle/devise_controller.rb +12 -0
- data/app/controllers/tuttle/home_controller.rb +14 -0
- data/app/controllers/tuttle/rails_controller.rb +52 -0
- data/app/controllers/tuttle/ruby_controller.rb +10 -0
- data/app/helpers/tuttle/application_helper.rb +4 -0
- data/app/views/layouts/tuttle/application.html.erb +68 -0
- data/app/views/tuttle/cancancan/_rule_table.html.erb +31 -0
- data/app/views/tuttle/cancancan/index.html.erb +45 -0
- data/app/views/tuttle/cancancan/rule_tester.html.erb +68 -0
- data/app/views/tuttle/devise/index.html.erb +84 -0
- data/app/views/tuttle/home/index.html.erb +74 -0
- data/app/views/tuttle/rails/assets.html.erb +44 -0
- data/app/views/tuttle/rails/controllers.html.erb +10 -0
- data/app/views/tuttle/rails/database.html.erb +46 -0
- data/app/views/tuttle/rails/helpers.html.erb +35 -0
- data/app/views/tuttle/rails/index.html.erb +235 -0
- data/app/views/tuttle/rails/instrumentation.html.erb +22 -0
- data/app/views/tuttle/rails/models.html.erb +61 -0
- data/app/views/tuttle/rails/routes.html.erb +37 -0
- data/app/views/tuttle/ruby/index.html.erb +83 -0
- data/config/routes.rb +21 -0
- data/lib/tasks/tuttle_tasks.rake +4 -0
- data/lib/tuttle.rb +4 -0
- data/lib/tuttle/engine.rb +39 -0
- data/lib/tuttle/version.rb +3 -0
- data/test/controllers/tuttle/cancancan_controller_test.rb +60 -0
- data/test/controllers/tuttle/devise_controller_test.rb +12 -0
- data/test/controllers/tuttle/home_controller_test.rb +13 -0
- data/test/controllers/tuttle/rails_controller_test.rb +56 -0
- data/test/controllers/tuttle/ruby_controller_test.rb +12 -0
- data/test/dummy/Gemfile.lock +142 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +15 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/models/ability.rb +7 -0
- data/test/dummy/app/models/user.rb +6 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +52 -0
- data/test/dummy/config/boot.rb +11 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +30 -0
- data/test/dummy/config/environments/test.rb +38 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/devise.rb +257 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +6 -0
- data/test/dummy/db/migrate/20141229204528_devise_create_users.rb +42 -0
- data/test/dummy/db/schema.rb +34 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/test/fixtures/users.yml +6 -0
- data/test/dummy/test/models/user_test.rb +7 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/00091e0cb6df543a8e704290f4dec8db +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/11599cd5b5d6a0a58a5e98c0902e1997 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/9b2e26c1e54d4ff5ae04270e8f03907f +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/a65793481a75afa9f660d1032ee66ef5 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/d9450766086a9f3f994e8c4a2273bfaa +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/e117b0425a7b9daef8a213c1a2203f00 +0 -0
- data/test/integration/navigation_test.rb +9 -0
- data/test/test_helper.rb +37 -0
- data/test/tuttle_test.rb +7 -0
- data/test/unit/tuttle/note_test.rb +9 -0
- metadata +219 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
|
2
|
+
<table class="table table-striped">
|
3
|
+
<tr>
|
4
|
+
<th>Relevant?</th>
|
5
|
+
<th>Pass?</th>
|
6
|
+
<th>Can?</th>
|
7
|
+
<th>Actions</th>
|
8
|
+
<th>Subject</th>
|
9
|
+
<th>Conditions</th>
|
10
|
+
<th>Block?</th>
|
11
|
+
</tr>
|
12
|
+
<%- relevant_rules = @ability.send(:relevant_rules_for_match, @action.to_sym, @subject) -%>
|
13
|
+
<% rules.each do |rule| %>
|
14
|
+
<tr>
|
15
|
+
<% relevant = @action && @subject && relevant_rules.include?(rule) -%>
|
16
|
+
<td><%= 'true' if relevant %></td>
|
17
|
+
|
18
|
+
<td><%= 'true' if relevant && rule.matches_conditions?(@action.to_sym, @subject, nil) %></td>
|
19
|
+
<td><%= rule.base_behavior ? 'Can':'Cannot' %></td>
|
20
|
+
<td><%= rule.actions.inspect %></td>
|
21
|
+
<%- subjects = rule.instance_variable_get('@subjects') %>
|
22
|
+
<td>
|
23
|
+
<% subjects.each do |s| %>
|
24
|
+
<%= s.class <= Symbol ? s.to_s : s.name %>
|
25
|
+
<% end %>
|
26
|
+
</td>
|
27
|
+
<td><%= rule.conditions unless rule.conditions.empty? %></td>
|
28
|
+
<td><%= 'X' if rule.instance_variable_get('@block').present? %></td>
|
29
|
+
</tr>
|
30
|
+
<% end %>
|
31
|
+
</table>
|
@@ -0,0 +1,45 @@
|
|
1
|
+
<h1>CanCanCan Configuration</h1>
|
2
|
+
|
3
|
+
<ul class="nav nav-tabs" role="tablist">
|
4
|
+
<li class="active"><a href="#overview" role="tab" data-toggle="tab">Overview</a></li>
|
5
|
+
<li><a href="#rules" role="tab" data-toggle="tab">Rules</a></li>
|
6
|
+
<li><a href="<%= cancancan_rule_tester_path %>" role="tab">Rule Tester</a></li>
|
7
|
+
</ul>
|
8
|
+
|
9
|
+
<div class="tab-content">
|
10
|
+
<div class="tab-pane active" id="overview">
|
11
|
+
<dl class="dl-horizontal">
|
12
|
+
<dt>CanCanCan Version</dt><dd><%= CanCan::VERSION %></dd>
|
13
|
+
<dt>Current User</dt><dd><%= truncate(@cancan_user.inspect, length: 100) %></dd>
|
14
|
+
<dt>Current Ability</dt><dd><%= truncate(@ability.inspect, length: 100) %></dd>
|
15
|
+
<dt>Aliased Actions</dt><dd><%= @ability.aliased_actions %></dd>
|
16
|
+
</dl>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<div class="tab-pane" id="rules">
|
20
|
+
<table class="table table-striped">
|
21
|
+
<tr>
|
22
|
+
<th>Can?</th>
|
23
|
+
<th>Actions</th>
|
24
|
+
<th>Subject</th>
|
25
|
+
<th>Conditions</th>
|
26
|
+
<th>Block?</th>
|
27
|
+
</tr>
|
28
|
+
<% @ability.instance_variable_get('@rules').each do |rule| %>
|
29
|
+
<tr>
|
30
|
+
<td><%= rule.base_behavior ? 'Can':'Cannot' %></td>
|
31
|
+
<td><%= rule.actions.inspect %></td>
|
32
|
+
<%- subjects = rule.instance_variable_get('@subjects') %>
|
33
|
+
<td>
|
34
|
+
<% subjects.each do |s| %>
|
35
|
+
<%= s.class <= Symbol ? s.to_s : s.name %>
|
36
|
+
<% end %>
|
37
|
+
</td>
|
38
|
+
<td><%= rule.conditions %></td>
|
39
|
+
<td><%= rule.instance_variable_get('@block').present? %></td>
|
40
|
+
</tr>
|
41
|
+
<% end %>
|
42
|
+
</table>
|
43
|
+
</div>
|
44
|
+
|
45
|
+
</div>
|
@@ -0,0 +1,68 @@
|
|
1
|
+
<h1>CanCanCan</h1>
|
2
|
+
|
3
|
+
<ul class="nav nav-tabs" role="tablist">
|
4
|
+
<li><a href="<%= cancancan_path %>" role="tab">Overview</a></li>
|
5
|
+
<li><a href="<%= cancancan_path %>#rules" role="tab">Rules</a></li>
|
6
|
+
<li class="active"><a href="#" role="tab">Rule Tester</a></li>
|
7
|
+
</ul>
|
8
|
+
<br/>
|
9
|
+
|
10
|
+
<form class="form-horizontal" role="form" metho="get">
|
11
|
+
<div class="form-group">
|
12
|
+
<label for="action_name" class="col-sm-2 control-label">Action</label>
|
13
|
+
<div class="col-sm-10">
|
14
|
+
<input type="text" class="form-control typeahead" name="action_name" id="action_name" value="<%= params[:action_name] || 'read' %>">
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
<div class="form-group">
|
18
|
+
<label for="subject_class" class="col-sm-2 control-label">Subject Class</label>
|
19
|
+
<div class="col-sm-10">
|
20
|
+
<input type="text" class="form-control" name="subject_class" value="<%= @subject.try(:class) || params[:subject_class] %>">
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
<div class="form-group">
|
24
|
+
<label for="subject_id" class="col-sm-2 control-label">Subject ID</label>
|
25
|
+
<div class="col-sm-10">
|
26
|
+
<input type="text" class="form-control" name="subject_id" value="<%= @subject.try(:id) || params[:subject_id] %>">
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
<div class="form-group">
|
30
|
+
<div class="col-sm-offset-2 col-sm-10">
|
31
|
+
<button type="submit" class="btn btn-default">Test</button>
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
</form>
|
35
|
+
|
36
|
+
<% if @action && @subject %>
|
37
|
+
<p>
|
38
|
+
<%= "User.can?(:#{@action}, #{@subject.class.name}.find(#{@subject.id}) ) = #{@ability.can?(@action, @subject)}" if @subject.id %>
|
39
|
+
<%= "User.can?(:#{@action}, #{@subject.class.name}.new() ) = #{@ability.can?(@action, @subject)}" unless @subject.id %>
|
40
|
+
</p>
|
41
|
+
<% end %>
|
42
|
+
|
43
|
+
<%- relevant_rules = @ability.send(:relevant_rules_for_match, @action.to_sym, @subject) -%>
|
44
|
+
|
45
|
+
<h3>Relevant Rules</h3>
|
46
|
+
<%= render :partial => 'rule_table', :locals => {:rules => relevant_rules } =%>
|
47
|
+
|
48
|
+
<h3>All Rules</h3>
|
49
|
+
<%= render :partial => 'rule_table', :locals => {:rules => @ability.instance_variable_get('@rules') } =%>
|
50
|
+
|
51
|
+
<%- action_list = @ability.instance_variable_get('@rules').collect(&:actions).flatten.uniq -%>
|
52
|
+
|
53
|
+
<%- content_for(:javascripts) do -%>
|
54
|
+
<script>
|
55
|
+
var action_name_list = <%= action_list.as_json.to_s.html_safe =%>;
|
56
|
+
var action_names = new Bloodhound({
|
57
|
+
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
|
58
|
+
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
59
|
+
local: $.map(action_name_list, function(name) { return { value: name }; })
|
60
|
+
});
|
61
|
+
|
62
|
+
action_names.initialize();
|
63
|
+
|
64
|
+
$('#action_name.typeahead').typeahead({ hint: true, highlight: true, minLength: 1},
|
65
|
+
{ name: 'action_names', displayKey: 'value', source: action_names.ttAdapter()
|
66
|
+
});
|
67
|
+
</script>
|
68
|
+
<%- end -%>
|
@@ -0,0 +1,84 @@
|
|
1
|
+
<h1>Devise Configuration</h1>
|
2
|
+
|
3
|
+
<ul class="nav nav-tabs" role="tablist">
|
4
|
+
<li class="active"><a href="#overview" role="tab" data-toggle="tab">Overview</a></li>
|
5
|
+
<li><a href="#config" role="tab" data-toggle="tab">Config</a></li>
|
6
|
+
</ul>
|
7
|
+
|
8
|
+
<div class="tab-content">
|
9
|
+
<div class="tab-pane active" id="overview">
|
10
|
+
<dl class="dl-horizontal">
|
11
|
+
<dt>Devise Version</dt><dd><%= Devise::VERSION %></dd>
|
12
|
+
</dl>
|
13
|
+
<pre>
|
14
|
+
Devise::ALL = <%= Devise::ALL %>
|
15
|
+
|
16
|
+
Devise::CONTROLLERS = <%= Devise::CONTROLLERS %>
|
17
|
+
|
18
|
+
Devise::ROUTES = <%= Devise::ROUTES %>
|
19
|
+
|
20
|
+
Devise::STRATEGIES = <%= Devise::STRATEGIES %>
|
21
|
+
|
22
|
+
Devise::URL_HELPERS = <%= Devise::URL_HELPERS %>
|
23
|
+
|
24
|
+
</pre>
|
25
|
+
</div>
|
26
|
+
|
27
|
+
<div class="tab-pane" id="config">
|
28
|
+
<pre>
|
29
|
+
|
30
|
+
rememberable_options = <%= Devise.rememberable_options %>
|
31
|
+
stretches = <%= Devise.stretches %>
|
32
|
+
http_authentication_key = <%= Devise.http_authentication_key %>
|
33
|
+
authentication_keys = <%= Devise.authentication_keys %>
|
34
|
+
request_keys = <%= Devise.request_keys %>
|
35
|
+
case_insensitive_keys = <%= Devise.case_insensitive_keys %>
|
36
|
+
strip_whitespace_keys = <%= Devise.strip_whitespace_keys %>
|
37
|
+
http_authenticatable = <%= Devise.http_authenticatable %>
|
38
|
+
http_authenticatable_on_xhr = <%= Devise.http_authenticatable_on_xhr %>
|
39
|
+
params_authenticatable = <%= Devise.params_authenticatable %>
|
40
|
+
http_authentication_realm = <%= Devise.http_authentication_realm %>
|
41
|
+
email_regexp = <%= Devise.email_regexp %>
|
42
|
+
password_length = <%= Devise.password_length %>
|
43
|
+
remember_for = <%= Devise.remember_for %>
|
44
|
+
extend_remember_period = <%= Devise.extend_remember_period %>
|
45
|
+
allow_unconfirmed_access_for = <%= Devise.allow_unconfirmed_access_for %>
|
46
|
+
confirm_within = <%= Devise.confirm_within %>
|
47
|
+
confirmation_keys = <%= Devise.confirmation_keys %>
|
48
|
+
reconfirmable = <%= Devise.reconfirmable %>
|
49
|
+
timeout_in = <%= Devise.timeout_in %>
|
50
|
+
expire_auth_token_on_timeout = <%= Devise.expire_auth_token_on_timeout %>
|
51
|
+
pepper = <%= Devise.pepper %>
|
52
|
+
scoped_views = <%= Devise.scoped_views %>
|
53
|
+
lock_strategy = <%= Devise.lock_strategy %>
|
54
|
+
unlock_keys = <%= Devise.unlock_keys %>
|
55
|
+
unlock_strategy = <%= Devise.unlock_strategy %>
|
56
|
+
maximum_attempts = <%= Devise.maximum_attempts %>
|
57
|
+
unlock_in = <%= Devise.unlock_in %>
|
58
|
+
reset_password_keys = <%= Devise.reset_password_keys %>
|
59
|
+
reset_password_within = <%= Devise.reset_password_within %>
|
60
|
+
default_scope = <%= Devise.default_scope %>
|
61
|
+
mailer_sender = <%= Devise.mailer_sender %>
|
62
|
+
skip_session_storage = <%= Devise.skip_session_storage %>
|
63
|
+
navigational_formats = <%= Devise.navigational_formats %>
|
64
|
+
sign_out_all_scopes = <%= Devise.sign_out_all_scopes %>
|
65
|
+
sign_out_via = <%= Devise.sign_out_via %>
|
66
|
+
parent_controller = <%= Devise.parent_controller %>
|
67
|
+
parent_mailer = <%= Devise.parent_mailer %>
|
68
|
+
router_name = <%= Devise.router_name %>
|
69
|
+
omniauth_path_prefix = <%= Devise.omniauth_path_prefix %>
|
70
|
+
clean_up_csrf_token_on_authentication = <%= Devise.clean_up_csrf_token_on_authentication %>
|
71
|
+
mappings = <%= Devise.mappings %>
|
72
|
+
omniauth_configs = <%= Devise.omniauth_configs %>
|
73
|
+
helpers = <%= Devise.helpers %>
|
74
|
+
warden_config = <%= Devise.warden_config %>
|
75
|
+
paranoid = <%= Devise.paranoid %>
|
76
|
+
last_attempt_warning = <%= Devise.last_attempt_warning %>
|
77
|
+
token_generator = <%= Devise.token_generator %>
|
78
|
+
|
79
|
+
omniauth_providers = <%= Devise.omniauth_providers %>
|
80
|
+
available_router_name = <%= Devise.available_router_name %>
|
81
|
+
</pre>
|
82
|
+
</div>
|
83
|
+
|
84
|
+
</div>
|
@@ -0,0 +1,74 @@
|
|
1
|
+
<h1>Tuttle Dashboard</h1>
|
2
|
+
|
3
|
+
<div class="row">
|
4
|
+
<div class="col-md-8">
|
5
|
+
|
6
|
+
<div class="panel panel-default">
|
7
|
+
<div class="panel-heading">
|
8
|
+
<h3 class="panel-title">Rails</h3>
|
9
|
+
</div>
|
10
|
+
<div class="panel-body">
|
11
|
+
<p>Version: <%= Rails::VERSION::STRING %></p>
|
12
|
+
<p>Environment: <%= Rails.env %></p>
|
13
|
+
<p>Root: <%= Rails.root %></p>
|
14
|
+
<p>Controllers: <%= ActionController::Base.descendants.size %></p>
|
15
|
+
<p>Models: <%= ActiveRecord::Base.descendants.size %></p>
|
16
|
+
</div>
|
17
|
+
<div class="panel-footer">
|
18
|
+
<%= link_to 'More...', root_path %>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
|
22
|
+
<div class="panel panel-default">
|
23
|
+
<div class="panel-heading">
|
24
|
+
<h3 class="panel-title">Gems Detected</h3>
|
25
|
+
</div>
|
26
|
+
<ul class="list-group">
|
27
|
+
<li class="list-group-item list-group-item-<%= ("constant" == defined?(CanCan)) ? 'success' : 'danger' %>">CanCan</li>
|
28
|
+
<li class="list-group-item list-group-item-<%= ("constant" == defined?(Devise)) ? 'success' : 'danger' %>">Devise</li>
|
29
|
+
</ul>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<div class="panel panel-default">
|
33
|
+
<div class="panel-heading">
|
34
|
+
<h3 class="panel-title">Ruby</h3>
|
35
|
+
</div>
|
36
|
+
<div class="panel-body">
|
37
|
+
<p>Version: <%= RUBY_DESCRIPTION %></p>
|
38
|
+
<p>Gems: <%= Bundler.rubygems.all_specs.size %></p>
|
39
|
+
</div>
|
40
|
+
<div class="panel-footer">
|
41
|
+
<%= link_to 'More...', ruby_path %>
|
42
|
+
</div>
|
43
|
+
</div>
|
44
|
+
|
45
|
+
</div>
|
46
|
+
<div class="col-md-4">
|
47
|
+
<div class="panel panel-default">
|
48
|
+
<div class="panel-heading">
|
49
|
+
<h3 class="panel-title">Tuttle</h3>
|
50
|
+
</div>
|
51
|
+
<div class="panel-body">
|
52
|
+
<p>Tuttle Version: <%= Tuttle::VERSION %></p>
|
53
|
+
<p>Mode: <%= Rails.env %></p>
|
54
|
+
<p>Session ID: <%= Tuttle::Engine.session_id %></p>
|
55
|
+
<p>Uptime: <%= time_ago_in_words(Tuttle::Engine.session_start) %> (<%= Tuttle::Engine.session_start.to_s(:db) %>)</p>
|
56
|
+
</div>
|
57
|
+
</div>
|
58
|
+
|
59
|
+
<div class="panel panel-default">
|
60
|
+
<div class="panel-heading">
|
61
|
+
<h3 class="panel-title">Events (<%= Tuttle::Engine.events.size %>)</h3>
|
62
|
+
</div>
|
63
|
+
<ul class="list-group">
|
64
|
+
<% @event_counts.sort.each do |name,val| -%>
|
65
|
+
<li class="list-group-item"><span class="badge"><%= val %></span><%= name %></li>
|
66
|
+
<% end -%>
|
67
|
+
</ul>
|
68
|
+
<div class="panel-body">
|
69
|
+
<%= link_to 'Details...', rails_instrumentation_path %>
|
70
|
+
</div>
|
71
|
+
</div>
|
72
|
+
</div>
|
73
|
+
|
74
|
+
</div>
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<h2>Assets/Sprockets</h2>
|
2
|
+
|
3
|
+
Sprockets version: <%= Sprockets::VERSION %><br/>
|
4
|
+
Sprockets::Rails version: <%= Sprockets::Rails::VERSION %><br/>
|
5
|
+
SASS version: <%= defined?(Sass::VERSION) ? Sass::VERSION : '-' %><br/>
|
6
|
+
CoffeeScript version: <%= defined?(CoffeeScript) ? CoffeeScript::version : '-' %><br/>
|
7
|
+
ECO version: <%= defined?(Eco) ? Eco::version : '-' %><br/>
|
8
|
+
EJS version: <%= defined?(EJS) ? '1.1.1' : '-' %><br/>
|
9
|
+
|
10
|
+
<h3>Configuration</h3>
|
11
|
+
digest: <%= Rails.application.config.assets.digest %><br/>
|
12
|
+
** digest value: <%= @sprockets.digest %><br/>
|
13
|
+
assets version: <%= Rails.application.config.assets.version %><br/>
|
14
|
+
** sprockets assets version: <%= @sprockets.version %><br/>
|
15
|
+
assets prefix: <%= Rails.application.config.assets.prefix %><br/>
|
16
|
+
manifest: <%= Rails.application.config.assets.manifest || 'false' %><br/>
|
17
|
+
debug: <%= Rails.application.config.assets.debug %><br/>
|
18
|
+
compile: <%= Rails.application.config.assets.compile %><br/>
|
19
|
+
<%- # NOTE: only in Sprockets 2.x %>
|
20
|
+
raise_runtime_errors: <%= Rails.application.config.assets.raise_runtime_errors %><br/>
|
21
|
+
js_compressor: <%= Rails.application.config.assets.js_compressor %><br/>
|
22
|
+
css_compressor: <%= Rails.application.config.assets.css_compressor %><br/>
|
23
|
+
|
24
|
+
asset_host (for CDNs): <%= Rails.application.config.action_controller.asset_host %><br/>
|
25
|
+
static_cache_control (for CDNs): <%= Rails.application.config.static_cache_control %><br/>
|
26
|
+
|
27
|
+
|
28
|
+
<h3>Asset paths</h3>
|
29
|
+
<pre>
|
30
|
+
<% @sprockets.paths.each do |asset_path| %>
|
31
|
+
<%= asset_path.to_s %>
|
32
|
+
<% end %>
|
33
|
+
|
34
|
+
</pre>
|
35
|
+
|
36
|
+
<h3>Engines</h3>
|
37
|
+
<ul>
|
38
|
+
<% @engines.each do |ext,engine_name| %>
|
39
|
+
<li><%= ext %> - <%= engine_name %></li>
|
40
|
+
<% end %>
|
41
|
+
|
42
|
+
</ul>
|
43
|
+
|
44
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<h2>Controllers and public instance methods (<%= @controllers.size %>)</h2>
|
2
|
+
<pre>
|
3
|
+
<% @controllers.each do |controller| %>
|
4
|
+
<%= controller.inspect %>
|
5
|
+
<%- controller.action_methods.sort.each do |method| %>
|
6
|
+
<%= method.to_s %>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<% end %>
|
10
|
+
</pre>
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<h2>Database</h2>
|
2
|
+
|
3
|
+
<h3>Connection Configuration</h3>
|
4
|
+
<dl class="dl-horizontal">
|
5
|
+
<%- ActiveRecord::Base.connection_config.each do |key,val| -%>
|
6
|
+
<dt><%= key %></dt><dd><%= 'password'==key.to_s ? '--FILTERED--' : val %></dd>
|
7
|
+
<%- end -%>
|
8
|
+
</dl>
|
9
|
+
|
10
|
+
<h3>Current Connection</h3>
|
11
|
+
<p>ActiveRecord::Migrator.current_version = <%= ActiveRecord::Migrator.current_version %></p>
|
12
|
+
<p>Adapter Name = <%= @conn.adapter_name %></p>
|
13
|
+
<p>Adapter Class = <%= @conn.class %></p>
|
14
|
+
<p>Connected? = <%= ActiveRecord::Base.connected? %></p>
|
15
|
+
<p>Pool size = <%= ActiveRecord::Base.connection_pool.size %></p>
|
16
|
+
<p>Schema Cache size = <%= @conn.schema_cache.size %></p>
|
17
|
+
|
18
|
+
<%- if defined?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter) && @conn.class <= ActiveRecord::ConnectionAdapters::PostgreSQLAdapter -%>
|
19
|
+
<h3>PostgreSQL-only Info</h3>
|
20
|
+
<p>Database = <%= @conn.current_database %></p>
|
21
|
+
<p>Schema = <%= @conn.current_schema %></p>
|
22
|
+
<p>Encoding = <%= @conn.encoding %></p>
|
23
|
+
<p>Collation = <%= @conn.collation %></p>
|
24
|
+
<p>Ctype = <%= @conn.ctype %></p>
|
25
|
+
|
26
|
+
<h3>Extensions</h3>
|
27
|
+
<ul class="dl-horizontal">
|
28
|
+
<%- if @conn.extensions.size==0 -%>
|
29
|
+
<li>None</li>
|
30
|
+
<%- end -%>
|
31
|
+
<%- @conn.extensions.each do |extension| -%>
|
32
|
+
<li><%= extension %></li>
|
33
|
+
<%- end -%>
|
34
|
+
</ul>
|
35
|
+
<%- end -%>
|
36
|
+
|
37
|
+
<h3>Tables (<%= @conn.tables.size %>)</h3>
|
38
|
+
<p><%= @conn.tables %></p>
|
39
|
+
|
40
|
+
<h3>Native DB Types Supported</h3>
|
41
|
+
<dl class="dl-horizontal">
|
42
|
+
<%- @conn.native_database_types.each do |key,val| -%>
|
43
|
+
<dt><%= key %></dt><dd><%= val %></dd>
|
44
|
+
<%- end -%>
|
45
|
+
</dl>
|
46
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<h2>Helpers (<%= @helpers.size %>)</h2>
|
2
|
+
|
3
|
+
helpers_path: <%= ::ApplicationController.helpers_path %><br/>
|
4
|
+
include_all_helpers: <%= ::ApplicationController.include_all_helpers %><br/>
|
5
|
+
|
6
|
+
<pre>
|
7
|
+
<% @helpers.each do |helper| %>
|
8
|
+
<%= helper.inspect %>
|
9
|
+
<%- helper.instance_methods(false).sort.each do |method| %>
|
10
|
+
<%= method.to_s %>
|
11
|
+
<% end %>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
</pre>
|
15
|
+
|
16
|
+
<h2>Rails Helpers</h2>
|
17
|
+
<pre>
|
18
|
+
<%- ActionView::Helpers.instance_methods(true).sort.each do |method| %>
|
19
|
+
<%= method.to_s %>
|
20
|
+
<% end %>
|
21
|
+
|
22
|
+
</pre>
|
23
|
+
|
24
|
+
<h2>Rails Helpers by Module</h2>
|
25
|
+
<pre>
|
26
|
+
<%- ActionView::Helpers.included_modules.each do |module_obj| %>
|
27
|
+
<%= module_obj.inspect %>
|
28
|
+
<%- module_obj.public_instance_methods(false).sort.each do |method| %>
|
29
|
+
<%= method.to_s %>
|
30
|
+
<%- # TODO: print method signatures -%>
|
31
|
+
<%- # ActionView::Helpers.instance_method(method).parameters %>
|
32
|
+
<% end %>
|
33
|
+
<% end %>
|
34
|
+
|
35
|
+
</pre>
|