themes_on_rails 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +17 -11
  3. data/Rakefile +2 -2
  4. data/lib/generators/themes_on_rails/templates/layout.html.liquid +14 -0
  5. data/lib/generators/themes_on_rails/theme_generator.rb +10 -1
  6. data/lib/themes_on_rails.rb +9 -6
  7. data/lib/themes_on_rails/action_controller.rb +10 -5
  8. data/lib/themes_on_rails/engine.rb +23 -1
  9. data/lib/themes_on_rails/version.rb +2 -2
  10. data/spec/dummy/app/controllers/posts_controller.rb +1 -1
  11. data/spec/dummy/app/themes/{basic_blue/assets/javascripts/basic_blue → theme_a/assets/javascripts/theme_a}/all.js +0 -0
  12. data/spec/dummy/app/themes/{basic_blue/assets/stylesheets/basic_blue → theme_a/assets/stylesheets/theme_a}/all.css +0 -0
  13. data/spec/dummy/app/themes/theme_a/views/layouts/theme_a.html.haml +9 -0
  14. data/spec/dummy/app/themes/{basic_blue → theme_a}/views/posts/_form.html.erb +0 -0
  15. data/spec/dummy/app/themes/{basic_blue → theme_a}/views/posts/edit.html.erb +1 -1
  16. data/spec/dummy/app/themes/{basic_blue → theme_a}/views/posts/index.html.erb +1 -1
  17. data/spec/dummy/app/themes/{basic_blue → theme_a}/views/posts/new.html.erb +1 -1
  18. data/spec/dummy/app/themes/{basic_blue → theme_a}/views/posts/show.html.erb +1 -1
  19. data/spec/dummy/app/themes/{professional_blue/assets/javascripts/professional_blue → theme_b/assets/javascripts/theme_b}/all.js +0 -0
  20. data/spec/dummy/app/themes/{professional_blue/assets/stylesheets/professional_blue → theme_b/assets/stylesheets/theme_b}/all.css +0 -0
  21. data/spec/dummy/app/themes/theme_b/views/layouts/alternate_theme_b.html.haml +9 -0
  22. data/spec/dummy/app/themes/theme_b/views/layouts/theme_b.html.haml +9 -0
  23. data/spec/dummy/app/themes/{professional_blue → theme_b}/views/posts/_form.html.erb +0 -0
  24. data/spec/dummy/app/themes/{professional_blue → theme_b}/views/posts/edit.html.erb +1 -1
  25. data/spec/dummy/app/themes/{professional_blue → theme_b}/views/posts/index.html.erb +2 -2
  26. data/spec/dummy/app/themes/{professional_blue → theme_b}/views/posts/new.html.erb +1 -1
  27. data/spec/dummy/app/themes/{professional_blue → theme_b}/views/posts/show.html.erb +1 -1
  28. data/spec/dummy/app/themes/theme_c/assets/images/theme_c/1.jpg +0 -0
  29. data/spec/dummy/app/themes/theme_c/assets/javascripts/theme_c/all.js +7 -0
  30. data/spec/dummy/app/themes/theme_c/assets/stylesheets/theme_c/all.css +9 -0
  31. data/spec/dummy/app/themes/theme_c/locales/en.yml +4 -0
  32. data/spec/dummy/app/themes/theme_c/locales/km.yml +4 -0
  33. data/spec/dummy/app/themes/theme_c/views/layouts/theme_c.liquid +11 -0
  34. data/spec/dummy/app/themes/theme_c/views/posts/_partial.liquid +1 -0
  35. data/spec/dummy/app/themes/theme_c/views/posts/index.liquid +3 -0
  36. data/spec/dummy/log/development.log +275 -0
  37. data/spec/dummy/log/test.log +1897 -0
  38. data/spec/dummy/spec/controllers/posts_controller_spec.rb +37 -17
  39. data/spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  40. data/spec/dummy/tmp/cache/assets/development/sprockets/1e8f75a6b5b33970fb8e397347caa0a1 +0 -0
  41. data/spec/dummy/tmp/cache/assets/development/sprockets/1fd9ad217474bbaee0fa43a1497b4126 +0 -0
  42. data/spec/dummy/tmp/cache/assets/development/sprockets/24204f742af588c8166d3160b500d20f +0 -0
  43. data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  44. data/spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  45. data/spec/dummy/tmp/cache/assets/development/sprockets/371bf96e99717688ed7313a0c53f4212 +0 -0
  46. data/spec/dummy/tmp/cache/assets/development/sprockets/416150dc3ac35079c94273cc46e90aa6 +0 -0
  47. data/spec/dummy/tmp/cache/assets/development/sprockets/510da110ae528e2d22533be39ff696c5 +0 -0
  48. data/spec/dummy/tmp/cache/assets/development/sprockets/5384ad85f52d3272dbc64d46ef3876a4 +0 -0
  49. data/spec/dummy/tmp/cache/assets/development/sprockets/6fc757c2c8329244ca95d6909865bbc2 +0 -0
  50. data/spec/dummy/tmp/cache/assets/development/sprockets/76032e6eabf40d365a1dae7dccb36a39 +0 -0
  51. data/spec/dummy/tmp/cache/assets/development/sprockets/7dc53503f61ca13fc175ac459f52ae6c +0 -0
  52. data/spec/dummy/tmp/cache/assets/development/sprockets/83e0f4bbef733c177f077762a5225f69 +0 -0
  53. data/spec/dummy/tmp/cache/assets/development/sprockets/b2748190620f4b3edb4a2b4d7e9146c5 +0 -0
  54. data/spec/dummy/tmp/cache/assets/development/sprockets/c66b2f58de9cb0b261cc990107adb241 +0 -0
  55. data/spec/dummy/tmp/cache/assets/development/sprockets/c85016e7bbd4f3adbb7635d01f85d39b +0 -0
  56. data/spec/dummy/tmp/cache/assets/development/sprockets/c9c47e931d0f7e4959ed2a882fb2ebe8 +0 -0
  57. data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  58. data/spec/dummy/tmp/cache/assets/development/sprockets/d066c004d1fd26ae76a61303a7a18145 +0 -0
  59. data/spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  60. data/spec/dummy/tmp/cache/assets/development/sprockets/dcd26efc7d0c0fd3e246f9cc1391c537 +0 -0
  61. data/spec/dummy/tmp/cache/assets/development/sprockets/e4af50439f4554f9b82ec9cbb6e5463f +0 -0
  62. data/spec/dummy/tmp/cache/assets/development/sprockets/ef18888e878b0844df17b3a647806b8a +0 -0
  63. data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  64. data/spec/dummy/tmp/cache/assets/development/sprockets/f97e9d28fcfdb3281202d537865677b9 +0 -0
  65. data/spec/dummy/tmp/cache/assets/development/sprockets/fa7e291abdc6c5f378253d3683b11427 +0 -0
  66. data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  67. data/spec/dummy/tmp/cache/assets/test/sprockets/1fd9ad217474bbaee0fa43a1497b4126 +0 -0
  68. data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  69. data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  70. data/spec/dummy/tmp/cache/assets/test/sprockets/371bf96e99717688ed7313a0c53f4212 +0 -0
  71. data/spec/dummy/tmp/cache/assets/test/sprockets/416150dc3ac35079c94273cc46e90aa6 +0 -0
  72. data/spec/dummy/tmp/cache/assets/test/sprockets/5384ad85f52d3272dbc64d46ef3876a4 +0 -0
  73. data/spec/dummy/tmp/cache/assets/test/sprockets/6fc757c2c8329244ca95d6909865bbc2 +0 -0
  74. data/spec/dummy/tmp/cache/assets/test/sprockets/76032e6eabf40d365a1dae7dccb36a39 +0 -0
  75. data/spec/dummy/tmp/cache/assets/test/sprockets/7dc53503f61ca13fc175ac459f52ae6c +0 -0
  76. data/spec/dummy/tmp/cache/assets/test/sprockets/83e0f4bbef733c177f077762a5225f69 +0 -0
  77. data/spec/dummy/tmp/cache/assets/test/sprockets/b2748190620f4b3edb4a2b4d7e9146c5 +0 -0
  78. data/spec/dummy/tmp/cache/assets/test/sprockets/c66b2f58de9cb0b261cc990107adb241 +0 -0
  79. data/spec/dummy/tmp/cache/assets/test/sprockets/c85016e7bbd4f3adbb7635d01f85d39b +0 -0
  80. data/spec/dummy/tmp/cache/assets/test/sprockets/c9c47e931d0f7e4959ed2a882fb2ebe8 +0 -0
  81. data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  82. data/spec/dummy/tmp/cache/assets/test/sprockets/d066c004d1fd26ae76a61303a7a18145 +0 -0
  83. data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  84. data/spec/dummy/tmp/cache/assets/test/sprockets/dcd26efc7d0c0fd3e246f9cc1391c537 +0 -0
  85. data/spec/dummy/tmp/cache/assets/test/sprockets/e4af50439f4554f9b82ec9cbb6e5463f +0 -0
  86. data/spec/dummy/tmp/cache/assets/test/sprockets/ef18888e878b0844df17b3a647806b8a +0 -0
  87. data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  88. data/spec/dummy/tmp/cache/assets/test/sprockets/f97e9d28fcfdb3281202d537865677b9 +0 -0
  89. data/spec/dummy/tmp/cache/assets/test/sprockets/fa7e291abdc6c5f378253d3683b11427 +0 -0
  90. data/spec/generators/themes_on_rails/theme_generator_spec.rb +40 -21
  91. data/spec/lib/action_controller_spec.rb +10 -10
  92. data/spec/lib/controller_additions_spec.rb +2 -2
  93. data/spec/lib/engine_spec.rb +24 -0
  94. data/spec/spec_helper.rb +7 -4
  95. metadata +112 -40
  96. data/lib/themes_on_rails/railtie.rb +0 -23
  97. data/spec/dummy/app/themes/basic_blue/views/layouts/basic_blue.html.haml +0 -9
  98. data/spec/dummy/app/themes/professional_blue/views/layouts/professional_blue.html.haml +0 -9
  99. data/spec/lib/assets_path_spec.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 46cae1e328a153edc2cb2a213d8fd009dd476fc4
