Module: Netzke::Core::Configuration

Extended by:
ActiveSupport::Concern
Included in:
Base
Defined in:
lib/netzke/core/configuration.rb

Overview

Components can implement class-level config options by using `class_attribute`, e.g.:

class MyComponent < Netzke::Base
  class_attribute :title
  self.title = "Title for all descendants of MyComponent"

  client_class do |c|
    c.title = title
  end
end

Then before using MyComponent (e.g. in Rails' initializers), you can configure it like this:

MyComponent.title = "Better title"

Alternatively, you can use the `Base.setup` method:

MyComponent.setup do |config|
  config.title = "Better title"
end

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#client_configObject

Config options that have been set on the fly on the client side of the component in the `serverConfig` object. Can be used to dynamically change component configuration. Those changes won't affect the way component is rendered, of course, but can be useful to reconfigure child components, e.g.:

// Client
initConfig: function() {
  this.callParent();

  this.netzkeGetComponent('authors').on('rowclick', function(grid, record) {
    this.serverConfig.author_id = record.getId();
    this.netzkeGetComponent('book_grid').getStore().load();
  }
}

# Server
component :book_grid do |c|
  c.scope = { author_id: client_config.author_id }
end


97
98
99
# File 'lib/netzke/core/configuration.rb', line 97

def client_config
  @client_config ||= HashWithIndifferentAccess.new(config.client_config)
end

#configObject

Complete configuration for server class instance. Can be accessed from within endpoint, component, and action blocks, as well as any other instance method, for example:

action :do_something do |c|
  c.title = "Do it for #{config.title}"
end


75
76
77
# File 'lib/netzke/core/configuration.rb', line 75

def config
  @config ||= ActiveSupport::OrderedOptions.new
end

#configure(c) ⇒ Object

Override to auto-configure components. Example:

class BookGrid < Netzke::Basepack::Grid
  def configure(c)
    super
    c.model = "Book"
  end
end


65
66
67
# File 'lib/netzke/core/configuration.rb', line 65

def configure(c)
  c.merge!(@passed_config)
end