Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Configuration DSL for CanTango
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.document
.gitignore
.rspec
Gemfile
Gemfile.lock
LICENSE.txt
README.mdown
Rakefile
VERSION
cantango-config.gemspec

README.mdown

Cantango Configuration

Configuration for CanTango.

Status: Aug 2012

The Configuration DSL has now been almost fully "spec'ed".

169 examples, 12 failures, 4 pending

Please help fix the remaining specs ;)

Dependencies

This extension depends on the CanTango core and follows the extension conventions as described there.

Core extensions

  • YAML Loader - use of Config to set where (which folder) to load the YAML file from

Configuration

Configuration allows configuration of the following components:

  • Ability
  • Account
  • Accounts
  • Adapters
  • Categories
  • Debug
  • Engines
  • Guest
  • Hooks
  • Localhosts
  • Models
  • Modes
  • Orms
  • User
  • Users

Example:

CanTango.config.accounts do |accounts|
  # configure accounts
end

Ability

  • modes
  • default_executor_class
  • default_executor_class= clazz
  • default_class # CanTango::Ability::Base
  • factory_class_method # :default_executor_class

Modes

Is a type of Registry::Clazz

CanTango.config.ability do |ability|
  ability.modes.register 
end

Also has an Execution object

ability.modes.execution

  • available # [:cache, :no_cache]
  • default # [:no_cache]

Account

  • clear!
  • base_class
  • base_class= clazz

Accounts

  • register_account clazz

Adapters

  • adapter name # load an adapter!
  • use *names # use one or more adapters
  • available # list adapters available

AutoLoad

auto-load models and/or permits

TODO: Refactor! Mofe all permits functionality to cantango-permits!

Categories

  • [] label
  • category label, &block
  • has_any? subject, &block
  • category_names_of_subject subject, &block
  • categories_of_subject subject, &block

Debug

Engines

  • Available
  • Order

Available

  • available
  • available? name
  • all state # - all engines in states :on or :off
  • any? state # any engine in state :on or :off ?

Order

  • clear_order!
  • set_execution_order *names
  • dont_execute name
  • execute_first name
  • execute_last name
  • execute_before existing, name
  • execute_after existing, name
  • execution_order

Factory

Guest

  • clear!
  • user user = nil, &block
  • account acc = nil, &block
  • default_user?
  • default_account?

Helpers

  • enable *names
  • enable_rest # enable REST

Hooks

Kind of Hash Registry

  • value_methods

LocalHosts

Kind of Base Registry

  • default # 'localhost', '127.0.0.1'

Models

  • use *names
  • actions
  • by_reg_exp reg_exp
  • by_category label
  • exclude *names
  • excluded
  • available

Actions

Adapters:

  • ActiveRecord
  • DataMapper
  • Generic
  • Mongo
  • MongoMapper
  • Mongoid

Actions

  • actions_for type
  • add_member action
  • add_collection action

Models

  • available_models

OnOff

include on/off functionality

  • on!
  • off!
  • on?
  • off?

Orms

Kind of Base Registry

User

  • clear!
  • base_class
  • base_class= clazz
  • unique_key_field
  • unique_key_field= key
  • relations= *relations
  • relations
  • default_relations # [:owner, :author, :writer, :user]

Users

Kind of Clazz registry

  • register_user clazz

Registry

The Registry namespace contains registries useful for configuration and other purposes.

  • CanTango::Registry
    • Base
    • Hash
    • Clazz

CanTango::Registry::Base

  • types= *classes
  • types
  • clean! or clear!
  • reset!
  • register list or << list
  • [] index
  • registered
  • registered? label
  • valid? label
  • available

CanTango::Registry::Clazz

Inherits from Base

  • #register cache: Caching
  • << {cache: Caching, no_cache: NoCache}
  • registered
  • clean!
  • registered_classes
  • registered? name
  • registered_class? name
  • name_registry
  • class_registry
  • value_methods
  • value_types

CanTango::Registry::Hash

Inherits from Base

  • registered_names
  • registered_values

Contributing to cantango-config

  • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
  • Fork the project
  • Start a feature/bugfix branch
  • Commit and push until you are happy with your contribution
  • Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.

Copyright

Copyright (c) 2011 Kristian Mandrup. See LICENSE.txt for further details.

Something went wrong with that request. Please try again.