4
- data.tar.gz: 6700c9633d43c8e571274600171075f15635b321
3
+ metadata.gz: cc1a380f1cd3859cebf41216892c8d561aa114d7
4
+ data.tar.gz: 54d3d0cef98ea4dc5eefbd266bea07103150e14a
5
5
  SHA512:
6
- metadata.gz: 90a188c15b1c58cda00dceeb5e5ad673e56ddf52be0603b8bed73e261f4360591d30462c937098724359d4523828e104207681198f11e58ae9cbe1a5bbf2eb83
7
- data.tar.gz: fce31d924778ab184900592b2f99bddb862a7da3a5cb19f8d97832f0193ab257e7c4fab1576d65738344f5f9ed74f49d3b9185199ab3ed21f343236c9a5781a5
6
+ metadata.gz: eaff4d845036654f4ea603438e775326a9de5a8418339b856c5fd63295fc1610762d073c2fa7fb61525a4ec661c0eb9eeffaa1ee1ab1771773af989fbecc5f46
7
+ data.tar.gz: 19b659e7a3c018cddc2363805faa2a952f3d82ae5c8ebc5ce34015282cfcbc2dfde749a8d39264b9ae8cf9e73022aa2c6a0624f225e39137bbf2188815f6b7f4
data/README.md CHANGED
@@ -6,7 +6,11 @@ The simplest way to install is to use Bundler.
6
6
 
7
7
  Add this gem to your Gemfile:
8
8
 
9
- gem "themes_on_rails"
9
+ gem 'themes_on_rails'
10
+
11
+ If you want to use `themes_on_rails` with `liquid` template, add one more gem to your Gemfile:
12
+
13
+ gem 'liquid-rails'
10
14
 
11
15
  Then, use Bundler to install the gem and its dependencies:
12
16
 
@@ -14,10 +18,11 @@ Then, use Bundler to install the gem and its dependencies:
14
18
 
15
19
  ## Usage
16
20
 
17
- A theme is composed of two things:
21
+ A theme is composed of three things:
18
22
 
