Sha256: fedf2a7d85eae364e36f741da0b421ee8bf80a932fbd928861584a44b4d94c76

Contents?: true

Size: 971 Bytes

Versions: 3

Compression:

Stored size: 971 Bytes

Contents

require 'netzke/active_record/basepack'

module Netzke::ActiveRecord
  # Provides extensions to those ActiveRecord-based models that provide data to the "data accessor" widgets,
  # like GridPanel, FormPanel, etc
  module DataAccessor
    
    # Allow specify the netzke widget that requires this data. Virtual attributes may be using it to produce
    # widget-dependent result.
    def netzke_widget=(widget)
      @netzke_widget = widget
    end
    
    def netzke_widget
      @netzke_widget
    end
    
    # Transforms a record to array of values according to the passed columns.
    def to_array(columns, widget = nil)
      self.netzke_widget = widget
      res = []
      for c in columns
        nc = c.is_a?(Symbol) ? {:name => c} : c
        begin
          res << send(nc[:name]) unless nc[:excluded]
        rescue
          # So that we don't crash at a badly configured column
          res << "UNDEF"
        end
      end
      res
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
netzke-basepack-0.5.8 lib/netzke/active_record/data_accessor.rb
netzke-basepack-0.5.7 lib/netzke/active_record/data_accessor.rb
netzke-basepack-0.5.6 lib/netzke/active_record/data_accessor.rb