tuttle 0.0.2 → 0.0.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.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -2
  3. data/README.md +1 -1
  4. data/app/assets/images/tuttle/favicon.ico +0 -0
  5. data/app/controllers/tuttle/application_controller.rb +2 -5
  6. data/app/controllers/tuttle/cancancan_controller.rb +5 -2
  7. data/app/controllers/tuttle/gems_controller.rb +19 -0
  8. data/app/controllers/tuttle/rails_controller.rb +6 -0
  9. data/app/controllers/tuttle/ruby_controller.rb +23 -0
  10. data/app/helpers/tuttle/application_helper.rb +5 -0
  11. data/app/views/layouts/tuttle/application.html.erb +24 -7
  12. data/app/views/tuttle/cancancan/_rule_table.html.erb +1 -1
  13. data/app/views/tuttle/cancancan/index.html.erb +1 -1
  14. data/app/views/tuttle/cancancan/rule_tester.html.erb +2 -2
  15. data/app/views/tuttle/gems/http_clients.html.erb +35 -0
  16. data/app/views/tuttle/gems/json.html.erb +31 -0
  17. data/app/views/tuttle/gems/other.html.erb +16 -0
  18. data/app/views/tuttle/rails/cache.html.erb +27 -1
  19. data/app/views/tuttle/rails/database.html.erb +21 -0
  20. data/app/views/tuttle/rails/index.html.erb +16 -6
  21. data/app/views/tuttle/rails/instrumentation.html.erb +1 -1
  22. data/app/views/tuttle/rails/models.html.erb +1 -1
  23. data/app/views/tuttle/ruby/miscellaneous.html.erb +12 -0
  24. data/app/views/tuttle/ruby/tuning.html.erb +117 -0
  25. data/config/routes.rb +8 -1
  26. data/lib/tuttle.rb +1 -1
  27. data/lib/tuttle/engine.rb +48 -7
  28. data/lib/tuttle/version.rb +1 -1
  29. metadata +12 -108
  30. data/app/assets/stylesheets/scaffold.css +0 -56
  31. data/test/controllers/tuttle/cancancan_controller_test.rb +0 -60
  32. data/test/controllers/tuttle/devise_controller_test.rb +0 -12
  33. data/test/controllers/tuttle/home_controller_test.rb +0 -13
  34. data/test/controllers/tuttle/rails_controller_test.rb +0 -71
  35. data/test/controllers/tuttle/ruby_controller_test.rb +0 -12
  36. data/test/dummy/Gemfile.lock +0 -142
  37. data/test/dummy/README.rdoc +0 -261
  38. data/test/dummy/Rakefile +0 -7
  39. data/test/dummy/app/assets/javascripts/application.js +0 -15
  40. data/test/dummy/app/assets/stylesheets/application.css +0 -13
  41. data/test/dummy/app/controllers/application_controller.rb +0 -3
  42. data/test/dummy/app/helpers/application_helper.rb +0 -2
  43. data/test/dummy/app/models/ability.rb +0 -7
  44. data/test/dummy/app/models/user.rb +0 -6
  45. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  46. data/test/dummy/config.ru +0 -4
  47. data/test/dummy/config/application.rb +0 -52
  48. data/test/dummy/config/boot.rb +0 -11
  49. data/test/dummy/config/database.yml +0 -25
  50. data/test/dummy/config/environment.rb +0 -5
  51. data/test/dummy/config/environments/development.rb +0 -30
  52. data/test/dummy/config/environments/test.rb +0 -38
  53. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  54. data/test/dummy/config/initializers/devise.rb +0 -257
  55. data/test/dummy/config/initializers/inflections.rb +0 -15
  56. data/test/dummy/config/initializers/mime_types.rb +0 -5
  57. data/test/dummy/config/initializers/secret_token.rb +0 -7
  58. data/test/dummy/config/initializers/session_store.rb +0 -8
  59. data/test/dummy/config/initializers/tuttle.rb +0 -3
  60. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  61. data/test/dummy/config/locales/en.yml +0 -5
  62. data/test/dummy/config/routes.rb +0 -5
  63. data/test/dummy/db/migrate/20141229204528_devise_create_users.rb +0 -42
  64. data/test/dummy/db/schema.rb +0 -34
  65. data/test/dummy/public/404.html +0 -26
  66. data/test/dummy/public/422.html +0 -26
  67. data/test/dummy/public/500.html +0 -25
  68. data/test/dummy/public/favicon.ico +0 -0
  69. data/test/dummy/script/rails +0 -6
  70. data/test/dummy/test/fixtures/users.yml +0 -6
  71. data/test/dummy/test/models/user_test.rb +0 -7
  72. data/test/dummy/tmp/cache/assets/test/sprockets/00091e0cb6df543a8e704290f4dec8db +0 -0
  73. data/test/dummy/tmp/cache/assets/test/sprockets/11599cd5b5d6a0a58a5e98c0902e1997 +0 -0
  74. data/test/dummy/tmp/cache/assets/test/sprockets/9b2e26c1e54d4ff5ae04270e8f03907f +0 -0
  75. data/test/dummy/tmp/cache/assets/test/sprockets/a65793481a75afa9f660d1032ee66ef5 +0 -0
  76. data/test/dummy/tmp/cache/assets/test/sprockets/d9450766086a9f3f994e8c4a2273bfaa +0 -0
  77. data/test/dummy/tmp/cache/assets/test/sprockets/e117b0425a7b9daef8a213c1a2203f00 +0 -0
  78. data/test/integration/navigation_test.rb +0 -9
  79. data/test/test_helper.rb +0 -37
  80. data/test/tuttle_test.rb +0 -7
  81. data/test/unit/tuttle/note_test.rb +0 -9
