Sha256: 03e4db0005ee8d755aad488decd35389afe91011cb31ee463f2eb7d66f1f19d3

Contents?: true

Size: 885 Bytes

Versions: 2

Compression:

Stored size: 885 Bytes

Contents

module C80MapFloors
  module BaseMapObject

    extend ActiveSupport::Concern

    def self.included(klass)
      klass.extend ClassMethods
      klass.send(:include, InstanceMethods)
    end

    module ClassMethods

      def acts_as_base_map_object
        class_eval do

          # has_many :map_buildings, :as => :building_representator, :class_name => 'C80MapFloors::MapBuilding', :dependent => :destroy
          after_save :update_json
          # after_destroy :update_json
          validates :coords, uniqueness: true

          def update_json
            MapJson.update_json
          end

        end
      end
    end

    module InstanceMethods

      # используется для сопоставления js классов
      def class_name
        self.class.name
      end

    end

  end
end

ActiveRecord::Base.send :include, C80MapFloors::BaseMapObject

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
c80_map_floors-0.1.0.2 app/models/c80_map_floors/base_map_object.rb
c80_map_floors-0.1.0.1 app/models/c80_map_floors/base_map_object.rb