Sha256: 7c89cae406fa8c877954b44df49541107313291f8bce4aae8827113ffb9dff38

Contents?: true

Size: 1.15 KB

Versions: 274

Compression:

Stored size: 1.15 KB

Contents

module ForestLiana
  class ControllerFactory

    def self.define_controller(active_record_class, service)
      controller_name = self.build_controller_name(active_record_class)
      controller_name_with_namespace = self.controller_name_with_namespace(controller_name)

      unless ForestLiana::UserSpace.const_defined?(controller_name_with_namespace)
        ForestLiana::UserSpace.const_set(controller_name, service)
      end
    end

    def self.get_controller_name(active_record_class)
      controller_name = self.build_controller_name(active_record_class)
      self.controller_name_with_namespace(controller_name)
    end

    def controller_for(active_record_class)
      controller = Class.new(ForestLiana::ResourcesController) { }

      ForestLiana::ControllerFactory.define_controller(active_record_class, controller)
      controller
    end

    private

    def self.controller_name_with_namespace(controller_name)
      "ForestLiana::UserSpace::#{controller_name}"
    end

    def self.build_controller_name(active_record_class)
      component_prefix = ForestLiana.component_prefix(active_record_class)
      "#{component_prefix}Controller"
    end
  end
end

Version data entries

274 entries across 274 versions & 1 rubygems

Version Path
forest_liana-9.11.1 app/services/forest_liana/controller_factory.rb
forest_liana-9.11.0 app/services/forest_liana/controller_factory.rb
forest_liana-9.10.6 app/services/forest_liana/controller_factory.rb
forest_liana-9.10.5 app/services/forest_liana/controller_factory.rb
forest_liana-9.10.4 app/services/forest_liana/controller_factory.rb
forest_liana-9.10.3 app/services/forest_liana/controller_factory.rb
forest_liana-9.10.2 app/services/forest_liana/controller_factory.rb
forest_liana-9.10.1 app/services/forest_liana/controller_factory.rb
forest_liana-9.10.0 app/services/forest_liana/controller_factory.rb
forest_liana-9.9.1 app/services/forest_liana/controller_factory.rb
forest_liana-9.9.0 app/services/forest_liana/controller_factory.rb
forest_liana-9.8.0 app/services/forest_liana/controller_factory.rb
forest_liana-9.7.0 app/services/forest_liana/controller_factory.rb
forest_liana-9.6.4 app/services/forest_liana/controller_factory.rb
forest_liana-9.6.3 app/services/forest_liana/controller_factory.rb
forest_liana-9.6.0 app/services/forest_liana/controller_factory.rb
forest_liana-9.5.7 app/services/forest_liana/controller_factory.rb
forest_liana-9.5.6 app/services/forest_liana/controller_factory.rb
forest_liana-9.5.5 app/services/forest_liana/controller_factory.rb
forest_liana-9.5.4 app/services/forest_liana/controller_factory.rb