@@ -17,7 +17,7 @@ No models were found in this application
17
17
  <th>Scale</th>
18
18
  </tr>
19
19
  <% @models.each do |model| %>
20
- <% next if model.abstract_class? %>
20
+ <% next if model.abstract_class? || ! model.table_exists? %>
21
21
  <tr>
22
22
  <th colspan="9"><%= model.name %> (<%= model.table_name %>)</th>
23
23
  </tr>
@@ -0,0 +1,12 @@
1
+ <h2>Miscellaneous</h2>
2
+
3
+ <h3>Reslov-Replace</h3>
4
+ <p>
5
+ By default, Ruby network libraries use the system DNS lookup.
6
+ But the Ruby standard library also ships with a pure-Ruby implementation that causes the VM to not
7
+ lock while waiting for DNS lookups to happen. To enable this lookup just add <code>require 'resolv-replace'</code>
8
+ somewhere in your application, such as in an initializer.
9
+ </p>
10
+ <p>
11
+ Does <code>resolv-replace</code> appear to be patched in? <%= truth_label(IPSocket.method(:getaddress).source_location.present?) %>
12
+ </p>
@@ -0,0 +1,117 @@
1
+ <h2>Ruby Tuning</h2>
2
+
3
+ <p>
4
+ Ruby can be tuned for different types of applications through the use of environment variables.
5
+ </p>
6
+ <p>
7
+ Different versions of Ruby support different variables so it is important to make sure that you are using
8
+ settings and environment variable names appropriate for your version of Ruby.
9
+ </p>
10
+
11
+ <h3>Global Method Cache</h3>
12
+ <p>
13
+ Since Ruby 2.2, the method cache size is configurable using the <code>RUBY_GLOBAL_METHOD_CACHE_SIZE</code> environment variable.
14
+ </p>
15
+ <p>
16
+ The default value for this setting is 2048 entries which may be low for even a moderate-sized Rails application.
17
+ </p>
18
+ <%- # TODO: warn if value is not a power of 2 %>
19
+ <pre>
20
+ ENV['RUBY_GLOBAL_METHOD_CACHE_SIZE'] = <%= ENV.fetch('RUBY_GLOBAL_METHOD_CACHE_SIZE') { 'not configured'} %>
21
+ </pre>
22
+ <p>
23
+ For more information and a great story about how <a href="https://github.com/csfrancis">Scott Francis</a>
24
+ added this variable to Ruby
25
+ see <a href="http://www.shopify.com/technology/16777156-tuning-rubys-global-method-cache">his writeup</a>
26
+ on performance tuning the Shopify app.
27
+ </p>
28
+
29
+ <% if RUBY_VERSION.to_f >= 2.1 %>
30
+ <h3>Garbage Collection Internals</h3>
31
+ <p>
32
+ Some of Ruby's Garbage Collection parameters are determined during by the runtime platform or compile-time configuration.
33
+ These values can't be changed by environment variables but are helpful for understanding how memory is being allocated and used.
34
+ </p>
35
+ <ul>
36
+ <% GC::INTERNAL_CONSTANTS.each do |key, value| %>
37
+ <li><%= key %> = <%= value %></li>
38
+ <% end %>
39
+ </ul>
40
+ <% end %>
41
+
42
+ <h3>Garbage Collection</h3>
43
+ <p>
44
+ Ruby's garbage collection is highly-tunable through environment variables.
45
+ Determining the right configuration requires understanding how the GC is working
46
+ and how much memory is being allocated by requests to the application.
47
+ </p>
48
+ <h4>Controls</h4>
49
+ <p>
50
+ Normally, the Garbage Collector runs as needed to free memory. You can also programmatically control the GC as well to stop it from running or to trigger a GC on demand.</code>
51
+ </p>
52
+ <p>
53
+ Is GC enabled? <%= truth_label(@gc_enabled) %>
54
+ <br/>
55
+ Is GC::Profiler enabled? <%= truth_label(GC::Profiler.enabled?) %>
56
+ </p>
57
+
58
+ <h4>Garbage Collection Statistics</h4>
59
+ <table class='table table-condensed' style='width:auto;'>
60
+ <%- gcstat = GC.stat %>
61
+ <%- [:count, :major_gc_count, :minor_gc_count,
62
+ :heap_available_slots, :heap_live_slots, :heap_free_slots, :heap_final_slots, :heap_marked_slots, :heap_swept_slots,
63
+ :heap_sorted_length,
64
+ :total_allocated_pages, :total_freed_pages, :heap_allocatable_pages, :heap_allocated_pages, :heap_eden_pages, :heap_tomb_pages,
65
+ :total_allocated_objects, :total_freed_objects,
66
+ :old_objects, :old_objects_limit,
67
+ :remembered_wb_unprotected_objects, :remembered_wb_unprotected_objects_limit,
68
+ :malloc_increase_bytes, :malloc_increase_bytes_limit,
69
+ :oldmalloc_increase_bytes, :oldmalloc_increase_bytes_limit].each do |key| %>
70
+ <tr>
71
+ <th class="text-right"><%= key %></th>
72
+ <td><%= gcstat[key] %></td>
73
+ </tr>
74
+ <%- end %>
75
+ </table>
76
+
77
+ <% if RUBY_VERSION.to_f >= 2.1 %>
78
+ <h4>Latest GC info</h4>
79
+ <%- dgtest = GC.latest_gc_info %>
80
+ <dl class="dl-horizontal">
81
+ <%- dgtest.each do |key,val| %>
82
+ <dt><%= key %></dt>
83
+ <dd><%= val %></dd>
84
+ <%- end %>
85
+ </dl>
86
+ <% end %>
87
+
88
+ <h4>Configuration settings</h4>
89
+ <p>
90
+ The following environment variables are available to be configured to tune the Garbage Collector in Ruby 2.2.
91
+ </p>
92
+ <p>
93
+ Some useful resources for understanding how these variables affect performance can be found here:
94
+ <ul>
95
+ <li><a href="https://github.com/tmm1">Aman Gupta's</a> post: <a href="http://tmm1.net/ruby21-rgengc/">Ruby 2.1: RGenGC</a></li>
96
+ <li><a href="https://github.com/mrnugget">Thorsten Ball's</a> post: <a href="http://thorstenball.com/blog/2014/03/12/watching-understanding-ruby-2.1-garbage-collector/">Watching and Understanding the Ruby 2.1 Garbage Collector at Work</a></li>
97
+ </ul>
98
+ </p>
99
+ <%
100
+ #
101
+ #
102
+ %>
103
+ <table class="table table-condensed">
104
+ <tr>
105
+ <th>ENV</th>
106
+ <th>Value</th>
107
+ <th>Description</th>
108
+ </tr>
109
+ <%- @gc_params.each do |key, desc| %>
110
+ <tr>
111
+ <td><%= key %></td>
112
+ <td style="white-space: nowrap;"><%= ENV.fetch(key.to_s) { 'not configured'} %></td>
113
+ <td><%= desc %></td>
114
+ </tr>
115
+ <%- end %>
116
+ </table>
117
+
@@ -7,7 +7,14 @@ Tuttle::Engine.routes.draw do
7
7
  get :controllers, :models, :database, :helpers, :assets, :routes, :instrumentation, :inflectors, :cache