19
- 1. Views: templates and layouts (erb, haml, or other template engines)
20
- 2. Assets: images, javascripts, stylesheets
23
+ 1. Assets: images, javascripts, stylesheets
24
+ 2. Views: templates and layouts (erb, haml, or other template engines)
25
+ 3. Locales: locales files if any
21
26
 
22
27
  ### Generator
23
28
 
@@ -41,6 +46,7 @@ app/
41
46
  views/
42
47
  layouts/
43
48
  [theme_name].html.erb
49
+ locales/
44
50
  </pre>
45
51
 
46
52
  After you invoke the above command, make sure you restart your rails process.
@@ -48,9 +54,9 @@ After you invoke the above command, make sure you restart your rails process.
48
54
  It's best advisable to namespace your assets directory so that it won't conflict with assets in other themes.
49
55
 
50
56
  ```ruby
51
- image_tag "professional_blue/logo.png" # => app/themes/professional_blue/assets/images/professional_blue/logo.png
52
- javascript_include_tag "professional_blue/all" # => app/themes/professional_blue/assets/javascripts/professional_blue/all.js
53
- stylesheet_link_tag "professional_blue/all" # => app/themes/professional_blue/assets/stylesheets/professional_blue/all.css
57
+ image_tag 'theme_a/logo.png' # => app/themes/theme_a/assets/images/theme_a/logo.png
58
+ javascript_include_tag 'theme_a/all' # => app/themes/theme_a/assets/javascripts/theme_a/all.js
59
+ stylesheet_link_tag 'theme_a/all' # => app/themes/theme_a/assets/stylesheets/theme_a/all.css
54
60
  ```
55
61
 
56
62
  There is an example app at https://github.com/chamnap/themes_on_rails_example.
@@ -61,7 +67,7 @@ You can set theme in your controllers by using the `theme` declaration. For exam
61
67
 
62
68
  ```ruby
63
69
  class HomeController < ApplicationController
64
- theme "basic"
70
+ theme 'basic'
65
71
 
66
72
  def index
67
73
  ...
@@ -84,7 +90,7 @@ class HomeController < ApplicationController
84
90
  private
85
91
 
86
92
  def theme_resolver
87
- params[:theme].presence || "professional"
93
+ params[:theme].presence || 'professional'
88
94
  end
89
95
  end
90
96
  ```
@@ -95,7 +101,7 @@ You can even use an inline method, such as a **Proc**, to determine the theme. F
95
101
 
96
102
  ```ruby
97
103
  class HomeController < ApplicationController
98
- theme Proc.new { |controller| params[:theme].presence || "professional" }
104
+ theme Proc.new { |controller| params[:theme].presence || 'professional' }
99
105
  end
100
106
  ```
101
107
 
@@ -103,7 +109,7 @@ Theme specified at the controller level support the `:only` and `:except` option
103
109
 
104
110
  ```ruby
105
111
  class HomeController < ApplicationController
106
- theme "basic", except: [:rss]
112
+ theme 'basic', except: [:rss]
107
113
  end
108
114
  ```
109
115
 
data/Rakefile CHANGED
@@ -42,7 +42,7 @@ end
42
42
  task :default => "spec:all"
43
43
 
44
44
  namespace :spec do
45
- %w(rails_41 rails_40 rails_32).each do |gemfile|
45
+ %w(rails_42 rails_41 rails_40 rails_32).each do |gemfile|
46
46
  desc "Run Tests against #{gemfile}"
47
47
  task gemfile do
48
48
  sh "BUNDLE_GEMFILE='gemfiles/#{gemfile}.gemfile' bundle --quiet"
@@ -52,7 +52,7 @@ namespace :spec do
52
52
 
53
53
  desc "Run Tests against rails versions"
54
54
  task :all do
55
- %w(rails_41 rails_40 rails_32).each do |gemfile|
55
+ %w(rails_42 rails_41 rails_40 rails_32).each do |gemfile|
56
56
  sh "BUNDLE_GEMFILE='gemfiles/#{gemfile}.gemfile' bundle --quiet"
57
57
  sh "BUNDLE_GEMFILE='gemfiles/#{gemfile}.gemfile' bundle exec rake spec"
58
58
  end
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%= theme_name.humanize %></title>
5
+ {{ '<%= "#{theme_name}/all" %>' | asset_path | javascript_include_tag }}
6
+ {{ '<%= "#{theme_name}/all" %>' | asset_path | stylesheet_link_tag }}
7
+ {% csrf_meta_tags %}
8
+ </head>
9
+ <body>
10
+
11
+ {{ content_for_layout }}
12
+
13
+ </body>
14
+ </html>
@@ -10,7 +10,9 @@ module ThemesOnRails
10
10
  empty_directory theme_images_directory
11
11
  empty_directory theme_javascripts_directory
12
12
  empty_directory theme_stylesheets_directory
13
+ empty_directory theme_locales_directory
13
14
  create_file "#{theme_images_directory}/.gitkeep", nil
15
+ create_file "#{theme_locales_directory}/.gitkeep", nil
14
16
  end
15
17
 
16
18
  def copy_manifest_files
@@ -19,7 +21,10 @@ module ThemesOnRails
19
21
  end
20
22
 
21
23
  def copy_layout_file
22
- if Rails.configuration.app_generators.rails[:template_engine] == :haml
24
+ template_engine = Rails.configuration.app_generators.rails[:template_engine]
25
+ if template_engine == :liquid
26
+ template "layout.html.liquid", "#{theme_views_layout}/#{theme_name}.liquid"
27
+ elsif template_engine == :haml
23
28
  template "layout.html.haml", "#{theme_views_layout}/#{theme_name}.html.haml"
24
29
  else
25
30
  template "layout.html.erb", "#{theme_views_layout}/#{theme_name}.html.erb"
@@ -47,6 +52,10 @@ module ThemesOnRails
47
52
  def theme_stylesheets_directory
48
53
  "#{theme_directory}/assets/stylesheets/#{theme_name}"
49
54
  end
55
+
56
+ def theme_locales_directory
57
+ "#{theme_directory}/locales"
58
+ end
50
59
  end
51
60
  end
52
61
  end
