# File lib/camping-abingo.rb, line 986
        def self.common_abingo_controllers
                "class  ABingoMarkHuman < R '/abingo/mark_human'\ninclude ABingoCampingPlugin::ABingo\ninclude ABingoCampingPlugin::Helpers\n\ndef post\ntextual_result = \"1\"\nbegin\na = @input.a.to_i\nb = @input.b.to_i\nc = @input.c.to_i\nif (@env['REQUEST_METHOD'] == 'POST' && (a + b == c))\nAbingo.human!\nelse\ntextual_result = \"0\"\nend\nrescue #If a bot doesn't pass a, b, or c, to_i will fail.  This scarfs up the exception, to save it from polluting our logs.\ntextual_result = \"0\"\nend\n\nreturn textual_result\nend\nend\n\nclass ABingoDashboard < R '/abingo/dashboard'\ninclude ABingoCampingPlugin::ABingo\ninclude ABingoCampingPlugin::Helpers\n\ndef get\n@experiments = ABingoCampingPlugin::Models::Experiment.all\nrender :abingo_dashboard\nend\nend\n\nclass ABingoTerminateExperiment < R '/abingo/terminate'\ninclude ABingoCampingPlugin::ABingo\ninclude ABingoCampingPlugin::Helpers\n\ndef post\nreturn(:abingo_dashboard) unless @input.alternative_id\n\n@alternative       = ABingoCampingPlugin::Models::Alternative.find(@input.alternative_id)\n@experiment        = ABingoCampingPlugin::Models::Experiment.find(@alternative.experiment_id)\nexperiment_name = @experiment.test_name\n\nif (@experiment.status != \"Completed\")\n@experiment.end_experiment!(@alternative.content)\n@abingo_notice = \"Experiment '\" + experiment_name + \"' has been marked as ended.  All users will now see the chosen alternative.\"\nelse\n@abingo_notice = \"Experiment '\" + experiment_name + \"' is already ended.\"\nend\n\nrender :abingo_termination_notice\nend\nend\n\nclass ABingoRestrictedAccess < R '/abingo/restricted_access'\ndef get\nrender :abingo_dashboard_restricted_access\nend\nend\n\n"
        end