8
8
  end
9
9
 
10
- get '/ruby' => 'ruby#index'
10
+ namespace :ruby do
11
+ get '', :action => :index
12
+ get :tuning, :miscellaneous
13
+ end
14
+
15
+ namespace :gems do
16
+ get :http_clients, :json, :other
17
+ end
11
18
 
12
19
  if defined?(Devise)
13
20
  get '/devise' => 'devise#index'
@@ -3,7 +3,7 @@ require 'tuttle/engine'
3
3
  module Tuttle
4
4
 
5
5
  mattr_accessor :automount_engine
6
- @@automount_engine = true
6
+ mattr_accessor :enabled
7
7
 
8
8
  def self.setup
9
9
  yield self
@@ -1,28 +1,50 @@
1
1
  module Tuttle
2
2
  class Engine < ::Rails::Engine
3
3
  isolate_namespace Tuttle
4
+ engine_name :tuttle
5
+
6
+ config.tuttle = ActiveSupport::OrderedOptions.new
4
7
 
5
8
  attr_accessor :reload_needed
6
- attr_accessor :events, :event_counts
9
+ attr_accessor :events, :event_counts, :cache_events
7
10
  attr_accessor :session_start, :session_id
8
11
 
12
+ attr_reader :logger
13
+
14
+ initializer :tuttle_assets_precompile do |app|
15
+ app.config.assets.precompile += %w(tuttle/application.css tuttle/application.js tuttle/favicon.ico)
16
+ end
17
+
18
+ initializer :tuttle_set_configuration do |app|
19
+ app.config.tuttle.each do |k,v|
20
+ Tuttle.send("#{k}=", v)
21
+ end
22
+ # Tuttle will be automatically enabled in development if not configured explicitly
23
+ Tuttle.enabled= Rails.env.development? if Tuttle.enabled==nil
24
+ Tuttle.automount_engine= true if Tuttle.automount_engine==nil
25
+ end
26
+
9
27
  initializer :tuttle_startup do