@@ -1,9 +1,12 @@
1
- require "themes_on_rails/version"
2
- require "active_support/concern"
1
+ require 'themes_on_rails/version'
2
+ require 'themes_on_rails/engine'
3
+ require 'active_support/concern'
3
4
 
4
5
  module ThemesOnRails
5
- autoload :ActionController, "themes_on_rails/action_controller"
6
- autoload :ControllerAdditions, "themes_on_rails/controller_additions"
7
- end
6
+ autoload :ActionController, 'themes_on_rails/action_controller'
7
+ autoload :ControllerAdditions, 'themes_on_rails/controller_additions'
8
8
 
9
- require "themes_on_rails/railtie" if defined?(Rails)
9
+ def self.all
10
+ Dir.entries('app/themes').sort[2..-1]
11
+ end
12
+ end
@@ -9,14 +9,19 @@ module ThemesOnRails
9
9
 
10
10
  controller_class.send(filter_method, options) do |controller|
11
11
 
12
- # initialize
13
- instance = ThemesOnRails::ActionController.new(controller, theme)
14
-
15
12
  # set layout
16
- controller_class.layout(instance.theme_name, options)
13
+ controller_class.layout Proc.new { |controller|
14
+ ThemesOnRails::ActionController.new(controller, theme).theme_name
15
+ }, options
16
+
17
+ # initialize
18
+ theme_instance = ThemesOnRails::ActionController.new(controller, theme)
17
19
 
18
20
  # prepend view path
19
- controller.prepend_view_path instance.theme_view_path
21
+ controller.prepend_view_path theme_instance.theme_view_path
22
+
23
+ # liquid file system
24
+ Liquid::Template.file_system = Liquid::Rails::FileSystem.new(theme_instance.theme_view_path) if defined?(Liquid::Rails)
20
25
  end
21
26
  end
22
27
 
@@ -1,6 +1,28 @@
1
- require "rails/generators"
1
+ require 'rails/generators'
2
2
 
3
3
  module ThemesOnRails
4
4
  class Engine < ::Rails::Engine
5
+ initializer 'themes_on_rails.action_controller' do |app|
6
+ ActiveSupport.on_load :action_controller do
7
+ include ThemesOnRails::ControllerAdditions
8
+ end
9
+ end
10
+
11
+ initializer 'themes_on_rails.load_locales' do |app|
12
+ app.config.i18n.default_locale = :en
13
+ app.config.i18n.load_path += Dir[Rails.root.join('app/themes/*', 'locales', '**', '*.yml').to_s]
14
+ end
15
+
16
+ initializer 'themes_on_rails.assets_path' do |app|
17
+ Dir.glob("#{Rails.root}/app/themes/*/assets/*").each do |dir|
18
+ app.config.assets.paths << dir
19
+ end
20
+ end
21
+
22
+ initializer 'themes_on_rails.precompile' do |app|
23
+ app.config.assets.precompile += [ Proc.new { |path, fn| fn =~ /app\/themes/ && !%w(.js .css).include?(File.extname(path)) } ]
24
+ app.config.assets.precompile += Dir['app/themes/*'].map { |path| "#{path.split('/').last}/all.js" }
25
+ app.config.assets.precompile += Dir['app/themes/*'].map { |path| "#{path.split('/').last}/all.css" }
26
+ end
5
27
  end
6
28
  end
@@ -1,3 +1,3 @@
1
1
  module ThemesOnRails
2
- VERSION = "0.2.2"
3
- end
2
+ VERSION = '0.3.0'
3
+ end
@@ -63,6 +63,6 @@ class PostsController < ApplicationController
63
63
  end
64
64
 
65
65
  def theme_resolver
66
- params[:theme].presence || "basic_blue"
66
+ params[:theme].presence || "theme_a"
67
67
  end
68
68
  end
@@ -0,0 +1,9 @@
1
+ !!!
2
+ %html
3
+ %head
4
+ %title Theme A
5
+ = stylesheet_link_tag "theme_a/all", media: "all", "data-turbolinks-track" => true
6
+ = javascript_include_tag "theme_a/all", "data-turbolinks-track" => true
7
+ = csrf_meta_tags
8
+ %body
9
+ = yield
@@ -1,4 +1,4 @@
1
- <h1>Editing post: basic_blue</h1>
1
+ <h1>Editing post: theme_a</h1>
2
2
 
3
3
  <%= render 'form' %>
4
4
 
@@ -1,4 +1,4 @@
1
- <h1>Listing posts: basic_blue</h1>
1
+ <h1>Listing posts: theme_a</h1>
2
2
 
3
3
  <table>
4
4
  <thead>
@@ -1,4 +1,4 @@
1
- <h1>New post: basic_blue</h1>
1
+ <h1>New post: theme_a</h1>
2
2
 
3
3
  <%= render 'form' %>
4
4
 
@@ -1,5 +1,5 @@
1
1
  <p id="notice"><%= notice %></p>
2
- <h1>Post: <%= @post.id %> basic_blue</h1>
2
+ <h1>Post: <%= @post.id %> theme_a</h1>
3
3
 
4
4
  <p>
5
5
  <strong>Title:</strong>
@@ -0,0 +1,9 @@
1
+ !!!
2
+ %html
3
+ %head
4
+ %title Alternate Theme B
5
+ = stylesheet_link_tag "theme_b/all", media: "all", "data-turbolinks-track" => true
6
+ = javascript_include_tag "theme_b/all", "data-turbolinks-track" => true
7
+ = csrf_meta_tags
8
+ %body
9
+ = yield
@@ -0,0 +1,9 @@
1
+ !!!
2
+ %html
3
+ %head
4
+ %title Theme B
5
+ = stylesheet_link_tag "theme_b/all", media: "all", "data-turbolinks-track" => true
6
+ = javascript_include_tag "theme_b/all", "data-turbolinks-track" => true
7
+ = csrf_meta_tags
8
+ %body
9
+ = yield
@@ -1,4 +1,4 @@
1
- <h1>Editing post: professional_blue</h1>
1
+ <h1>Editing post: theme_b</h1>
2
2
 
3
3
  <%= render 'form' %>
4
4
 
