class ApiControllerGenerator

Public Instance Methods

adjust_routes() click to toggle source
# File lib/generators/api_controller/api_controller_generator.rb, line 19
def adjust_routes
  create_routes
end
create_api_directories() click to toggle source
# File lib/generators/api_controller/api_controller_generator.rb, line 8
def create_api_directories
  make_dir "#{RAILS_ROOT}/app/controllers/api"
  make_dir "#{RAILS_ROOT}/app/controllers/api/v#{version}"
end
generate_api_controller() click to toggle source
# File lib/generators/api_controller/api_controller_generator.rb, line 13
def generate_api_controller
  structure = "api/v#{version}/"
  template 'api_controller.rb', "app/controllers/#{structure}#{model}_api_controller.rb"
  template 'api_controller_test.rb', "test/functional/#{structure}#{model}_api_test.rb"
end

Private Instance Methods

create_routes() click to toggle source
# File lib/generators/api_controller/api_controller_generator.rb, line 44
  def create_routes
    final = []
    File.open("#{RAILS_ROOT}/config/routes.rb", "r+") do |file|
      file.each do |line|
        final << line
        if line =~ /\w+::Application.routes.draw/
          final << <<-ROUTES

  namespace :api do
    namespace :v#{version} do
      resources :#{model}, :controller => '#{model}_api',
        :only => [:index, :show, :create, :update, :destroy]
    end
  end

          ROUTES
        end
      end
      file.pos = 0
      file.puts final
    end
  end
latest_version() click to toggle source
# File lib/generators/api_controller/api_controller_generator.rb, line 30
def latest_version
  return '1' if versions.empty?
  versions.collect {|version| version.sub('v', '')}.sort.last
end
make_dir(dir) click to toggle source
# File lib/generators/api_controller/api_controller_generator.rb, line 40
def make_dir(dir)
  Dir.mkdir dir unless File.directory?(dir)
end
version() click to toggle source
# File lib/generators/api_controller/api_controller_generator.rb, line 25
def version
  return latest_version if options.version.eql? 'current'
  options.version
end
versions() click to toggle source
# File lib/generators/api_controller/api_controller_generator.rb, line 35
def versions
  Dir.chdir "#{RAILS_ROOT}/app/controllers/api"
  Dir.glob('v*')
end