28
+ next unless Tuttle.enabled
29
+
10
30
  Tuttle::Engine.session_start = Time.now
11
31
  Tuttle::Engine.session_id = SecureRandom.uuid
12
- end
13
-
14
- initializer :tuttle_assets_precompile do |app|
15
- app.config.assets.precompile += %w(tuttle/application.css tuttle/application.js )
32
+ @logger = ::Logger.new("#{Rails.root}/log/tuttle.log")
33
+ @logger.info('Tuttle engine started')
16
34
  end
17
35
 
18
36
  initializer :tuttle_track_reloads, group: :all do
37
+ next unless Tuttle.enabled
38
+
19
39
  ActionDispatch::Reloader.to_prepare do
20
- Rails.logger.warn('Tuttle: ActionDispatch::Reloader called to_prepare')
40
+ Tuttle::Engine.logger.warn('ActionDispatch::Reloader called to_prepare') unless Tuttle::Engine.reload_needed.nil?
21
41
  Tuttle::Engine.reload_needed = true
22
42
  end
23
43
  end
24
44
 
25
45
  initializer :tuttle_global_instrumenter, group: :all do
46
+ next unless Tuttle.enabled
47
+
26
48
  Tuttle::Engine.events = []
27
49
  Tuttle::Engine.event_counts = Hash.new(0)
28
50
 
@@ -35,11 +57,30 @@ module Tuttle
35
57
  end
36
58
  end
37
59
 
