module ConfigManager class TogglesController < ConfigManager::ApplicationController # GET /toggles def index @toggles = Toggle.toggles @toggle = Toggles::Definition.new(params[:toggle_name]) end # POST /toggles def create @toggle = Toggle.create(params[:toggle]) if @toggle.valid? flash[:notice] = "Toggle successfully created/updated" else flash[:error] = "Failed to create/update toggle: #{@toggle.message}" end redirect_to toggles_url rescue Rails.logger.error "Error raised trying to create/update toggle. #{$!}. #{$!.backtrace.take(3)}" flash[:error] = "Error raised trying to create/update toggle: #{$!}" redirect_to toggles_url end # DELETE /toggles/:id def destroy Toggle.delete(params[:id]) flash[:notice] = "#{params[:id]} has been deleted!" redirect_to toggles_url end # POST /toggles/load def load if params[:file] loads, failures = Toggle.from_yaml(params[:file].tempfile) flash[:notice] = "#{loads} toggles have been loaded from the yaml file." if loads > 0 flash[:error] = "#{failures} toggles failed to be loaded from the yaml file" if failures > 0 else flash[:error] = "You must choose a file" end rescue flash[:error] = "Couldn't load toggles. Did you choose a valid file?" ensure redirect_to toggles_url end # POST /toggles/dump def dump send_data Toggle.to_yaml, :filename => 'toggles.yml' end end end