themes_for_rails 0.4.3 → 0.5.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/.travis.yml +2 -0
- data/Gemfile.lock +40 -35
- data/README.textile +11 -235
- data/Rakefile +1 -0
- data/doc/README.textile +363 -0
- data/{REVIEW_NOTES → doc/REVIEW_NOTES} +0 -0
- data/{RMU_REVIEW → doc/RMU_REVIEW} +0 -0
- data/{TODO.textile → doc/TODO.textile} +0 -0
- data/lib/themes_for_rails.rb +7 -6
- data/lib/themes_for_rails/{controller_methods.rb → action_controller.rb} +15 -9
- data/lib/themes_for_rails/action_mailer.rb +22 -0
- data/lib/themes_for_rails/action_view.rb +59 -0
- data/lib/themes_for_rails/assets_controller.rb +12 -13
- data/lib/themes_for_rails/common_methods.rb +28 -10
- data/lib/themes_for_rails/config.rb +44 -7
- data/lib/themes_for_rails/interpolation.rb +11 -0
- data/lib/themes_for_rails/railtie.rb +13 -2
- data/lib/themes_for_rails/routes.rb +15 -4
- data/lib/themes_for_rails/url_helpers.rb +16 -12
- data/lib/themes_for_rails/version.rb +2 -1
- data/test/lib/{controller_methods_test.rb → action_controller_test.rb} +59 -9
- data/test/lib/{mailer_methods_test.rb → action_mailer_test.rb} +2 -1
- data/test/lib/action_view_test.rb +54 -0
- data/test/lib/assets_controller_test.rb +11 -2
- data/test/lib/common_methods_test.rb +12 -6
- data/test/lib/config_test.rb +3 -2
- data/test/lib/integration_test.rb +12 -0
- data/test/lib/routes_test.rb +3 -2
- data/test/lib/themes_for_rails_test.rb +3 -2
- data/test/support/extensions.rb +1 -0
- data/test/test_helper.rb +1 -0
- data/themes_for_rails.gemspec +1 -0
- metadata +44 -28
- data/lib/themes_for_rails/mailer_methods.rb +0 -21
- data/lib/themes_for_rails/view_helpers.rb +0 -51
- data/test/lib/view_helpers_test.rb +0 -38
@@ -1,21 +0,0 @@
|
|
1
|
-
module ThemesForRails
|
2
|
-
module MailerMethods
|
3
|
-
extend ActiveSupport::Concern
|
4
|
-
|
5
|
-
included do
|
6
|
-
alias_method_chain :mail, :theme
|
7
|
-
end
|
8
|
-
|
9
|
-
module InstanceMethods
|
10
|
-
|
11
|
-
def mail_with_theme(headers = {}, &block)
|
12
|
-
theme_opts = headers[:theme] || self.class.default[:theme]
|
13
|
-
theme(theme_opts) if theme_opts
|
14
|
-
|
15
|
-
mail_without_theme(headers, &block)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
ActiveSupport.on_load(:action_mailer) { include ThemesForRails::MailerMethods }
|
@@ -1,51 +0,0 @@
|
|
1
|
-
module ThemesForRails
|
2
|
-
module ViewHelpers
|
3
|
-
|
4
|
-
extend ActiveSupport::Concern
|
5
|
-
|
6
|
-
included do
|
7
|
-
include ThemesForRails::CommonMethods
|
8
|
-
end
|
9
|
-
module InstanceMethods
|
10
|
-
def current_theme_stylesheet_path(asset)
|
11
|
-
base_theme_stylesheet_path(:theme => self.theme_name, :asset => "#{asset}.css")
|
12
|
-
end
|
13
|
-
def current_theme_javascript_path(asset)
|
14
|
-
base_theme_javascript_path(:theme => self.theme_name, :asset => "#{asset}.js")
|
15
|
-
end
|
16
|
-
def current_theme_image_path(asset)
|
17
|
-
base_theme_image_path(:theme => self.theme_name, :asset => asset)
|
18
|
-
end
|
19
|
-
|
20
|
-
def theme_stylesheet_path(asset, new_theme_name = self.theme_name)
|
21
|
-
base_theme_stylesheet_path(:theme => new_theme_name, :asset => "#{asset}.css")
|
22
|
-
end
|
23
|
-
|
24
|
-
def theme_javascript_path(asset, new_theme_name = self.theme_name)
|
25
|
-
base_theme_javascript_path(:theme => new_theme_name, :asset => "#{asset}.js")
|
26
|
-
end
|
27
|
-
|
28
|
-
def theme_image_path(asset, new_theme_name = self.theme_name)
|
29
|
-
base_theme_image_path(:theme => new_theme_name, :asset => asset)
|
30
|
-
end
|
31
|
-
|
32
|
-
def theme_image_tag(source, options = {})
|
33
|
-
image_tag(theme_image_path(source), options)
|
34
|
-
end
|
35
|
-
|
36
|
-
def theme_javascript_include_tag(*files)
|
37
|
-
files.collect! {|file| theme_javascript_path(file) }
|
38
|
-
javascript_include_tag *files
|
39
|
-
end
|
40
|
-
|
41
|
-
def theme_stylesheet_link_tag(*files)
|
42
|
-
options = files.extract_options!
|
43
|
-
files.collect! {|file| theme_stylesheet_path(file) }
|
44
|
-
files << options
|
45
|
-
stylesheet_link_tag(*files)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
ActiveSupport.on_load(:action_view) { include ThemesForRails::ViewHelpers }
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require "test_helper"
|
2
|
-
|
3
|
-
module ThemesForRails
|
4
|
-
class ViewHelpersTest < ActionController::IntegrationTest
|
5
|
-
include ThemesForRails::ViewHelpers
|
6
|
-
|
7
|
-
include ActionView::Helpers::AssetTagHelper
|
8
|
-
include ERB::Util
|
9
|
-
include ActionView::Helpers::TagHelper
|
10
|
-
|
11
|
-
def theme_name
|
12
|
-
'default'
|
13
|
-
end
|
14
|
-
|
15
|
-
def config
|
16
|
-
@config ||= stub({:perform_caching => false, :asset_path => "/assets", :asset_host => ''})
|
17
|
-
end
|
18
|
-
|
19
|
-
should "provide path helpers for a given theme name" do
|
20
|
-
|
21
|
-
assert_equal "/themes/sometheme/stylesheets/style.css", theme_stylesheet_path('style', "sometheme")
|
22
|
-
assert_equal "/themes/sometheme/javascripts/app.js", theme_javascript_path('app', "sometheme")
|
23
|
-
assert_equal "/themes/sometheme/images/logo.png", theme_image_path('logo.png', "sometheme")
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
should 'delegate to stylesheet_link_tag' do
|
28
|
-
assert_match /media=.screen/, theme_stylesheet_link_tag('cuac.css')
|
29
|
-
end
|
30
|
-
|
31
|
-
should 'delegate options (lazy testing, I know)' do
|
32
|
-
assert_match /media=.print/, theme_stylesheet_link_tag('cuac.css', :media => 'print')
|
33
|
-
end
|
34
|
-
should 'delegate options in image_tag' do
|
35
|
-
assert_match /width=.40/, theme_image_tag('image.css', :size => '40x50')
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|