60
+ Tuttle::Engine.cache_events = []
61
+ # Note: For Rails < 4.2 instrumentation is not enabled by default. Hitting the cache inspector page will enable it for that session.
62
+ Tuttle::Engine.logger.info('Initializing cache_read subscriber')
63
+ ActiveSupport::Notifications.subscribe('cache_read.active_support') do |*args|
64
+ cache_call_location = caller_locations.detect { |cl| cl.path.start_with?("#{Rails.root}/app".freeze) }
65
+ event = ActiveSupport::Notifications::Event.new(*args)
66
+
67
+ Tuttle::Engine.logger.info("Cache Read called: #{cache_call_location.path} on line #{cache_call_location.lineno} :: #{event.payload.inspect}")
68
+
69
+ event.payload.merge!({:call_location_path => cache_call_location.path, :call_location_lineno => cache_call_location.lineno })
70
+ Tuttle::Engine.cache_events << event
71
+ end
72
+ ActiveSupport::Notifications.subscribe('cache_generate.active_support') do |*args|
73
+ Tuttle::Engine.logger.info('Cache Generate called')
74
+ end
75
+
38
76
  end
39
77
 
40
78
  initializer :tuttle_automounter do
79
+ next unless Tuttle.enabled
80
+
41
81
  if Tuttle.automount_engine
42
- Rails.application.routes.append do
82
+ Rails.application.routes.prepend do
83
+ Tuttle::Engine.logger.info('Auto-mounting /tuttle routes')
43
84
  mount Tuttle::Engine, at: "tuttle"
44
85
  end
45
86
  end
@@ -1,3 +1,3 @@
1
1
  module Tuttle
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tuttle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Gynn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-14 00:00:00.000000000 Z
11
+ date: 2015-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -69,12 +69,13 @@ files:
69
69
  - MIT-LICENSE
70
70
  - README.md
71
71
  - Rakefile
72
+ - app/assets/images/tuttle/favicon.ico
72
73
  - app/assets/javascripts/tuttle/application.js
73
- - app/assets/stylesheets/scaffold.css
74
74
  - app/assets/stylesheets/tuttle/application.css
75
75
  - app/controllers/tuttle/application_controller.rb
76
76
  - app/controllers/tuttle/cancancan_controller.rb
77
77
  - app/controllers/tuttle/devise_controller.rb
78
+ - app/controllers/tuttle/gems_controller.rb
78
79
  - app/controllers/tuttle/home_controller.rb
79
80
  - app/controllers/tuttle/rails_controller.rb
80
81
  - app/controllers/tuttle/ruby_controller.rb
@@ -84,6 +85,9 @@ files:
84
85
  - app/views/tuttle/cancancan/index.html.erb
85
86
  - app/views/tuttle/cancancan/rule_tester.html.erb
86
87
  - app/views/tuttle/devise/index.html.erb
88
+ - app/views/tuttle/gems/http_clients.html.erb
89
+ - app/views/tuttle/gems/json.html.erb
90
+ - app/views/tuttle/gems/other.html.erb
87
91
  - app/views/tuttle/home/index.html.erb
88
92
  - app/views/tuttle/rails/assets.html.erb
89
93
  - app/views/tuttle/rails/cache.html.erb
@@ -96,62 +100,13 @@ files:
96
100
  - app/views/tuttle/rails/models.html.erb
97
101
  - app/views/tuttle/rails/routes.html.erb
98
102
  - app/views/tuttle/ruby/index.html.erb
103
+ - app/views/tuttle/ruby/miscellaneous.html.erb
104
+ - app/views/tuttle/ruby/tuning.html.erb
99
105
  - config/routes.rb
100
106
  - lib/tasks/tuttle_tasks.rake
101
107
  - lib/tuttle.rb
102
108
  - lib/tuttle/engine.rb
103
109
  - lib/tuttle/version.rb
