Sha256: 235fac2a7bdb23e81ecbc7d093dd0fb93100d5561fe701c89e442311adc58f04

Contents?: true

Size: 1.12 KB

Versions: 56

Compression:

Stored size: 1.12 KB

Contents

module Xeroizer
  module Record
    module ApplicationHelper
      
      # Factory for new BaseModel instances with the class name `record_type`.
      # Only creates the instance if one doesn't already exist.
      #
      # @param [Symbol] record_type Symbol of the record type (e.g. :Invoice)
      # @return [BaseModel] instance of BaseModel subclass matching `record_type`
      def record(record_type)
        define_method record_type do
          var_name = "@#{record_type}_cache".to_sym
          unless instance_variable_defined?(var_name)
            instance_variable_set(var_name, Xeroizer::Record.const_get("#{record_type}Model".to_sym).new(self, record_type.to_s))
          end
          instance_variable_get(var_name)
        end  
      end
      
      def report(report_type)
        define_method report_type do
          var_name = "@#{report_type}_cache".to_sym
          unless instance_variable_defined?(var_name)
            instance_variable_set(var_name, Xeroizer::Report::Factory.new(self, report_type.to_s))
          end
          instance_variable_get(var_name)
        end
      end
      
    end
  end
end

Version data entries

56 entries across 56 versions & 3 rubygems

Version Path
xeroizer-3.0.1 lib/xeroizer/record/application_helper.rb
xeroizer-3.0.0 lib/xeroizer/record/application_helper.rb
xeroizer-3-pre-beta-3.0.0.pre.beta lib/xeroizer/record/application_helper.rb
xeroizer-2.20.0 lib/xeroizer/record/application_helper.rb
xeroizer-2.19.0 lib/xeroizer/record/application_helper.rb
xeroizer-2.18.1 lib/xeroizer/record/application_helper.rb
xeroizer-2.17.1 lib/xeroizer/record/application_helper.rb
xeroizer-2.16.5 lib/xeroizer/record/application_helper.rb
xeroizer-2.16.4 lib/xeroizer/record/application_helper.rb
xeroizer-2.16.3 lib/xeroizer/record/application_helper.rb
xeroizer-2.16.1 lib/xeroizer/record/application_helper.rb
xeroizer-2.16.0 lib/xeroizer/record/application_helper.rb
xeroizer-2.15.9 lib/xeroizer/record/application_helper.rb
xeroizer-2.15.8 lib/xeroizer/record/application_helper.rb
xeroizer-2.15.7 lib/xeroizer/record/application_helper.rb
xeroizer-2.15.6 lib/xeroizer/record/application_helper.rb
xeroizer-float-2.15.5.2 lib/xeroizer/record/application_helper.rb
xeroizer-float-2.15.5.1 lib/xeroizer/record/application_helper.rb
xeroizer-2.15.5 lib/xeroizer/record/application_helper.rb
xeroizer-float-2.15.3.16 lib/xeroizer/record/application_helper.rb