lib/sections_rails.rb in sections_rails-0.6.1 vs lib/sections_rails.rb in sections_rails-0.6.2
- old
+ new
@@ -1,74 +1,12 @@
-require 'sections_rails/string_tools'
+require 'sections_rails/helpers'
+require "sections_rails/section"
module SectionsRails
-
require "sections_rails/railtie" if defined?(Rails)
-
- def section combined_name, options = {}
- result = []
- # Split the parameter into file name and directory name.
- directory, filename = split_path combined_name
- directory_path = "#{Rails.root}/app/sections/#{directory}#{filename}" # Directory of section: /app/sections/admin/logo
-
- # Add assets of section when in dev mode.
- file_path = "#{directory_path}/#{filename}" # Base path of filename in section: /app/sections/admin/logo/logo
- if Rails.env != 'production'
-
- # Include JS assets.
- if options.has_key? :js
- if options[:js]
- # Custom :js filename given --> load the given JS file.
- result << javascript_include_tag("#{directory}#{filename}/#{options[:js]}")
- else
- # js: false given --> don't do anything here.
- end
- else
- # No :js option given --> load the default JS file.
- if File.exists?("#{file_path}.js") || File.exists?("#{file_path}.js.coffee") || File.exists?("#{file_path}.coffee")
- result << javascript_include_tag("#{directory}#{filename}/#{filename}")
- end
- end
-
- # Include CSS assets.
- if options.has_key? :css
- if options[:css]
- # Custom :css option given --> render the given file.
- result << stylesheet_link_tag("#{directory}#{filename}/#{options[:css]}")
- else
- # css: false given --> don't render any css.
- end
- else
- # No :css option given --> render the default :css file.
- 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")
- result << stylesheet_link_tag("#{directory}#{filename}/#{filename}")
- end
- end
- end
-
- # Render the section partial into the view.
- partial_path = "#{directory_path}/_#{filename}.html"
- if options.has_key? :partial
- if options[:partial] == :tag
- # :partial => :tag given --> render the tag.
- result << content_tag(:div, '', :class => filename)
- elsif options[:partial]
- # some value for :partial given --> render the given partial.
- result << render(:partial => "/../sections/#{directory}#{filename}/#{options[:partial]}", :locals => options[:locals])
- else
- # partial: false or nil given --> render nothing
- end
- else
- # No :partial option given --> render the file or tag per convention.
- if File.exists?("#{partial_path}.erb") || File.exists?("#{partial_path}.haml")
- result << render(:partial => "/../sections/#{directory}#{filename}/#{filename}", :locals => options[:locals])
- else
- result << content_tag(:div, '', :class => filename)
- end
- end
- result.join("\n").html_safe
+ def section name, options = {}
+ SectionsRails::Section.new(name, self, options).render
end
-
end
ActionView::Base.send :include, SectionsRails