after-commit-queue-1.3.0/0000755000175600017570000000000012617425145014274 5ustar pravipraviafter-commit-queue-1.3.0/README.md0000644000175600017570000000372312617425145015560 0ustar pravipravi# after_commit_queue --- Rails plugin which allows to run callbacks after database transaction is committed. ### What problem does it solve ? When using [state_machine](https://github.com/pluginaweek/state_machine) it's hard to run a callback on event after the transaction is committed. after_commit_queue plugin addresses this problem. ### Installation Add this to your Gemfile and run ```bundle install``` ```ruby gem 'after_commit_queue' ``` ### Usage Include AfterCommitQueue module in your ActiveRecord model and you're ready to go. When registering a hook with run_after_commit you can supply either a method symbol or a block. No parameter is supplied when using the block form. ```ruby class Server < ActiveRecord::Base attr_accessor :started, :stopped # include plugin include AfterCommitQueue state_machine :state, :initial => :pending do after_transition :pending => :running, :do => :schedule_start after_transition :running => :turned_off, :do => :schedule_stop event(:start) { transition :pending => :running } event(:stop) { transition :running => :turned_off } end def schedule_start # Adds method to be run after transaction is committed run_after_commit(:start_server) end def schedule_stop run_after_commit do stop_server end end def start_server; @started = true end def stop_server; @stopped = true end end ``` ### Contributions To fetch & test the library for development, do: $ git clone https://github.com/Ragnarson/after_commit_queue $ cd after_commit_queue $ bundle #### Running tests # Before each test run, the database will be created and migrated automatically $ bundle exec rake test If you want to contribute, please: * Fork the project. * Make your feature addition or bug fix. * Add tests for it. This is important so I don't break it in a future version unintentionally. * Send me a pull request on Github. This project rocks and uses MIT-LICENSE. after-commit-queue-1.3.0/test/0000755000175600017570000000000012617425145015253 5ustar pravipraviafter-commit-queue-1.3.0/test/test_helper.rb0000644000175600017570000000106012617425145020113 0ustar pravipravi# Configure Rails Environment ENV["RAILS_ENV"] = "test" require File.expand_path("../dummy/config/environment.rb", __FILE__) require "rails/test_help" Rails.backtrace_cleaner.remove_silencers! # Load support files Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f } # We use transactions in tests ActiveSupport::TestCase.use_transactional_fixtures = false # Load fixtures from the engine if ActiveSupport::TestCase.method_defined?(:fixture_path=) ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__) end after-commit-queue-1.3.0/test/after_commit_queue_test.rb0000644000175600017570000000253312617425145022517 0ustar pravipravirequire 'test_helper' class AfterCommitQueueTest < ActiveSupport::TestCase def setup @server = Server.new end test "run methods after transaction is committed" do assert !@server.started @server.transaction do @server.start! assert !@server.started end assert @server.started end test "run blocks after transaction is committed" do @server.start! assert !@server.meditating @server.transaction do @server.crash! assert !@server.meditating end assert @server.meditating end test "external observer changes state" do @server.start! @server.stop! assert !@server.uninstalled @server.transaction do @server.uninstall! assert !@server.uninstalled end assert @server.uninstalled end test "clear queue after methods from are called" do @server.start! @server.started = false @server.stop! assert !@server.started assert @server.stopped end test "clears queue after rollback" do assert !@server.started Server.transaction do @server.start! assert !@server.started raise ActiveRecord::Rollback end assert @server.__send__(:_after_commit_queue).empty? assert !@server.started end test "clears queue even when no callback was enqueued" do @server.rolledback!(false) end end after-commit-queue-1.3.0/test/dummy/0000755000175600017570000000000012617425145016406 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/README.rdoc0000644000175600017570000002177012617425145020223 0ustar pravipravi== Welcome to Rails Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Control pattern. This pattern splits the view (also called the presentation) into "dumb" templates that are primarily responsible for inserting pre-built data in between HTML tags. The model contains the "smart" domain objects (such as Account, Product, Person, Post) that holds all the business logic and knows how to persist themselves to a database. The controller handles the incoming requests (such as Save New Account, Update Product, Show Post) by manipulating the model and directing data to the view. In Rails, the model is handled by what's called an object-relational mapping layer entitled Active Record. This layer allows you to present the data from database rows as objects and embellish these data objects with business logic methods. You can read more about Active Record in link:files/vendor/rails/activerecord/README.html. The controller and view are handled by the Action Pack, which handles both layers by its two parts: Action View and Action Controller. These two layers are bundled in a single package due to their heavy interdependence. This is unlike the relationship between the Active Record and Action Pack that is much more separate. Each of these packages can be used independently outside of Rails. You can read more about Action Pack in link:files/vendor/rails/actionpack/README.html. == Getting Started 1. At the command prompt, create a new Rails application: rails new myapp (where myapp is the application name) 2. Change directory to myapp and start the web server: cd myapp; rails server (run with --help for options) 3. Go to http://localhost:3000/ and you'll see: "Welcome aboard: You're riding Ruby on Rails!" 4. Follow the guidelines to start developing your application. You can find the following resources handy: * The Getting Started Guide: http://guides.rubyonrails.org/getting_started.html * Ruby on Rails Tutorial Book: http://www.railstutorial.org/ == Debugging Rails Sometimes your application goes wrong. Fortunately there are a lot of tools that will help you debug it and get it back on the rails. First area to check is the application log files. Have "tail -f" commands running on the server.log and development.log. Rails will automatically display debugging and runtime information to these files. Debugging info will also be shown in the browser on requests from 127.0.0.1. You can also log your own messages directly into the log file from your code using the Ruby logger class from inside your controllers. Example: class WeblogController < ActionController::Base def destroy @weblog = Weblog.find(params[:id]) @weblog.destroy logger.info("#{Time.now} Destroyed Weblog ID ##{@weblog.id}!") end end The result will be a message in your log file along the lines of: Mon Oct 08 14:22:29 +1000 2007 Destroyed Weblog ID #1! More information on how to use the logger is at http://www.ruby-doc.org/core/ Also, Ruby documentation can be found at http://www.ruby-lang.org/. There are several books available online as well: * Programming Ruby: http://www.ruby-doc.org/docs/ProgrammingRuby/ (Pickaxe) * Learn to Program: http://pine.fm/LearnToProgram/ (a beginners guide) These two books will bring you up to speed on the Ruby language and also on programming in general. == Debugger Debugger support is available through the debugger command when you start your Mongrel or WEBrick server with --debugger. This means that you can break out of execution at any point in the code, investigate and change the model, and then, resume execution! You need to install ruby-debug to run the server in debugging mode. With gems, use sudo gem install ruby-debug. Example: class WeblogController < ActionController::Base def index @posts = Post.all debugger end end So the controller will accept the action, run the first line, then present you with a IRB prompt in the server window. Here you can do things like: >> @posts.inspect => "[#nil, "body"=>nil, "id"=>"1"}>, #"Rails", "body"=>"Only ten..", "id"=>"2"}>]" >> @posts.first.title = "hello from a debugger" => "hello from a debugger" ...and even better, you can examine how your runtime objects actually work: >> f = @posts.first => #nil, "body"=>nil, "id"=>"1"}> >> f. Display all 152 possibilities? (y or n) Finally, when you're ready to resume execution, you can enter "cont". == Console The console is a Ruby shell, which allows you to interact with your application's domain model. Here you'll have all parts of the application configured, just like it is when the application is running. You can inspect domain models, change values, and save to the database. Starting the script without arguments will launch it in the development environment. To start the console, run rails console from the application directory. Options: * Passing the -s, --sandbox argument will rollback any modifications made to the database. * Passing an environment name as an argument will load the corresponding environment. Example: rails console production. To reload your controllers and models after launching the console run reload! More information about irb can be found at: link:http://www.rubycentral.org/pickaxe/irb.html == dbconsole You can go to the command line of your database directly through rails dbconsole. You would be connected to the database with the credentials defined in database.yml. Starting the script without arguments will connect you to the development database. Passing an argument will connect you to a different database, like rails dbconsole production. Currently works for MySQL, PostgreSQL and SQLite 3. == Description of Contents The default directory structure of a generated Ruby on Rails application: |-- app | |-- assets | |-- images | |-- javascripts | `-- stylesheets | |-- controllers | |-- helpers | |-- mailers | |-- models | `-- views | `-- layouts |-- config | |-- environments | |-- initializers | `-- locales |-- db |-- doc |-- lib | `-- tasks |-- log |-- public |-- script |-- test | |-- fixtures | |-- functional | |-- integration | |-- performance | `-- unit |-- tmp | |-- cache | |-- pids | |-- sessions | `-- sockets `-- vendor |-- assets `-- stylesheets `-- plugins app Holds all the code that's specific to this particular application. app/assets Contains subdirectories for images, stylesheets, and JavaScript files. app/controllers Holds controllers that should be named like weblogs_controller.rb for automated URL mapping. All controllers should descend from ApplicationController which itself descends from ActionController::Base. app/models Holds models that should be named like post.rb. Models descend from ActiveRecord::Base by default. app/views Holds the template files for the view that should be named like weblogs/index.html.erb for the WeblogsController#index action. All views use eRuby syntax by default. app/views/layouts Holds the template files for layouts to be used with views. This models the common header/footer method of wrapping views. In your views, define a layout using the layout :default and create a file named default.html.erb. Inside default.html.erb, call <% yield %> to render the view using this layout. app/helpers Holds view helpers that should be named like weblogs_helper.rb. These are generated for you automatically when using generators for controllers. Helpers can be used to wrap functionality for your views into methods. config Configuration files for the Rails environment, the routing map, the database, and other dependencies. db Contains the database schema in schema.rb. db/migrate contains all the sequence of Migrations for your schema. doc This directory is where your application documentation will be stored when generated using rake doc:app lib Application specific libraries. Basically, any kind of custom code that doesn't belong under controllers, models, or helpers. This directory is in the load path. public The directory available for the web server. Also contains the dispatchers and the default HTML files. This should be set as the DOCUMENT_ROOT of your web server. script Helper scripts for automation and generation. test Unit and functional tests along with fixtures. When using the rails generate command, template test files will be generated for you and placed in this directory. vendor External libraries that the application depends on. Also includes the plugins subdirectory. If the app has frozen rails, those gems also go here, under vendor/rails/. This directory is in the load path. after-commit-queue-1.3.0/test/dummy/db/0000755000175600017570000000000012617425145016773 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/db/schema.rb0000644000175600017570000000164512617425145020566 0ustar pravipravi# encoding: UTF-8 # This file is auto-generated from the current state of the database. Instead # of editing this file, please use the migrations feature of Active Record to # incrementally modify your database, and then regenerate this schema definition. # # Note that this schema.rb definition is the authoritative source for your # database schema. If you need to create the application database on another # system, you should be using db:schema:load, not running all the migrations # from scratch. The latter is a flawed and unsustainable approach (the more migrations # you'll amass, the slower it'll run and the greater likelihood for issues). # # It's strongly recommended that you check this file into your version control system. ActiveRecord::Schema.define(version: 20120622135717) do create_table "servers", force: true do |t| t.string "state" t.datetime "created_at" t.datetime "updated_at" end end after-commit-queue-1.3.0/test/dummy/db/test.sqlite30000644000175600017570000005000012617425145021253 0ustar pravipraviSQLite format 3@  -ę V‘=//indexunique_schema_migrationsschema_migrationsCREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")q//tableschema_migrationsschema_migrationsCREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)'‚%tableserversserversCREATE TABLE "servers" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "state" varchar(255), "created_at" datetime, "updated_at" datetime) ń»u3ń@AArunning2015-10-05 14:35:13.5747452015-10-05 14:35:13.574745@AAcrashed2015-10-05 14:35:13.5580022015-10-05 14:35:13.564927D#AAuninstalled2015-10-05 14:35:13.5380362015-10-05 14:35:13.551283C!AAturned_off2015-10-05 14:35:13.5127852015-10-05 14:35:13.522184 óó servers īī)20120622135717 īī) 20120622135717after-commit-queue-1.3.0/test/dummy/db/migrate/0000755000175600017570000000000012617425145020423 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/db/migrate/20120622135717_create_servers.rb0000644000175600017570000000022712617425145025433 0ustar pravipraviclass CreateServers < ActiveRecord::Migration def change create_table :servers do |t| t.string :state t.timestamps end end end after-commit-queue-1.3.0/test/dummy/log/0000755000175600017570000000000012617425145017167 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/log/test.log0000644000175600017570000007752012617425145020664 0ustar pravipravi  (1.2ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)   (1.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations" Migrating to CreateServers (20120622135717)  (0.1ms) begin transaction  (0.3ms) CREATE TABLE "servers" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "state" varchar(255), "created_at" datetime, "updated_at" datetime)  SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20120622135717"]]  (1.2ms) commit transaction ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"  (1.1ms) CREATE TABLE "servers" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "state" varchar(255), "created_at" datetime, "updated_at" datetime)   (1.0ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  (1.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")  (0.1ms) SELECT version FROM "schema_migrations"  (1.1ms) INSERT INTO "schema_migrations" (version) VALUES ('20120622135717') -------------------------------------------------------------------- AfterCommitQueueTest: test_clear_queue_after_methods_from_are_called --------------------------------------------------------------------  (0.1ms) begin transaction SQL (6.0ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Tue, 29 Sep 2015 20:23:15 UTC +00:00], ["state", "running"], ["updated_at", Tue, 29 Sep 2015 20:23:15 UTC +00:00]]  (1.0ms) commit transaction  (0.0ms) begin transaction SQL (0.4ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 1 [["state", "turned_off"], ["updated_at", Tue, 29 Sep 2015 20:23:15 UTC +00:00]]  (1.1ms) commit transaction ------------------------------------------------------ AfterCommitQueueTest: test_clears_queue_after_rollback ------------------------------------------------------  (0.1ms) begin transaction SQL (0.5ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Tue, 29 Sep 2015 20:23:15 UTC +00:00], ["state", "running"], ["updated_at", Tue, 29 Sep 2015 20:23:15 UTC +00:00]]  (1.0ms) rollback transaction -------------------------------------------------------------------------- AfterCommitQueueTest: test_clears_queue_even_when_no_callback_was_enqueued -------------------------------------------------------------------------- ---------------------------------------------------------- AfterCommitQueueTest: test_external_observer_changes_state ----------------------------------------------------------  (0.1ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Tue, 29 Sep 2015 20:23:15 UTC +00:00], ["state", "running"], ["updated_at", Tue, 29 Sep 2015 20:23:15 UTC +00:00]]  (1.2ms) commit transaction  (0.0ms) begin transaction SQL (0.5ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 2 [["state", "turned_off"], ["updated_at", Tue, 29 Sep 2015 20:23:15 UTC +00:00]]  (1.2ms) commit transaction  (0.1ms) begin transaction SQL (0.7ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 2 [["state", "uninstalled"], ["updated_at", Tue, 29 Sep 2015 20:23:15 UTC +00:00]]  (1.1ms) commit transaction -------------------------------------------------------------------- AfterCommitQueueTest: test_run_blocks_after_transaction_is_committed --------------------------------------------------------------------  (0.1ms) begin transaction SQL (0.6ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Tue, 29 Sep 2015 20:23:15 UTC +00:00], ["state", "running"], ["updated_at", Tue, 29 Sep 2015 20:23:15 UTC +00:00]]  (0.9ms) commit transaction  (0.0ms) begin transaction SQL (0.3ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 3 [["state", "crashed"], ["updated_at", Tue, 29 Sep 2015 20:23:15 UTC +00:00]]  (0.7ms) commit transaction --------------------------------------------------------------------- AfterCommitQueueTest: test_run_methods_after_transaction_is_committed ---------------------------------------------------------------------  (0.0ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Tue, 29 Sep 2015 20:23:15 UTC +00:00], ["state", "running"], ["updated_at", Tue, 29 Sep 2015 20:23:15 UTC +00:00]]  (1.0ms) commit transaction  (1.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)   (1.0ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations" Migrating to CreateServers (20120622135717)  (0.1ms) begin transaction  (0.4ms) CREATE TABLE "servers" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "state" varchar(255), "created_at" datetime, "updated_at" datetime)  SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20120622135717"]]  (1.2ms) commit transaction ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"  (1.2ms) CREATE TABLE "servers" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "state" varchar(255), "created_at" datetime, "updated_at" datetime)   (1.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  (1.0ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")  (0.1ms) SELECT version FROM "schema_migrations"  (1.1ms) INSERT INTO "schema_migrations" (version) VALUES ('20120622135717') -------------------------------------------------------------------- AfterCommitQueueTest: test_clear_queue_after_methods_from_are_called --------------------------------------------------------------------  (0.1ms) begin transaction SQL (5.0ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:33:08 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:33:08 UTC +00:00]]  (1.0ms) commit transaction  (0.1ms) begin transaction SQL (0.3ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 1 [["state", "turned_off"], ["updated_at", Mon, 05 Oct 2015 14:33:08 UTC +00:00]]  (1.0ms) commit transaction ------------------------------------------------------ AfterCommitQueueTest: test_clears_queue_after_rollback ------------------------------------------------------  (0.1ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:33:08 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:33:08 UTC +00:00]]  (1.0ms) rollback transaction -------------------------------------------------------------------------- AfterCommitQueueTest: test_clears_queue_even_when_no_callback_was_enqueued -------------------------------------------------------------------------- ---------------------------------------------------------- AfterCommitQueueTest: test_external_observer_changes_state ----------------------------------------------------------  (0.1ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:33:08 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:33:08 UTC +00:00]]  (1.4ms) commit transaction  (0.1ms) begin transaction SQL (0.4ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 2 [["state", "turned_off"], ["updated_at", Mon, 05 Oct 2015 14:33:08 UTC +00:00]]  (1.0ms) commit transaction  (0.1ms) begin transaction SQL (0.2ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 2 [["state", "uninstalled"], ["updated_at", Mon, 05 Oct 2015 14:33:08 UTC +00:00]]  (1.1ms) commit transaction -------------------------------------------------------------------- AfterCommitQueueTest: test_run_blocks_after_transaction_is_committed --------------------------------------------------------------------  (0.0ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:33:08 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:33:08 UTC +00:00]]  (1.0ms) commit transaction  (0.0ms) begin transaction SQL (0.3ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 3 [["state", "crashed"], ["updated_at", Mon, 05 Oct 2015 14:33:08 UTC +00:00]]  (1.1ms) commit transaction --------------------------------------------------------------------- AfterCommitQueueTest: test_run_methods_after_transaction_is_committed ---------------------------------------------------------------------  (0.1ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:33:08 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:33:08 UTC +00:00]]  (1.0ms) commit transaction  (2.3ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)   (1.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations" Migrating to CreateServers (20120622135717)  (0.1ms) begin transaction  (0.4ms) CREATE TABLE "servers" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "state" varchar(255), "created_at" datetime, "updated_at" datetime)  SQL (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20120622135717"]]  (1.3ms) commit transaction ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"  (1.3ms) CREATE TABLE "servers" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "state" varchar(255), "created_at" datetime, "updated_at" datetime)   (1.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  (0.9ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")  (0.1ms) SELECT version FROM "schema_migrations"  (1.3ms) INSERT INTO "schema_migrations" (version) VALUES ('20120622135717') -------------------------------------------------------------------- AfterCommitQueueTest: test_clear_queue_after_methods_from_are_called --------------------------------------------------------------------  (0.1ms) begin transaction SQL (2.4ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:34:01 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:34:01 UTC +00:00]]  (2.5ms) commit transaction  (0.1ms) begin transaction SQL (0.4ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 1 [["state", "turned_off"], ["updated_at", Mon, 05 Oct 2015 14:34:01 UTC +00:00]]  (1.0ms) commit transaction ------------------------------------------------------ AfterCommitQueueTest: test_clears_queue_after_rollback ------------------------------------------------------  (0.0ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:34:01 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:34:01 UTC +00:00]]  (0.5ms) rollback transaction -------------------------------------------------------------------------- AfterCommitQueueTest: test_clears_queue_even_when_no_callback_was_enqueued -------------------------------------------------------------------------- ---------------------------------------------------------- AfterCommitQueueTest: test_external_observer_changes_state ----------------------------------------------------------  (0.1ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:34:01 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:34:01 UTC +00:00]]  (1.0ms) commit transaction  (0.0ms) begin transaction SQL (0.3ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 2 [["state", "turned_off"], ["updated_at", Mon, 05 Oct 2015 14:34:01 UTC +00:00]]  (1.0ms) commit transaction  (0.0ms) begin transaction SQL (0.3ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 2 [["state", "uninstalled"], ["updated_at", Mon, 05 Oct 2015 14:34:01 UTC +00:00]]  (1.1ms) commit transaction -------------------------------------------------------------------- AfterCommitQueueTest: test_run_blocks_after_transaction_is_committed --------------------------------------------------------------------  (0.1ms) begin transaction SQL (0.7ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:34:01 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:34:01 UTC +00:00]]  (1.2ms) commit transaction  (0.1ms) begin transaction SQL (0.4ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 3 [["state", "crashed"], ["updated_at", Mon, 05 Oct 2015 14:34:01 UTC +00:00]]  (1.0ms) commit transaction --------------------------------------------------------------------- AfterCommitQueueTest: test_run_methods_after_transaction_is_committed ---------------------------------------------------------------------  (0.1ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:34:01 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:34:01 UTC +00:00]]  (1.0ms) commit transaction  (2.4ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)   (1.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations" Migrating to CreateServers (20120622135717)  (0.0ms) begin transaction  (0.3ms) CREATE TABLE "servers" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "state" varchar(255), "created_at" datetime, "updated_at" datetime)  SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20120622135717"]]  (1.2ms) commit transaction ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"  (1.2ms) CREATE TABLE "servers" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "state" varchar(255), "created_at" datetime, "updated_at" datetime)   (1.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  (1.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")  (0.1ms) SELECT version FROM "schema_migrations"  (1.2ms) INSERT INTO "schema_migrations" (version) VALUES ('20120622135717') -------------------------------------------------------------------- AfterCommitQueueTest: test_clear_queue_after_methods_from_are_called --------------------------------------------------------------------  (0.1ms) begin transaction SQL (2.4ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:34:07 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:34:07 UTC +00:00]]  (2.3ms) commit transaction  (0.0ms) begin transaction SQL (0.7ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 1 [["state", "turned_off"], ["updated_at", Mon, 05 Oct 2015 14:34:07 UTC +00:00]]  (1.0ms) commit transaction ------------------------------------------------------ AfterCommitQueueTest: test_clears_queue_after_rollback ------------------------------------------------------  (0.0ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:34:07 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:34:07 UTC +00:00]]  (0.5ms) rollback transaction -------------------------------------------------------------------------- AfterCommitQueueTest: test_clears_queue_even_when_no_callback_was_enqueued -------------------------------------------------------------------------- ---------------------------------------------------------- AfterCommitQueueTest: test_external_observer_changes_state ----------------------------------------------------------  (0.0ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:34:07 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:34:07 UTC +00:00]]  (1.0ms) commit transaction  (0.0ms) begin transaction SQL (0.3ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 2 [["state", "turned_off"], ["updated_at", Mon, 05 Oct 2015 14:34:07 UTC +00:00]]  (1.2ms) commit transaction  (0.1ms) begin transaction SQL (0.3ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 2 [["state", "uninstalled"], ["updated_at", Mon, 05 Oct 2015 14:34:07 UTC +00:00]]  (0.8ms) commit transaction -------------------------------------------------------------------- AfterCommitQueueTest: test_run_blocks_after_transaction_is_committed --------------------------------------------------------------------  (0.1ms) begin transaction SQL (0.4ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:34:07 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:34:07 UTC +00:00]]  (1.0ms) commit transaction  (0.0ms) begin transaction SQL (0.3ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 3 [["state", "crashed"], ["updated_at", Mon, 05 Oct 2015 14:34:07 UTC +00:00]]  (1.1ms) commit transaction --------------------------------------------------------------------- AfterCommitQueueTest: test_run_methods_after_transaction_is_committed ---------------------------------------------------------------------  (0.0ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:34:07 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:34:07 UTC +00:00]]  (1.1ms) commit transaction  (4.0ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)   (1.5ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations" Migrating to CreateServers (20120622135717)  (0.1ms) begin transaction  (0.4ms) CREATE TABLE "servers" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "state" varchar(255), "created_at" datetime, "updated_at" datetime)  SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20120622135717"]]  (1.2ms) commit transaction ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"  (1.2ms) CREATE TABLE "servers" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "state" varchar(255), "created_at" datetime, "updated_at" datetime)   (1.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  (0.9ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")  (0.1ms) SELECT version FROM "schema_migrations"  (1.2ms) INSERT INTO "schema_migrations" (version) VALUES ('20120622135717') -------------------------------------------------------------------- AfterCommitQueueTest: test_clear_queue_after_methods_from_are_called --------------------------------------------------------------------  (0.1ms) begin transaction SQL (2.4ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:34:38 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:34:38 UTC +00:00]]  (2.2ms) commit transaction  (0.0ms) begin transaction SQL (0.3ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 1 [["state", "turned_off"], ["updated_at", Mon, 05 Oct 2015 14:34:38 UTC +00:00]]  (1.0ms) commit transaction ------------------------------------------------------ AfterCommitQueueTest: test_clears_queue_after_rollback ------------------------------------------------------  (0.1ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:34:38 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:34:38 UTC +00:00]]  (0.5ms) rollback transaction -------------------------------------------------------------------------- AfterCommitQueueTest: test_clears_queue_even_when_no_callback_was_enqueued -------------------------------------------------------------------------- ---------------------------------------------------------- AfterCommitQueueTest: test_external_observer_changes_state ----------------------------------------------------------  (0.1ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:34:38 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:34:38 UTC +00:00]]  (1.1ms) commit transaction  (0.0ms) begin transaction SQL (0.3ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 2 [["state", "turned_off"], ["updated_at", Mon, 05 Oct 2015 14:34:38 UTC +00:00]]  (1.1ms) commit transaction  (0.0ms) begin transaction SQL (0.3ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 2 [["state", "uninstalled"], ["updated_at", Mon, 05 Oct 2015 14:34:38 UTC +00:00]]  (1.0ms) commit transaction -------------------------------------------------------------------- AfterCommitQueueTest: test_run_blocks_after_transaction_is_committed --------------------------------------------------------------------  (0.0ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:34:38 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:34:38 UTC +00:00]]  (0.9ms) commit transaction  (0.1ms) begin transaction SQL (0.5ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 3 [["state", "crashed"], ["updated_at", Mon, 05 Oct 2015 14:34:38 UTC +00:00]]  (1.0ms) commit transaction --------------------------------------------------------------------- AfterCommitQueueTest: test_run_methods_after_transaction_is_committed ---------------------------------------------------------------------  (0.0ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:34:38 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:34:38 UTC +00:00]]  (1.0ms) commit transaction  (2.3ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)   (0.8ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations" Migrating to CreateServers (20120622135717)  (0.0ms) begin transaction  (0.3ms) CREATE TABLE "servers" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "state" varchar(255), "created_at" datetime, "updated_at" datetime)  SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20120622135717"]]  (1.4ms) commit transaction ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"  (1.3ms) CREATE TABLE "servers" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "state" varchar(255), "created_at" datetime, "updated_at" datetime)   (1.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  (1.0ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")  (0.1ms) SELECT version FROM "schema_migrations"  (1.1ms) INSERT INTO "schema_migrations" (version) VALUES ('20120622135717') -------------------------------------------------------------------- AfterCommitQueueTest: test_clear_queue_after_methods_from_are_called --------------------------------------------------------------------  (0.1ms) begin transaction SQL (2.6ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:35:13 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:35:13 UTC +00:00]]  (1.0ms) commit transaction  (0.0ms) begin transaction SQL (0.3ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 1 [["state", "turned_off"], ["updated_at", Mon, 05 Oct 2015 14:35:13 UTC +00:00]]  (1.0ms) commit transaction ------------------------------------------------------ AfterCommitQueueTest: test_clears_queue_after_rollback ------------------------------------------------------  (0.1ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:35:13 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:35:13 UTC +00:00]]  (0.5ms) rollback transaction -------------------------------------------------------------------------- AfterCommitQueueTest: test_clears_queue_even_when_no_callback_was_enqueued -------------------------------------------------------------------------- ---------------------------------------------------------- AfterCommitQueueTest: test_external_observer_changes_state ----------------------------------------------------------  (0.1ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:35:13 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:35:13 UTC +00:00]]  (1.0ms) commit transaction  (0.1ms) begin transaction SQL (0.3ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 2 [["state", "turned_off"], ["updated_at", Mon, 05 Oct 2015 14:35:13 UTC +00:00]]  (0.9ms) commit transaction  (0.0ms) begin transaction SQL (0.3ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 2 [["state", "uninstalled"], ["updated_at", Mon, 05 Oct 2015 14:35:13 UTC +00:00]]  (0.9ms) commit transaction -------------------------------------------------------------------- AfterCommitQueueTest: test_run_blocks_after_transaction_is_committed --------------------------------------------------------------------  (0.0ms) begin transaction SQL (0.3ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:35:13 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:35:13 UTC +00:00]]  (0.8ms) commit transaction  (0.0ms) begin transaction SQL (0.3ms) UPDATE "servers" SET "state" = ?, "updated_at" = ? WHERE "servers"."id" = 3 [["state", "crashed"], ["updated_at", Mon, 05 Oct 2015 14:35:13 UTC +00:00]]  (1.2ms) commit transaction --------------------------------------------------------------------- AfterCommitQueueTest: test_run_methods_after_transaction_is_committed ---------------------------------------------------------------------  (0.1ms) begin transaction SQL (0.5ms) INSERT INTO "servers" ("created_at", "state", "updated_at") VALUES (?, ?, ?) [["created_at", Mon, 05 Oct 2015 14:35:13 UTC +00:00], ["state", "running"], ["updated_at", Mon, 05 Oct 2015 14:35:13 UTC +00:00]]  (1.0ms) commit transaction after-commit-queue-1.3.0/test/dummy/config/0000755000175600017570000000000012617425145017653 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/config/environment.rb0000644000175600017570000000022512617425145022543 0ustar pravipravi# Load the rails application require File.expand_path('../application', __FILE__) # Initialize the rails application Dummy::Application.initialize! after-commit-queue-1.3.0/test/dummy/config/locales/0000755000175600017570000000000012617425145021275 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/config/locales/en.yml0000644000175600017570000000032612617425145022423 0ustar pravipravi# Sample localization file for English. Add more files in this directory for other locales. # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. en: hello: "Hello world" after-commit-queue-1.3.0/test/dummy/config/environments/0000755000175600017570000000000012617425145022402 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/config/environments/test.rb0000644000175600017570000000245612617425145023715 0ustar pravipraviDummy::Application.configure do # Settings specified here will take precedence over those in config/application.rb # The test environment is used exclusively to run your application's # test suite. You never need to work with it otherwise. Remember that # your test database is "scratch space" for the test suite and is wiped # and recreated between test runs. Don't rely on the data there! config.cache_classes = true # Configure static asset server for tests with Cache-Control for performance config.serve_static_assets = true config.static_cache_control = "public, max-age=3600" # Show full error reports and disable caching config.consider_all_requests_local = true config.action_controller.perform_caching = false # Raise exceptions instead of rendering exception templates config.action_dispatch.show_exceptions = false # Disable request forgery protection in test environment config.action_controller.allow_forgery_protection = false # Tell Action Mailer not to deliver emails to the real world. # The :test delivery method accumulates sent emails in the # ActionMailer::Base.deliveries array. config.action_mailer.delivery_method = :test # Print deprecation notices to the stderr config.active_support.deprecation = :stderr config.eager_load = false end after-commit-queue-1.3.0/test/dummy/config/environments/production.rb0000644000175600017570000000471212617425145025121 0ustar pravipraviDummy::Application.configure do # Settings specified here will take precedence over those in config/application.rb # Code is not reloaded between requests config.cache_classes = true # Full error reports are disabled and caching is turned on config.consider_all_requests_local = false config.action_controller.perform_caching = true # Disable Rails's static asset server (Apache or nginx will already do this) config.serve_static_assets = false # Compress JavaScripts and CSS config.assets.compress = true # Don't fallback to assets pipeline if a precompiled asset is missed config.assets.compile = false # Generate digests for assets URLs config.assets.digest = true # Defaults to nil and saved in location specified by config.assets.prefix # config.assets.manifest = YOUR_PATH # Specifies the header that your server uses for sending files # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. # config.force_ssl = true # See everything in the log (default is :info) # config.log_level = :debug # Prepend all log lines with the following tags # config.log_tags = [ :subdomain, :uuid ] # Use a different logger for distributed setups # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) # Use a different cache store in production # config.cache_store = :mem_cache_store # Enable serving of images, stylesheets, and JavaScripts from an asset server # config.action_controller.asset_host = "http://assets.example.com" # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) # config.assets.precompile += %w( search.js ) # Disable delivery errors, bad email addresses will be ignored # config.action_mailer.raise_delivery_errors = false # Enable threaded mode # config.threadsafe! # Enable locale fallbacks for I18n (makes lookups for any locale fall back to # the I18n.default_locale when a translation can not be found) config.i18n.fallbacks = true # Send deprecation notices to registered listeners config.active_support.deprecation = :notify # Log the query plan for queries taking more than this (works # with SQLite, MySQL, and PostgreSQL) # config.active_record.auto_explain_threshold_in_seconds = 0.5 config.eager_load = true end after-commit-queue-1.3.0/test/dummy/config/environments/development.rb0000644000175600017570000000222412617425145025251 0ustar pravipraviDummy::Application.configure do # Settings specified here will take precedence over those in config/application.rb # In the development environment your application's code is reloaded on # every request. This slows down response time but is perfect for development # since you don't have to restart the web server when you make code changes. config.cache_classes = false # Show full error reports and disable caching config.consider_all_requests_local = true config.action_controller.perform_caching = false # Don't care if the mailer can't send config.action_mailer.raise_delivery_errors = false # Print deprecation notices to the Rails logger config.active_support.deprecation = :log # Only use best-standards-support built into browsers config.action_dispatch.best_standards_support = :builtin # Log the query plan for queries taking more than this (works # with SQLite, MySQL, and PostgreSQL) config.active_record.auto_explain_threshold_in_seconds = 0.5 # Do not compress assets config.assets.compress = false # Expands the lines which load the assets config.assets.debug = true config.eager_load = false end after-commit-queue-1.3.0/test/dummy/config/boot.rb0000644000175600017570000000035312617425145021144 0ustar pravipravirequire 'rubygems' gemfile = File.expand_path('../../../../Gemfile', __FILE__) if File.exist?(gemfile) ENV['BUNDLE_GEMFILE'] = gemfile require 'bundler' Bundler.setup end $:.unshift File.expand_path('../../../../lib', __FILE__)after-commit-queue-1.3.0/test/dummy/config/initializers/0000755000175600017570000000000012617425145022361 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/config/initializers/session_store.rb0000644000175600017570000000062712617425145025612 0ustar pravipravi# Be sure to restart your server when you modify this file. Dummy::Application.config.session_store :cookie_store, key: '_dummy_session' # Use the database for sessions instead of the cookie-based default, # which shouldn't be used to store highly confidential information # (create the session table with "rails generate session_migration") # Dummy::Application.config.session_store :active_record_store after-commit-queue-1.3.0/test/dummy/config/initializers/mime_types.rb0000644000175600017570000000031512617425145025060 0ustar pravipravi# Be sure to restart your server when you modify this file. # Add new mime types for use in respond_to blocks: # Mime::Type.register "text/richtext", :rtf # Mime::Type.register_alias "text/html", :iphone after-commit-queue-1.3.0/test/dummy/config/initializers/secret_token.rb0000644000175600017570000000076012617425145025376 0ustar pravipravi# Be sure to restart your server when you modify this file. # Your secret key for verifying the integrity of signed cookies. # If you change this key, all old signed cookies will become invalid! # Make sure the secret is at least 30 characters and all random, # no regular words or you'll be exposed to dictionary attacks. Dummy::Application.config.secret_token = '35ae4cf44694eec31e0cc5f3fded5943945b7e4289a004adfb87949d5c4a144209c1cd65d8cef7046cded8043de6fd44343b3a2bca35f0072a392fd667fcf755' after-commit-queue-1.3.0/test/dummy/config/initializers/inflections.rb0000644000175600017570000000102512617425145025221 0ustar pravipravi# Be sure to restart your server when you modify this file. # Add new inflection rules using the following format # (all these examples are active by default): # ActiveSupport::Inflector.inflections do |inflect| # inflect.plural /^(ox)$/i, '\1en' # inflect.singular /^(ox)en/i, '\1' # inflect.irregular 'person', 'people' # inflect.uncountable %w( fish sheep ) # end # # These inflection rules are supported but not enabled by default: # ActiveSupport::Inflector.inflections do |inflect| # inflect.acronym 'RESTful' # end after-commit-queue-1.3.0/test/dummy/config/initializers/wrap_parameters.rb0000644000175600017570000000072112617425145026102 0ustar pravipravi# Be sure to restart your server when you modify this file. # # This file contains settings for ActionController::ParamsWrapper which # is enabled by default. # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. ActiveSupport.on_load(:action_controller) do wrap_parameters format: [:json] end # Disable root element in JSON by default. ActiveSupport.on_load(:active_record) do self.include_root_in_json = false end after-commit-queue-1.3.0/test/dummy/config/initializers/backtrace_silencers.rb0000644000175600017570000000062412617425145026676 0ustar pravipravi# Be sure to restart your server when you modify this file. # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. # Rails.backtrace_cleaner.remove_silencers! after-commit-queue-1.3.0/test/dummy/config/database.yml0000644000175600017570000000110012617425145022132 0ustar pravipravi# SQLite version 3.x # gem install sqlite3 # # Ensure the SQLite 3 gem is defined in your Gemfile # gem 'sqlite3' development: adapter: sqlite3 database: db/development.sqlite3 pool: 5 timeout: 5000 # Warning: The database defined as "test" will be erased and # re-generated from your development database when you run "rake". # Do not set this db to the same as development or production. test: adapter: sqlite3 database: db/test.sqlite3 pool: 5 timeout: 5000 production: adapter: sqlite3 database: db/production.sqlite3 pool: 5 timeout: 5000 after-commit-queue-1.3.0/test/dummy/config/routes.rb0000644000175600017570000000337412617425145021530 0ustar pravipraviDummy::Application.routes.draw do # The priority is based upon order of creation: # first created -> highest priority. # Sample of regular route: # match 'products/:id' => 'catalog#view' # Keep in mind you can assign values other than :controller and :action # Sample of named route: # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase # This route can be invoked with purchase_url(:id => product.id) # Sample resource route (maps HTTP verbs to controller actions automatically): # resources :products # Sample resource route with options: # resources :products do # member do # get 'short' # post 'toggle' # end # # collection do # get 'sold' # end # end # Sample resource route with sub-resources: # resources :products do # resources :comments, :sales # resource :seller # end # Sample resource route with more complex sub-resources # resources :products do # resources :comments # resources :sales do # get 'recent', :on => :collection # end # end # Sample resource route within a namespace: # namespace :admin do # # Directs /admin/products/* to Admin::ProductsController # # (app/controllers/admin/products_controller.rb) # resources :products # end # You can have the root of your site routed with "root" # just remember to delete public/index.html. # root :to => 'welcome#index' # See how all your routes lay out with "rake routes" # This is a legacy wild controller route that's not recommended for RESTful applications. # Note: This route will make all actions in every controller accessible via GET requests. # match ':controller(/:action(/:id))(.:format)' end after-commit-queue-1.3.0/test/dummy/config/application.rb0000644000175600017570000000415612617425145022511 0ustar pravipravirequire File.expand_path('../boot', __FILE__) require 'rails/all' Bundler.require require "after_commit_queue" module Dummy class Application < Rails::Application # Settings in config/environments/* take precedence over those specified here. # Application configuration should go into files in config/initializers # -- all .rb files in that directory are automatically loaded. # Custom directories with classes and modules you want to be autoloadable. # config.autoload_paths += %W(#{config.root}/extras) # Only load the plugins named here, in the order given (default is alphabetical). # :all can be used as a placeholder for all plugins not explicitly named. # config.plugins = [ :exception_notification, :ssl_requirement, :all ] # Activate observers that should always be running. config.active_record.observers = :server_observer # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. # config.time_zone = 'Central Time (US & Canada)' # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] # config.i18n.default_locale = :de # Configure the default encoding used in templates for Ruby 1.9. config.encoding = "utf-8" # Configure sensitive parameters which will be filtered from the log file. config.filter_parameters += [:password] # Enable escaping HTML in JSON. config.active_support.escape_html_entities_in_json = true # Use SQL instead of Active Record's schema dumper when creating the database. # This is necessary if your schema can't be completely dumped by the schema dumper, # like if you have constraints or database-specific column types # config.active_record.schema_format = :sql # Enable the asset pipeline config.assets.enabled = true # Version of your assets, change this if you want to expire all your assets config.assets.version = '1.0' end end after-commit-queue-1.3.0/test/dummy/script/0000755000175600017570000000000012617425145017712 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/script/rails0000755000175600017570000000044712617425145020757 0ustar pravipravi#!/usr/bin/env ruby # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application. APP_PATH = File.expand_path('../../config/application', __FILE__) require File.expand_path('../../config/boot', __FILE__) require 'rails/commands' after-commit-queue-1.3.0/test/dummy/public/0000755000175600017570000000000012617425145017664 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/public/422.html0000644000175600017570000000130712617425145021062 0ustar pravipravi The change you wanted was rejected (422)

