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