@@ -1,4 +1,4 @@
1
- <h1>Listing posts: professional_blue</h1>
1
+ <h1>Listing posts: theme_b</h1>
2
2
 
3
3
  <table>
4
4
  <thead>
@@ -26,4 +26,4 @@
26
26
 
27
27
  <br>
28
28
 
29
- <%= link_to 'New Post', new_post_path %>
29
+ <%= link_to 'New Post', new_post_path %>
@@ -1,4 +1,4 @@
1
- <h1>New post: professional_blue</h1>
1
+ <h1>New post: theme_b</h1>
2
2
 
3
3
  <%= render 'form' %>
4
4
 
@@ -1,5 +1,5 @@
1
1
  <p id="notice"><%= notice %></p>
2
- <h1>Post: <%= @post.id %> professional_blue</h1>
2
+ <h1>Post: <%= @post.id %> theme_b</h1>
3
3
 
4
4
  <p>
5
5
  <strong>Title:</strong>
@@ -0,0 +1,7 @@
1
+ // This is a manifest file that'll be compiled into including all the files listed below.
2
+ // Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
3
+ // be included in the compiled file accessible from http://example.com/assets/application.js
4
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
5
+ // the compiled file.
6
+ //
7
+ //= require_tree .
@@ -0,0 +1,9 @@
1
+ /*
2
+ * This is a manifest file that'll automatically include all the stylesheets available in this directory
3
+ * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
4
+ * the top of the compiled file, but it's generally better to create a new file per style scope.
5
+ *
6
+
7
+ *= require_self
8
+ *= require_tree .
9
+ */
@@ -0,0 +1,4 @@
1
+ en:
2
+ theme_c:
3
+ links:
4
+ home: 'Home'
@@ -0,0 +1,4 @@
1
+ km:
2
+ theme_c:
3
+ links:
4
+ home: 'ទំព័រដើម'
@@ -0,0 +1,11 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Theme C</title>
5
+ <link href="/assets/theme_c/all.css?body=1" media="all" rel="stylesheet" />
6
+ <script src="/assets/theme_c/all.js?body=1"></script>
7
+ </head>
8
+ <body>
9
+ {{ content_for_layout }}
10
+ </body>
11
+ </html>
@@ -0,0 +1,3 @@
1
+ <h1>Listing posts: theme_c</h1>
2
+
3
+ {% include 'partial' %}
@@ -2113,3 +2113,278 @@ Processing by PostsController#index as HTML
2113
2113
  Parameters: {"theme"=>"theme_c"}
2114
2114
  Rendered app/themes/theme_c/views/posts/index.liquid within layouts/theme_c (2593.2ms)
2115
2115
  Completed 200 OK in 2597ms (Views: 2595.4ms | ActiveRecord: 0.0ms)
