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