104
- - test/controllers/tuttle/cancancan_controller_test.rb
105
- - test/controllers/tuttle/devise_controller_test.rb
106
- - test/controllers/tuttle/home_controller_test.rb
107
- - test/controllers/tuttle/rails_controller_test.rb
108
- - test/controllers/tuttle/ruby_controller_test.rb
109
- - test/dummy/Gemfile.lock
110
- - test/dummy/README.rdoc
111
- - test/dummy/Rakefile
112
- - test/dummy/app/assets/javascripts/application.js
113
- - test/dummy/app/assets/stylesheets/application.css
114
- - test/dummy/app/controllers/application_controller.rb
115
- - test/dummy/app/helpers/application_helper.rb
116
- - test/dummy/app/models/ability.rb
117
- - test/dummy/app/models/user.rb
118
- - test/dummy/app/views/layouts/application.html.erb
119
- - test/dummy/config.ru
120
- - test/dummy/config/application.rb
121
- - test/dummy/config/boot.rb
122
- - test/dummy/config/database.yml
123
- - test/dummy/config/environment.rb
124
- - test/dummy/config/environments/development.rb
125
- - test/dummy/config/environments/test.rb
126
- - test/dummy/config/initializers/backtrace_silencers.rb
127
- - test/dummy/config/initializers/devise.rb
128
- - test/dummy/config/initializers/inflections.rb
129
- - test/dummy/config/initializers/mime_types.rb
130
- - test/dummy/config/initializers/secret_token.rb
131
- - test/dummy/config/initializers/session_store.rb
132
- - test/dummy/config/initializers/tuttle.rb
133
- - test/dummy/config/initializers/wrap_parameters.rb
134
- - test/dummy/config/locales/en.yml
135
- - test/dummy/config/routes.rb
136
- - test/dummy/db/migrate/20141229204528_devise_create_users.rb
137
- - test/dummy/db/schema.rb
138
- - test/dummy/public/404.html
139
- - test/dummy/public/422.html
140
- - test/dummy/public/500.html
141
- - test/dummy/public/favicon.ico
142
- - test/dummy/script/rails
143
- - test/dummy/test/fixtures/users.yml
144
- - test/dummy/test/models/user_test.rb
145
- - test/dummy/tmp/cache/assets/test/sprockets/00091e0cb6df543a8e704290f4dec8db
146
- - test/dummy/tmp/cache/assets/test/sprockets/11599cd5b5d6a0a58a5e98c0902e1997
147
- - test/dummy/tmp/cache/assets/test/sprockets/9b2e26c1e54d4ff5ae04270e8f03907f
148
- - test/dummy/tmp/cache/assets/test/sprockets/a65793481a75afa9f660d1032ee66ef5
149
- - test/dummy/tmp/cache/assets/test/sprockets/d9450766086a9f3f994e8c4a2273bfaa
150
- - test/dummy/tmp/cache/assets/test/sprockets/e117b0425a7b9daef8a213c1a2203f00
151
- - test/integration/navigation_test.rb
152
- - test/test_helper.rb
153
- - test/tuttle_test.rb
154
- - test/unit/tuttle/note_test.rb
155
110
  homepage: https://github.com/dgynn/tuttle
156
111
  licenses:
157
112
  - MIT
@@ -164,7 +119,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
164
119
  requirements:
165
120
  - - ">="
166
121
  - !ruby/object:Gem::Version
167
- version: 1.9.3
122
+ version: 2.0.0
168
123
  required_rubygems_version: !ruby/object:Gem::Requirement
169
124
  requirements:
170
125
  - - ">="
@@ -172,59 +127,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
172
127
  version: '0'
173
128
  requirements: []
174
129
  rubyforge_project:
175
- rubygems_version: 2.4.5
130
+ rubygems_version: 2.4.6
176
131
  signing_key:
177
132
  specification_version: 4
178
133
  summary: Tuttle for Rails