The change you wanted was rejected.

Maybe you tried to change something you didn't have access to.

after-commit-queue-1.3.0/test/dummy/public/500.html0000644000175600017570000000120312617425145021052 0ustar pravipravi We're sorry, but something went wrong (500)

We're sorry, but something went wrong.

after-commit-queue-1.3.0/test/dummy/public/favicon.ico0000644000175600017570000000000012617425145021773 0ustar pravipraviafter-commit-queue-1.3.0/test/dummy/public/404.html0000644000175600017570000000133012617425145021056 0ustar pravipravi The page you were looking for doesn't exist (404)

The page you were looking for doesn't exist.

You may have mistyped the address or the page may have moved.

after-commit-queue-1.3.0/test/dummy/config.ru0000644000175600017570000000023312617425145020221 0ustar pravipravi# This file is used by Rack-based servers to start the application. require ::File.expand_path('../config/environment', __FILE__) run Dummy::Application after-commit-queue-1.3.0/test/dummy/test/0000755000175600017570000000000012617425145017365 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/test/fixtures/0000755000175600017570000000000012617425145021236 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/test/fixtures/servers.yml0000644000175600017570000000020512617425145023447 0ustar pravipravi# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html one: name: MyString two: name: MyString after-commit-queue-1.3.0/test/dummy/test/unit/0000755000175600017570000000000012617425145020344 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/test/unit/server_test.rb0000644000175600017570000000017012617425145023234 0ustar pravipravirequire 'test_helper' class ServerTest < ActiveSupport::TestCase # test "the truth" do # assert true # end end after-commit-queue-1.3.0/test/dummy/app/0000755000175600017570000000000012617425145017166 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/app/assets/0000755000175600017570000000000012617425145020470 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/app/assets/stylesheets/0000755000175600017570000000000012617425145023044 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/app/assets/stylesheets/application.css0000644000175600017570000000104212617425145026056 0ustar pravipravi/* * This is a manifest file that'll be compiled into application.css, which will include all the files * listed below. * * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. * * You're free to add application-wide styles to this file and they'll appear at the top of the * compiled file, but it's generally better to create a new file per style scope. * *= require_self *= require_tree . */ after-commit-queue-1.3.0/test/dummy/app/assets/javascripts/0000755000175600017570000000000012617425145023021 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/app/assets/javascripts/application.js0000644000175600017570000000112712617425145025663 0ustar pravipravi// This is a manifest file that'll be compiled into application.js, which will include all the files // listed below. // // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path. // // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the // the compiled file. // // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD // GO AFTER THE REQUIRES BELOW. // //= require_tree . after-commit-queue-1.3.0/test/dummy/app/helpers/0000755000175600017570000000000012617425145020630 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/app/helpers/application_helper.rb0000644000175600017570000000003512617425145025015 0ustar pravipravimodule ApplicationHelper end after-commit-queue-1.3.0/test/dummy/app/models/0000755000175600017570000000000012617425145020451 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/app/models/server_observer.rb0000644000175600017570000000025412617425145024214 0ustar pravipraviclass ServerObserver < ActiveRecord::Observer def after_transition_state_to_uninstalled(server, transition) server.run_after_commit { @uninstalled = true } end end after-commit-queue-1.3.0/test/dummy/app/models/server.rb0000644000175600017570000000163412617425145022310 0ustar pravipraviclass Server < ActiveRecord::Base include AfterCommitQueue attr_accessor :started, :stopped, :meditating, :uninstalled state_machine :state, :initial => :pending do after_transition :pending => :running, :do => :schedule_start after_transition :running => :crashed, :do => :schedule_guru_meditation after_transition :running => :turned_off, :do => :schedule_stop event(:start) { transition :pending => :running } event(:stop) { transition :running => :turned_off } event(:crash) { transition :running => :crashed } event(:uninstall) { transition :turned_off => :uninstalled } end def schedule_start run_after_commit(:start_server) end def schedule_stop run_after_commit(:stop_server) end def schedule_guru_meditation run_after_commit do @meditating = true end end def start_server; @started = true end def stop_server; @stopped = true end end after-commit-queue-1.3.0/test/dummy/app/views/0000755000175600017570000000000012617425145020323 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/app/views/layouts/0000755000175600017570000000000012617425145022023 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/app/views/layouts/application.html.erb0000644000175600017570000000035012617425145025761 0ustar pravipravi Dummy <%= stylesheet_link_tag "application", :media => "all" %> <%= javascript_include_tag "application" %> <%= csrf_meta_tags %> <%= yield %> after-commit-queue-1.3.0/test/dummy/app/controllers/0000755000175600017570000000000012617425145021534 5ustar pravipraviafter-commit-queue-1.3.0/test/dummy/app/controllers/application_controller.rb0000644000175600017570000000012012617425145026620 0ustar pravipraviclass ApplicationController < ActionController::Base protect_from_forgery end after-commit-queue-1.3.0/test/dummy/Rakefile0000644000175600017570000000041612617425145020054 0ustar pravipravi#!/usr/bin/env rake # Add your own tasks in files placed in lib/tasks ending in .rake, # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. require File.expand_path('../config/application', __FILE__) Dummy::Application.load_tasks after-commit-queue-1.3.0/metadata.yml0000644000175600017570000001202712617425145016601 0ustar pravipravi--- !ruby/object:Gem::Specification name: after_commit_queue version: !ruby/object:Gem::Version version: 1.3.0 platform: ruby authors: - Grzegorz Kołodziejczyk - Mariusz Pietrzyk autorequire: bindir: bin cert_chain: [] date: 2015-10-05 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: activerecord requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '3.0' type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '3.0' - !ruby/object:Gem::Dependency name: sqlite3 requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' - !ruby/object:Gem::Dependency name: rails requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '3.0' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '3.0' description: Plugin for running methods on ActiveRecord models after record is committed email: - devs@shellycloud.com executables: [] extensions: [] extra_rdoc_files: [] files: - MIT-LICENSE - README.md - Rakefile - lib/after_commit_queue.rb - lib/after_commit_queue/version.rb - lib/tasks/after_commit_queue_tasks.rake - test/after_commit_queue_test.rb - test/dummy/README.rdoc - test/dummy/Rakefile - test/dummy/app/assets/javascripts/application.js - test/dummy/app/assets/stylesheets/application.css - test/dummy/app/controllers/application_controller.rb - test/dummy/app/helpers/application_helper.rb - test/dummy/app/models/server.rb - test/dummy/app/models/server_observer.rb - test/dummy/app/views/layouts/application.html.erb - test/dummy/config.ru - test/dummy/config/application.rb - test/dummy/config/boot.rb - test/dummy/config/database.yml - test/dummy/config/environment.rb - test/dummy/config/environments/development.rb - test/dummy/config/environments/production.rb - test/dummy/config/environments/test.rb - test/dummy/config/initializers/backtrace_silencers.rb - test/dummy/config/initializers/inflections.rb - test/dummy/config/initializers/mime_types.rb - test/dummy/config/initializers/secret_token.rb - test/dummy/config/initializers/session_store.rb - test/dummy/config/initializers/wrap_parameters.rb - test/dummy/config/locales/en.yml - test/dummy/config/routes.rb - test/dummy/db/migrate/20120622135717_create_servers.rb - test/dummy/db/schema.rb - test/dummy/db/test.sqlite3 - test/dummy/log/test.log - test/dummy/public/404.html - test/dummy/public/422.html - test/dummy/public/500.html - test/dummy/public/favicon.ico - test/dummy/script/rails - test/dummy/test/fixtures/servers.yml - test/dummy/test/unit/server_test.rb - test/test_helper.rb homepage: https://github.com/shellycloud/after_commit_queue licenses: [] metadata: {} post_install_message: rdoc_options: [] require_paths: - lib required_ruby_version: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' required_rubygems_version: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' requirements: [] rubyforge_project: rubygems_version: 2.4.5.1 signing_key: specification_version: 4 summary: after_commit queue test_files: - test/after_commit_queue_test.rb - test/dummy/app/assets/javascripts/application.js - test/dummy/app/assets/stylesheets/application.css - test/dummy/app/controllers/application_controller.rb - test/dummy/app/helpers/application_helper.rb - test/dummy/app/models/server.rb - test/dummy/app/models/server_observer.rb - test/dummy/app/views/layouts/application.html.erb - test/dummy/config/application.rb - test/dummy/config/boot.rb - test/dummy/config/database.yml - test/dummy/config/environment.rb - test/dummy/config/environments/development.rb - test/dummy/config/environments/production.rb - test/dummy/config/environments/test.rb - test/dummy/config/initializers/backtrace_silencers.rb - test/dummy/config/initializers/inflections.rb - test/dummy/config/initializers/mime_types.rb - test/dummy/config/initializers/secret_token.rb - test/dummy/config/initializers/session_store.rb - test/dummy/config/initializers/wrap_parameters.rb - test/dummy/config/locales/en.yml - test/dummy/config/routes.rb - test/dummy/config.ru - test/dummy/db/migrate/20120622135717_create_servers.rb - test/dummy/db/schema.rb - test/dummy/db/test.sqlite3 - test/dummy/log/test.log - test/dummy/public/404.html - test/dummy/public/422.html - test/dummy/public/500.html - test/dummy/public/favicon.ico - test/dummy/Rakefile - test/dummy/README.rdoc - test/dummy/script/rails - test/dummy/test/fixtures/servers.yml - test/dummy/test/unit/server_test.rb - test/test_helper.rb after-commit-queue-1.3.0/lib/0000755000175600017570000000000012617425145015042 5ustar pravipraviafter-commit-queue-1.3.0/lib/after_commit_queue/0000755000175600017570000000000012617425145020717 5ustar pravipraviafter-commit-queue-1.3.0/lib/after_commit_queue/version.rb0000644000175600017570000000006012617425145022725 0ustar pravipravimodule AfterCommitQueue VERSION = "1.3.0" end after-commit-queue-1.3.0/lib/after_commit_queue.rb0000644000175600017570000000155212617425145021247 0ustar pravipravimodule AfterCommitQueue extend ActiveSupport::Concern included do after_commit :_run_after_commit_queue after_rollback :_clear_after_commit_queue end # Public: Add method to after commit queue def run_after_commit(method = nil, &block) _after_commit_queue << Proc.new { self.send(method) } if method _after_commit_queue << block if block true end protected # Protected: Is called as after_commit callback # runs methods from the queue and clears the queue afterwards def _run_after_commit_queue _after_commit_queue.each do |action| self.instance_eval &action end @after_commit_queue.clear end # Protected: Return after commit queue # Returns: Array with methods to run def _after_commit_queue @after_commit_queue ||= [] end def _clear_after_commit_queue _after_commit_queue.clear end end after-commit-queue-1.3.0/lib/tasks/0000755000175600017570000000000012617425145016167 5ustar pravipraviafter-commit-queue-1.3.0/lib/tasks/after_commit_queue_tasks.rake0000644000175600017570000000014012617425145024110 0ustar pravipravi# desc "Explaining what the task does" # task :after_commit_queue do # # Task goes here # end after-commit-queue-1.3.0/Rakefile0000644000175600017570000000174312617425145015746 0ustar pravipravi#!/usr/bin/env rake begin require 'bundler/setup' rescue LoadError puts 'You must `gem install bundler` and `bundle install` to run rake tasks' end begin require 'rdoc/task' rescue LoadError require 'rdoc/rdoc' require 'rake/rdoctask' RDoc::Task = Rake::RDocTask end RDoc::Task.new(:rdoc) do |rdoc| rdoc.rdoc_dir = 'rdoc' rdoc.title = 'AfterCommitQueue' rdoc.options << '--line-numbers' rdoc.rdoc_files.include('README.rdoc') rdoc.rdoc_files.include('lib/**/*.rb') end Bundler::GemHelper.install_tasks require 'rake/testtask' Rake::TestTask.new(:test) do |t| t.libs << 'lib' t.libs << 'test' t.pattern = 'test/**/*_test.rb' t.verbose = false end task :default => :test APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__) load 'rails/tasks/engine.rake' Rake::Task['test'].enhance ['app:db:drop'] Rake::Task['test'].enhance ['app:db:create'] Rake::Task['test'].enhance ['app:db:migrate'] Rake::Task['test'].enhance ['app:db:test:prepare'] after-commit-queue-1.3.0/MIT-LICENSE0000644000175600017570000000203012617425145015723 0ustar pravipraviCopyright 2012 YOURNAME Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.