lib/sections_rails.rb in sections_rails-0.1.1 vs lib/sections_rails.rb in sections_rails-0.2.0
- old
+ new
@@ -1,24 +1,33 @@
module SectionsRails
require "sections_rails/railtie" if defined?(Rails)
- def section name
+ def section combined_name
out = []
- filename = "#{Rails.root}/app/sections/#{name}/#{name}"
+ # Split the parameter into file name and directory name.
+ split_names = combined_name.to_s.split '/'
+ filename = split_names[-1]
+ directory = (split_names.size > 1 ? split_names[0..-2] : []).join '/'
+ directory += '/' if directory.size > 0
+
+ directory_path = "#{Rails.root}/app/sections/#{directory}#{filename}" # Directory of section: /app/sections/admin/logo
+ file_path = "#{directory_path}/#{filename}" # Base path of filename in section: /app/sections/admin/logo/logo
+
+
# Add assets of section when in dev mode.
if Rails.env != 'production'
- out << javascript_include_tag("#{name}/#{name}") if File.exists?("#{filename}.js") || File.exists?("#{filename}.js.coffee") || File.exists?("#{filename}.coffee")
- out << stylesheet_link_tag("#{name}/#{name}") if File.exists?("#{filename}.css") || File.exists?("#{filename}.css.scss") || File.exists?("#{filename}.css.sass") || File.exists?("#{filename}.scss") || File.exists?("#{filename}.sass")
+ out << javascript_include_tag("#{directory}#{filename}/#{filename}") if File.exists?("#{file_path}.js") || File.exists?("#{file_path}.js.coffee") || File.exists?("#{file_path}.coffee")
+ out << stylesheet_link_tag("#{directory}#{filename}/#{filename}") if File.exists?("#{file_path}.css") || File.exists?("#{file_path}.css.scss") || File.exists?("#{file_path}.css.sass") || File.exists?("#{file_path}.scss") || File.exists?("#{file_path}.sass")
end
# Render the section partial into the view.
- filename = "#{Rails.root}/app/sections/#{name}/_#{name}.html"
- if File.exists?("#{filename}.erb") || File.exists?("#{filename}.haml")
- out << render(:partial => "/../sections/#{name}/#{name}")
+ partial_path = "#{directory_path}/_#{filename}.html"
+ if File.exists?("#{partial_path}.erb") || File.exists?("#{partial_path}.haml")
+ out << render(:partial => "/../sections/#{directory}#{filename}/#{filename}")
else
- out << content_tag(:div, '', :class => name)
+ out << content_tag(:div, '', :class => filename)
end
out.join("\n").html_safe
end