Class: TnPDF::Configuration
- Inherits:
-
Object
- Object
- TnPDF::Configuration
- Defined in:
- lib/tn_pdf/configuration.rb
Class Method Summary collapse
- .[](property, call_procs: true) ⇒ Object
- .[]=(property, value) ⇒ Object
- .footer_properties_names ⇒ Object
- .header_properties_names ⇒ Object
- .load_from(yaml_file) ⇒ Object
- .perform_conversions(value) ⇒ Object
- .properties_names ⇒ Object
- .report_properties_names ⇒ Object
- .table_properties_names ⇒ Object
Class Method Details
.[](property, call_procs: true) ⇒ Object
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/tn_pdf/configuration.rb', line 7 def [](property, call_procs: true) (hash, key) = filter_property(property) value = hash[key] if call_procs && value.kind_of?(Proc) value.call else value end end |
.[]=(property, value) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/tn_pdf/configuration.rb', line 18 def []=(property, value) (hash, key) = filter_property(property) value = perform_conversions(value) hash[key] = value end |
.footer_properties_names ⇒ Object
33 34 35 |
# File 'lib/tn_pdf/configuration.rb', line 33 def .keys end |
.header_properties_names ⇒ Object
29 30 31 |
# File 'lib/tn_pdf/configuration.rb', line 29 def header_properties_names header.keys end |
.load_from(yaml_file) ⇒ Object
48 49 50 51 52 53 54 55 |
# File 'lib/tn_pdf/configuration.rb', line 48 def load_from(yaml_file) configurations = YAML.load_file(yaml_file) configurations.each do |item, value| value = perform_conversions(value) self.send(item).merge! value end end |
.perform_conversions(value) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/tn_pdf/configuration.rb', line 57 def perform_conversions(value) match = value.match(/^(\d+\.?\d*)(cm|mm)$/) rescue nil if match num = match[1].to_f conversion = match[2].to_sym num.send(conversion) elsif value.kind_of? Hash value.inject({}) do |hash, (k, v)| hash[k.to_sym] = perform_conversions(v) hash end elsif value.kind_of? Array value.inject([]) do |array, v| array << perform_conversions(v) array end else value end end |
.properties_names ⇒ Object
41 42 43 44 45 46 |
# File 'lib/tn_pdf/configuration.rb', line 41 def properties_names report_properties_names.map { |p| "report_#{p}" } + header_properties_names.map { |p| "page_header_#{p}" } + .map { |p| "page_footer_#{p}" } + table_properties_names.map { |p| "table_#{p}" } end |
.report_properties_names ⇒ Object
25 26 27 |
# File 'lib/tn_pdf/configuration.rb', line 25 def report_properties_names report.keys end |
.table_properties_names ⇒ Object
37 38 39 |
# File 'lib/tn_pdf/configuration.rb', line 37 def table_properties_names table.keys end |