Sha256: 6e9948fb89711388fdcb8c8cfce6ad6d0d884b16304198f918ae30d14a33a4a2

Contents?: true

Size: 1.67 KB

Versions: 11

Compression:

Stored size: 1.67 KB

Contents

module ActiveExt
  module ExtHelpers
    module DataHelper
      
      def self.build_json_data(core, options={})
        result = {:total => 0, :data => []}
        klass = get_klass(core.model)
    
        klass.include_root_in_json = false
        
        records = klass.all(options)
        result[:total] = klass.count
        result[:data] = records
    
        result.to_json(:include => core.association_names)
      end
    
      def self.create_record(core, options={})
        ignored_columns = %w{id created_at updated_at}
    
        klass = get_klass(core.model)
    
        options[:data].delete_if{|k,v| k.blank? || ignored_columns.include?(k)}
        obj = klass.create
        options[:data].each do |k,v|
          obj.send("#{k.to_s}=", v)
        end
        obj.save
    
        result = {:success => true, :data => []}
        result[:data] = obj
    
        result.to_json
      end
    
      def self.update_record(core, options={})
        klass = get_klass(core.model)
        
        obj = klass.find(options[:id])
        options[:data].each do |k,v|
          obj.send("#{k.to_s}=", v)
        end
        obj.save
    
        result = {:success => true, :data => []}
        result[:data] = obj
        result.to_json
      end
    
      def self.delete_record(core, options={})
        klass = get_klass(core.model)
    
        klass.destroy(options[:id])
    
        result = {:success => true, :data => []}
        result.to_json
      end
    
      private
    
      def self.get_klass(model)
        model.to_s.constantize
      end
      
    end #DataHelper
  end #ExtHelpers
end #ActiveExt

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
erp_app-4.0.0 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.16 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.15 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.14 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.13 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.12 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.11 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.10 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.9 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.8 lib/active_ext/ext_helpers/data_helper.rb
erp_app-3.1.7 lib/active_ext/ext_helpers/data_helper.rb