2116
+
2117
+
2118
+ Started GET "/posts?theme=theme_b" for 127.0.0.1 at 2014-08-31 10:44:44 +0700
2119
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
2120
+ Processing by PostsController#index as HTML
2121
+ Parameters: {"theme"=>"theme_b"}
2122
+ Post Load (0.2ms) SELECT "posts".* FROM "posts"
2123
+ Rendered app/themes/theme_b/views/posts/index.html.erb within layouts/theme_b (8.7ms)
2124
+ Completed 200 OK in 42ms (Views: 39.5ms | ActiveRecord: 0.4ms)
2125
+
2126
+
2127
+ Started GET "/posts?theme=theme_b" for 127.0.0.1 at 2014-08-31 10:44:56 +0700
2128
+ Processing by PostsController#index as HTML
2129
+ Parameters: {"theme"=>"theme_b"}
2130
+ Post Load (0.2ms) SELECT "posts".* FROM "posts"
2131
+ Rendered app/themes/theme_b/views/posts/index.html.erb within layouts/theme_b (2.4ms)
2132
+ Completed 200 OK in 8ms (Views: 6.8ms | ActiveRecord: 0.2ms)
2133
+
2134
+
2135
+ Started GET "/posts?theme=theme_b" for 127.0.0.1 at 2014-08-31 10:45:06 +0700
2136
+ Processing by PostsController#index as HTML
2137
+ Parameters: {"theme"=>"theme_b"}
2138
+ Post Load (0.3ms) SELECT "posts".* FROM "posts"
2139
+ Rendered app/themes/theme_b/views/posts/index.html.erb within layouts/theme_b (35633.6ms)
2140
+ Completed 200 OK in 35640ms (Views: 35637.8ms | ActiveRecord: 0.5ms)
2141
+
2142
+
2143
+ Started GET "/posts?theme=theme_b" for 127.0.0.1 at 2014-08-31 10:49:52 +0700
2144
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
2145
+ Processing by PostsController#index as HTML
2146
+ Parameters: {"theme"=>"theme_b"}
2147
+ Post Load (0.2ms) SELECT "posts".* FROM "posts"
2148
+ Rendered app/themes/theme_b/views/posts/index.html.erb within layouts/theme_b (2248.7ms)
2149
+ Completed 200 OK in 2272ms (Views: 2270.2ms | ActiveRecord: 0.4ms)
2150
+
2151
+
2152
+ Started GET "/posts?theme=theme_b" for 127.0.0.1 at 2014-08-31 10:50:23 +0700
2153
+ Processing by PostsController#index as HTML
2154
+ Parameters: {"theme"=>"theme_b"}
2155
+ Post Load (0.3ms) SELECT "posts".* FROM "posts"
2156
+ Rendered app/themes/theme_b/views/posts/index.html.erb within layouts/theme_b (11.8ms)
2157
+ Completed 500 Internal Server Error in 15ms
2158
+
2159
+ ActionView::Template::Error (undefined method `layout' for #<PostsController:0x00000109011418>):
2160
+ 1: <% layout "alternate_theme_b" %>
2161
+ 2: <h1>Listing posts: theme_b</h1>
2162
+ 3:
2163
+ 4: <table>
2164
+ app/helpers/application_helper.rb:4:in `layout'
2165
+ app/themes/theme_b/views/posts/index.html.erb:1:in `_app_themes_theme_b_views_posts_index_html_erb___3132814655389985418_2218899260'
2166
+
2167
+
2168
+ Rendered /Users/chamnapchhorn/.rvm/gems/ruby-2.1.1@themes_on_rails/gems/actionpack-4.0.9/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.5ms)
2169
+ Rendered /Users/chamnapchhorn/.rvm/gems/ruby-2.1.1@themes_on_rails/gems/actionpack-4.0.9/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.3ms)
2170
+ Rendered /Users/chamnapchhorn/.rvm/gems/ruby-2.1.1@themes_on_rails/gems/actionpack-4.0.9/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (14.9ms)
2171
+
2172
+
2173
+ Started GET "/posts?theme=theme_b" for 127.0.0.1 at 2014-08-31 10:50:40 +0700
2174
+ Processing by PostsController#index as HTML
2175
+ Parameters: {"theme"=>"theme_b"}
2176
+ Post Load (0.3ms) SELECT "posts".* FROM "posts"
2177
+ Rendered app/themes/theme_b/views/posts/index.html.erb within layouts/theme_b (6.7ms)
2178
+ Completed 200 OK in 12ms (Views: 10.3ms | ActiveRecord: 0.5ms)
2179
+
2180
+
2181
+ Started GET "/posts?theme=theme_b" for 127.0.0.1 at 2014-08-31 20:37:07 +0700
2182
+ ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
2183
+ Processing by PostsController#index as HTML
2184
+ Parameters: {"theme"=>"theme_b"}
2185
+ Post Load (0.2ms) SELECT "posts".* FROM "posts"
2186
+ Rendered app/themes/theme_b/views/posts/index.html.erb within layouts/theme_b (12.8ms)
2187
+ Completed 500 Internal Server Error in 22ms
2188
+
2189
+ ActionView::Template::Error (Missing template /alternate_theme_b with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :liquid, :haml]}. Searched in:
2190
+ * "/Users/chamnapchhorn/workspace/me/themes_on_rails/spec/dummy/app/themes/theme_b/views"
2191
+ * "/Users/chamnapchhorn/workspace/me/themes_on_rails/spec/dummy/app/views"
2192
+ ):
2193
+ 28:
2194
+ 29: <%= link_to 'New Post', new_post_path %>
2195
+ 30:
2196
+ 31: <% render template: 'alternate_theme_b' %>
2197
+ app/themes/theme_b/views/posts/index.html.erb:31:in `_app_themes_theme_b_views_posts_index_html_erb___3478413334651172396_2169167160'
2198
+
2199
+
2200
+ Rendered /Users/chamnapchhorn/.rvm/gems/ruby-2.1.2@themes_on_rails/gems/actionpack-4.0.9/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.3ms)
2201
+ Rendered /Users/chamnapchhorn/.rvm/gems/ruby-2.1.2@themes_on_rails/gems/actionpack-4.0.9/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (12.7ms)
2202
+ Rendered /Users/chamnapchhorn/.rvm/gems/ruby-2.1.2@themes_on_rails/gems/actionpack-4.0.9/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (26.2ms)
2203
+
2204
+
2205
+ Started GET "/posts?theme=theme_b" for 127.0.0.1 at 2014-08-31 20:37:24 +0700
2206
+ Processing by PostsController#index as HTML
2207
+ Parameters: {"theme"=>"theme_b"}
2208
+ Post Load (0.1ms) SELECT "posts".* FROM "posts"
2209
+ Rendered app/themes/theme_b/views/layouts/alternate_theme_b.html.haml (12.3ms)
2210
+ Rendered app/themes/theme_b/views/posts/index.html.erb within layouts/theme_b (15.3ms)
2211
+ Completed 200 OK in 20ms (Views: 19.6ms | ActiveRecord: 0.1ms)
2212
+
2213
+
2214
+ Started GET "/posts?theme=theme_b" for 127.0.0.1 at 2014-08-31 20:39:08 +0700
2215
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
2216
+ Processing by PostsController#index as HTML
2217
+ Parameters: {"theme"=>"theme_b"}
2218
+ Post Load (0.2ms) SELECT "posts".* FROM "posts"
2219
+ Rendered app/themes/theme_b/views/posts/index.html.erb within layouts/theme_b (10.6ms)
2220
+ Completed 500 Internal Server Error in 18ms
2221
+
2222
+ ActionView::Template::Error (You invoked render but did not give any of :partial, :template, :inline, :file or :text option.):
2223
+ 28:
2224
+ 29: <%= link_to 'New Post', new_post_path %>
2225
+ 30:
2226
+ 31: <% render layout: 'layouts/alternate_theme_b' %>
2227
+ app/themes/theme_b/views/posts/index.html.erb:31:in `_app_themes_theme_b_views_posts_index_html_erb__3282318022896452278_2159088780'
2228
+
2229
+
2230
+ Rendered /Users/chamnapchhorn/.rvm/gems/ruby-2.1.2@themes_on_rails/gems/actionpack-4.0.9/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.1ms)
2231
+ Rendered /Users/chamnapchhorn/.rvm/gems/ruby-2.1.2@themes_on_rails/gems/actionpack-4.0.9/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (8.9ms)
2232
+ Rendered /Users/chamnapchhorn/.rvm/gems/ruby-2.1.2@themes_on_rails/gems/actionpack-4.0.9/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (17.5ms)
2233
+
2234
+
2235
+ Started GET "/posts?theme=theme_b" for 127.0.0.1 at 2014-08-31 20:43:11 +0700
2236
+ Processing by PostsController#index as HTML
2237
+ Parameters: {"theme"=>"theme_b"}
2238
+ Post Load (0.2ms) SELECT "posts".* FROM "posts"
2239
+ Rendered app/themes/theme_b/views/posts/index.html.erb within layouts/theme_b (972762.2ms)
2240
+ Completed 200 OK in 972778ms (Views: 972777.5ms | ActiveRecord: 0.2ms)
2241
+
2242
+
2243
+ Started GET "/posts?theme=theme_b" for 127.0.0.1 at 2014-09-01 16:22:17 +0700
2244
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
2245
+ Processing by PostsController#index as HTML
2246
+ Parameters: {"theme"=>"theme_b"}
2247
+ Post Load (0.4ms) SELECT "posts".* FROM "posts"
2248
+ Rendered app/themes/theme_b/views/posts/index.html.erb within layouts/theme_b (43969.3ms)
2249
+ Completed 200 OK in 44007ms (Views: 44003.9ms | ActiveRecord: 0.6ms)
2250
+
2251
+
2252
+ Started GET "/posts?theme=theme_a" for 127.0.0.1 at 2014-10-01 13:23:16 +0700
2253
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
2254
+ Processing by PostsController#index as HTML
2255
+ Parameters: {"theme"=>"theme_a"}
2256
+ Post Load (0.4ms) SELECT "posts".* FROM "posts"
2257
+ Rendered app/themes/theme_a/views/posts/index.html.erb within layouts/theme_a (7.2ms)
2258
+ Completed 200 OK in 37ms (Views: 35.2ms | ActiveRecord: 0.6ms)
2259
+
2260
+
2261
+ Started GET "/posts/new?theme=theme_a" for 127.0.0.1 at 2014-10-01 13:23:19 +0700
2262
+ Processing by PostsController#new as HTML
2263
+ Parameters: {"theme"=>"theme_a"}
2264
+ Completed 500 Internal Server Error in 8ms
2265
+
2266
+ ActionView::MissingTemplate (Missing template layouts/theme_a with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :liquid, :haml]}. Searched in:
2267
+ * "/Users/chamnapchhorn/workspace/me/themes_on_rails/spec/dummy/app/views"
2268
+ ):
2269
+ actionpack (4.0.9) lib/action_view/path_set.rb:46:in `find'
2270
+ actionpack (4.0.9) lib/action_view/lookup_context.rb:122:in `find'
2271
+ actionpack (4.0.9) lib/action_view/renderer/abstract_renderer.rb:18:in `find_template'
2272
+ actionpack (4.0.9) lib/action_view/renderer/template_renderer.rb:81:in `resolve_layout'
2273
+ actionpack (4.0.9) lib/action_view/renderer/template_renderer.rb:88:in `resolve_layout'
2274
+ actionpack (4.0.9) lib/action_view/renderer/template_renderer.rb:71:in `block in find_layout'
2275
+ actionpack (4.0.9) lib/action_view/lookup_context.rb:235:in `with_layout_format'
2276
+ actionpack (4.0.9) lib/action_view/renderer/abstract_renderer.rb:18:in `with_layout_format'
2277
+ actionpack (4.0.9) lib/action_view/renderer/template_renderer.rb:71:in `find_layout'
2278
+ actionpack (4.0.9) lib/action_view/renderer/template_renderer.rb:55:in `render_with_layout'
2279
+ actionpack (4.0.9) lib/action_view/renderer/template_renderer.rb:47:in `render_template'
2280
+ actionpack (4.0.9) lib/action_view/renderer/template_renderer.rb:17:in `render'
2281
+ actionpack (4.0.9) lib/action_view/renderer/renderer.rb:42:in `render_template'
2282
+ actionpack (4.0.9) lib/action_view/renderer/renderer.rb:23:in `render'
2283
+ actionpack (4.0.9) lib/abstract_controller/rendering.rb:127:in `_render_template'
2284
+ actionpack (4.0.9) lib/action_controller/metal/streaming.rb:219:in `_render_template'
2285
+ actionpack (4.0.9) lib/abstract_controller/rendering.rb:120:in `render_to_body'
2286
+ actionpack (4.0.9) lib/action_controller/metal/rendering.rb:33:in `render_to_body'
2287
+ actionpack (4.0.9) lib/action_controller/metal/renderers.rb:26:in `render_to_body'
2288
+ actionpack (4.0.9) lib/abstract_controller/rendering.rb:97:in `render'
2289
+ actionpack (4.0.9) lib/action_controller/metal/rendering.rb:16:in `render'
2290
+ actionpack (4.0.9) lib/action_controller/metal/instrumentation.rb:41:in `block (2 levels) in render'
2291
+ activesupport (4.0.9) lib/active_support/core_ext/benchmark.rb:12:in `block in ms'
2292
+ /Users/chamnapchhorn/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/benchmark.rb:294:in `realtime'
2293
+ activesupport (4.0.9) lib/active_support/core_ext/benchmark.rb:12:in `ms'
2294
+ actionpack (4.0.9) lib/action_controller/metal/instrumentation.rb:41:in `block in render'
2295
+ actionpack (4.0.9) lib/action_controller/metal/instrumentation.rb:84:in `cleanup_view_runtime'
2296
+ activerecord (4.0.9) lib/active_record/railties/controller_runtime.rb:25:in `cleanup_view_runtime'
2297
+ actionpack (4.0.9) lib/action_controller/metal/instrumentation.rb:40:in `render'
2298
+ actionpack (4.0.9) lib/action_controller/metal/implicit_render.rb:10:in `default_render'
2299
+ actionpack (4.0.9) lib/action_controller/metal/implicit_render.rb:5:in `send_action'
2300
+ actionpack (4.0.9) lib/abstract_controller/base.rb:189:in `process_action'
2301
+ actionpack (4.0.9) lib/action_controller/metal/rendering.rb:10:in `process_action'
2302
+ actionpack (4.0.9) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
2303
+ activesupport (4.0.9) lib/active_support/callbacks.rb:403:in `_run__3116017932879232968__process_action__callbacks'
2304
+ activesupport (4.0.9) lib/active_support/callbacks.rb:80:in `run_callbacks'
2305
+ actionpack (4.0.9) lib/abstract_controller/callbacks.rb:17:in `process_action'
2306
+ actionpack (4.0.9) lib/action_controller/metal/rescue.rb:29:in `process_action'
2307
+ actionpack (4.0.9) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
2308
+ activesupport (4.0.9) lib/active_support/notifications.rb:159:in `block in instrument'
2309
+ activesupport (4.0.9) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
2310
+ activesupport (4.0.9) lib/active_support/notifications.rb:159:in `instrument'
2311
+ actionpack (4.0.9) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
2312
+ actionpack (4.0.9) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
2313
+ activerecord (4.0.9) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
2314
+ actionpack (4.0.9) lib/abstract_controller/base.rb:136:in `process'
2315
+ actionpack (4.0.9) lib/abstract_controller/rendering.rb:44:in `process'
2316
+ actionpack (4.0.9) lib/action_controller/metal.rb:195:in `dispatch'
2317
+ actionpack (4.0.9) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
2318
+ actionpack (4.0.9) lib/action_controller/metal.rb:231:in `block in action'
2319
+ actionpack (4.0.9) lib/action_dispatch/routing/route_set.rb:82:in `call'
2320
+ actionpack (4.0.9) lib/action_dispatch/routing/route_set.rb:82:in `dispatch'
2321
+ actionpack (4.0.9) lib/action_dispatch/routing/route_set.rb:50:in `call'
2322
+ actionpack (4.0.9) lib/action_dispatch/journey/router.rb:71:in `block in call'
2323
+ actionpack (4.0.9) lib/action_dispatch/journey/router.rb:59:in `each'
2324
+ actionpack (4.0.9) lib/action_dispatch/journey/router.rb:59:in `call'
2325
+ actionpack (4.0.9) lib/action_dispatch/routing/route_set.rb:676:in `call'
2326
+ rack (1.5.2) lib/rack/etag.rb:23:in `call'
2327
+ rack (1.5.2) lib/rack/conditionalget.rb:25:in `call'
2328
+ rack (1.5.2) lib/rack/head.rb:11:in `call'
2329
+ actionpack (4.0.9) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
2330
+ actionpack (4.0.9) lib/action_dispatch/middleware/flash.rb:241:in `call'
2331
+ rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context'
2332
+ rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call'
2333
+ actionpack (4.0.9) lib/action_dispatch/middleware/cookies.rb:486:in `call'
2334
+ activerecord (4.0.9) lib/active_record/query_cache.rb:36:in `call'
2335
+ activerecord (4.0.9) lib/active_record/connection_adapters/abstract/connection_pool.rb:626:in `call'
2336
+ activerecord (4.0.9) lib/active_record/migration.rb:373:in `call'
2337
+ actionpack (4.0.9) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
2338
+ activesupport (4.0.9) lib/active_support/callbacks.rb:373:in `_run__1116644284162641061__call__callbacks'
2339
+ activesupport (4.0.9) lib/active_support/callbacks.rb:80:in `run_callbacks'
2340
+ actionpack (4.0.9) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
2341
+ actionpack (4.0.9) lib/action_dispatch/middleware/reloader.rb:64:in `call'
2342
+ actionpack (4.0.9) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
2343
+ actionpack (4.0.9) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
2344
+ actionpack (4.0.9) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
2345
+ railties (4.0.9) lib/rails/rack/logger.rb:38:in `call_app'
2346
+ railties (4.0.9) lib/rails/rack/logger.rb:20:in `block in call'
2347
+ activesupport (4.0.9) lib/active_support/tagged_logging.rb:68:in `block in tagged'
2348
+ activesupport (4.0.9) lib/active_support/tagged_logging.rb:26:in `tagged'
2349
+ activesupport (4.0.9) lib/active_support/tagged_logging.rb:68:in `tagged'
2350
+ railties (4.0.9) lib/rails/rack/logger.rb:20:in `call'
2351
+ quiet_assets (1.0.2) lib/quiet_assets.rb:18:in `call_with_quiet_assets'
2352
+ actionpack (4.0.9) lib/action_dispatch/middleware/request_id.rb:21:in `call'
2353
+ rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
2354
+ rack (1.5.2) lib/rack/runtime.rb:17:in `call'
2355
+ activesupport (4.0.9) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
2356
+ rack (1.5.2) lib/rack/lock.rb:17:in `call'
2357
+ actionpack (4.0.9) lib/action_dispatch/middleware/static.rb:64:in `call'
2358
+ rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
2359
+ railties (4.0.9) lib/rails/engine.rb:511:in `call'
2360
+ railties (4.0.9) lib/rails/application.rb:97:in `call'
2361
+ rack (1.5.2) lib/rack/content_length.rb:14:in `call'
2362
+ thin (1.6.1) lib/thin/connection.rb:82:in `block in pre_process'
2363
+ thin (1.6.1) lib/thin/connection.rb:80:in `catch'
2364
+ thin (1.6.1) lib/thin/connection.rb:80:in `pre_process'
2365
+ thin (1.6.1) lib/thin/connection.rb:55:in `process'
2366
+ thin (1.6.1) lib/thin/connection.rb:41:in `receive_data'
2367
+ eventmachine (1.0.3) lib/eventmachine.rb:187:in `run_machine'
2368
+ eventmachine (1.0.3) lib/eventmachine.rb:187:in `run'
2369
+ thin (1.6.1) lib/thin/backends/base.rb:73:in `start'
2370
+ thin (1.6.1) lib/thin/server.rb:162:in `start'
2371
+ rack (1.5.2) lib/rack/handler/thin.rb:16:in `run'
2372
+ rack (1.5.2) lib/rack/server.rb:264:in `start'
2373
+ railties (4.0.9) lib/rails/commands/server.rb:84:in `start'
2374
+ railties (4.0.9) lib/rails/commands.rb:76:in `block in <top (required)>'
2375
+ railties (4.0.9) lib/rails/commands.rb:71:in `tap'
2376
+ railties (4.0.9) lib/rails/commands.rb:71:in `<top (required)>'
2377
+ bin/rails:4:in `require'
2378
+ bin/rails:4:in `<main>'
2379
+
2380
+
2381
+ Rendered /Users/chamnapchhorn/.rvm/gems/ruby-2.1.2@themes_on_rails/gems/actionpack-4.0.9/lib/action_dispatch/middleware/templates/rescues/missing_template.erb within rescues/layout (0.6ms)
2382
+
2383
+
2384
+ Started GET "/posts/new?theme=theme_a" for 127.0.0.1 at 2014-10-01 13:25:01 +0700
2385
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
2386
+ Processing by PostsController#new as HTML
2387
+ Parameters: {"theme"=>"theme_a"}
2388
+ Rendered posts/_form.html.erb (31.9ms)
2389
+ Rendered posts/new.html.erb within layouts/application (39.8ms)
2390
+ Completed 200 OK in 78ms (Views: 76.2ms | ActiveRecord: 0.2ms)