lib/thousand_island/template.rb in thousand_island-0.1.0 vs lib/thousand_island/template.rb in thousand_island-0.1.1

- old
+ new

@@ -96,10 +96,11 @@ include ThousandIsland::StyleSheet attr_reader :pdf, :pdf_options def initialize(options={}) + setup_available_styles setup_document_options(options) setup_prawn_document calculate_bounds end @@ -153,10 +154,14 @@ yield if block_given? footer_content &block if respond_to? :footer_content end if render_footer? end + def available_styles + @available_styles ||= [] + end + private def render_header? pdf_options[:header][:render] end @@ -232,12 +237,10 @@ def body_obj @body ||= body_klass.new(pdf, pdf_options[:body]) end - - def deep_merger @deep_merger ||= Utilities::DeepMerge::TemplateOptions end # Called by method missing when a style is supplied with text, ie: h1 'Header' @@ -273,8 +276,17 @@ end def respond_to_missing?(method_name, *) available_styles.include?(method_name) || super end + + def setup_available_styles + self.class.instance_methods.grep(/_style$/).each do |method_name| + style = method_name.to_s.sub('_style', '') + available_styles << style.to_sym unless style == 'default' + end + available_styles.flatten! + end + end end