Module: RestfulX::Configuration

Defined in:
lib/restfulx/configuration.rb

Overview

Computes necessary configuration options from the environment. This can be used in Rails, Merb or standalone from the command line.

Constant Summary collapse

APP_ROOT =
defined?(RAILS_ROOT) ? RAILS_ROOT : defined?(Merb) ? Merb.root : File.expand_path(".")

Instance Method Summary collapse

Instance Method Details

#extract_names(project = nil) ⇒ Object

Extract project, package, controller names from the environment. This will respect config/restfulx.yml if it exists, you can override all of the defaults there. The defaults are:

  • base-package same as project name downcased

  • controller-name ‘ApplicationController’

Here’s a sample restfulx.yml file:

RestfulX code generation configuration options

By default flex models, commands, controllers and components are genearated into app/flex/<your rails project name> folder. If you’d like to customize the target folder (to say append a “com” package before your rails project name) uncomment the line below base-package must follow the usual flex package notation (a string separated by “.”)

base-package: com.pomodo

Main RestfulX controller is typically named AppicationController. This controller is created in <base-package>.controllers folder. You can customize the name by uncommenting the following line and changing the controller name.

controller-name: ApplicationController



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/restfulx/configuration.rb', line 43

def extract_names(project = nil)
  if project
    project_name = project.camelcase.gsub(/\s/, '')
    project_name_downcase = project_name.downcase
  else
    project_name = APP_ROOT.split("/").last.camelcase.gsub(/\s/, '')
    project_name_downcase = project_name.downcase
  end
  
  # give a chance to override the settings via restfulx.yml
  begin      
    config = YAML.load(File.open("#{APP_ROOT}/config/restfulx.yml"))
    base_package = config['base-package'] || project_name_downcase
    base_folder = base_package.gsub('.', '/').gsub(/\s/, '')
    project_name = config['project-name'].camelcase.gsub(/\s/, '') || project_name
    controller_name = config['controller-name'] || "ApplicationController"
  rescue
    base_folder = base_package = project_name_downcase
    controller_name = "ApplicationController"
  end
  [project_name, project_name_downcase, controller_name, base_package, base_folder]
end

#list_as_files(dir_name) ⇒ Object

List files ending in *.as (ActionScript) in a given folder



67
68
69
# File 'lib/restfulx/configuration.rb', line 67

def list_as_files(dir_name)
  Dir.entries(dir_name).grep(/\.as$/).map { |name| name.sub(/\.as$/, "") }.join(", ")
end

#list_mxml_files(dir_name) ⇒ Object

List files ending in *.mxml in a given folder



72
73
74
# File 'lib/restfulx/configuration.rb', line 72

def list_mxml_files(dir_name)
  Dir.entries(dir_name).grep(/\.mxml$/).map { |name| name.sub(/\.mxml$/, "") }
end