179
- test_files:
180
- - test/controllers/tuttle/cancancan_controller_test.rb
181
- - test/controllers/tuttle/devise_controller_test.rb
182
- - test/controllers/tuttle/home_controller_test.rb
183
- - test/controllers/tuttle/rails_controller_test.rb
184
- - test/controllers/tuttle/ruby_controller_test.rb
185
- - test/dummy/app/assets/javascripts/application.js
186
- - test/dummy/app/assets/stylesheets/application.css
187
- - test/dummy/app/controllers/application_controller.rb
188
- - test/dummy/app/helpers/application_helper.rb
189
- - test/dummy/app/models/ability.rb
190
- - test/dummy/app/models/user.rb
191
- - test/dummy/app/views/layouts/application.html.erb
192
- - test/dummy/config/application.rb
193
- - test/dummy/config/boot.rb
194
- - test/dummy/config/database.yml
195
- - test/dummy/config/environment.rb
196
- - test/dummy/config/environments/development.rb
197
- - test/dummy/config/environments/test.rb
198
- - test/dummy/config/initializers/backtrace_silencers.rb
199
- - test/dummy/config/initializers/devise.rb
200
- - test/dummy/config/initializers/inflections.rb
201
- - test/dummy/config/initializers/mime_types.rb
202
- - test/dummy/config/initializers/secret_token.rb
203
- - test/dummy/config/initializers/session_store.rb
204
- - test/dummy/config/initializers/tuttle.rb
205
- - test/dummy/config/initializers/wrap_parameters.rb
206
- - test/dummy/config/locales/en.yml
207
- - test/dummy/config/routes.rb
208
- - test/dummy/config.ru
209
- - test/dummy/db/migrate/20141229204528_devise_create_users.rb
210
- - test/dummy/db/schema.rb
211
- - test/dummy/Gemfile.lock
212
- - test/dummy/public/404.html
213
- - test/dummy/public/422.html
214
- - test/dummy/public/500.html
215
- - test/dummy/public/favicon.ico
216
- - test/dummy/Rakefile
217
- - test/dummy/README.rdoc
218
- - test/dummy/script/rails
219
- - test/dummy/test/fixtures/users.yml
220
- - test/dummy/test/models/user_test.rb
221
- - test/dummy/tmp/cache/assets/test/sprockets/00091e0cb6df543a8e704290f4dec8db
222
- - test/dummy/tmp/cache/assets/test/sprockets/11599cd5b5d6a0a58a5e98c0902e1997
223
- - test/dummy/tmp/cache/assets/test/sprockets/9b2e26c1e54d4ff5ae04270e8f03907f
224
- - test/dummy/tmp/cache/assets/test/sprockets/a65793481a75afa9f660d1032ee66ef5
225
- - test/dummy/tmp/cache/assets/test/sprockets/d9450766086a9f3f994e8c4a2273bfaa
226
- - test/dummy/tmp/cache/assets/test/sprockets/e117b0425a7b9daef8a213c1a2203f00
227
- - test/integration/navigation_test.rb
228
- - test/test_helper.rb
229
- - test/tuttle_test.rb
230
- - test/unit/tuttle/note_test.rb
134
+ test_files: []
@@ -1,56 +0,0 @@
1
- body { background-color: #fff; color: #333; }
2
-
3
- body, p, ol, ul, td {
4
- font-family: verdana, arial, helvetica, sans-serif;
5
- font-size: 13px;
6
- line-height: 18px;
7
- }
8
-
9
- pre {
10
- background-color: #eee;
11
- padding: 10px;
12
- font-size: 11px;
13
- }
14
-
15
- a { color: #000; }
16
- a:visited { color: #666; }
17
- a:hover { color: #fff; background-color:#000; }
18
-
19
- div.field, div.actions {
20
- margin-bottom: 10px;
21
- }
22
-
23
- #notice {
24
- color: green;
25
- }
26
-
27
- .field_with_errors {
28
- padding: 2px;
29
- background-color: red;
30
- display: table;
31
- }
32
-
33
- #error_explanation {
34
- width: 450px;
35
- border: 2px solid red;
36
- padding: 7px;
37
- padding-bottom: 0;
38
- margin-bottom: 20px;
39
- background-color: #f0f0f0;
40
- }
41
-
42
- #error_explanation h2 {
43
- text-align: left;
44
- font-weight: bold;
45
- padding: 5px 5px 5px 15px;
46
- font-size: 12px;
47
- margin: -7px;
48
- margin-bottom: 0px;
49
- background-color: #c00;
50
- color: #fff;
51
- }
52
-
53
- #error_explanation ul li {
54
- font-size: 12px;
55
- list-style: square;
56
- }