after_commit_action 0.1.4 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b4e82136b05236fe081e5cf4aa74c36b3d095dc6
4
- data.tar.gz: 179b0cfdf191f0f7cc14a49288f3adba33c57431
3
+ metadata.gz: 7098526c08593ab256447fbe799f786c877e4831
4
+ data.tar.gz: c090670e06e2edc562ffea54df197ffd9f947abb
5
5
  SHA512:
6
- metadata.gz: ad4a8e477a9b1292649c862aea39cbd44726fd820613543a58bbd4ccf3be64a82956d676bbcf9816e7c97ed576e4063c9b6ef8d08ff72953d5f55bc7abdf0040
7
- data.tar.gz: b2bff1637b7b6e60d63bda7e2d7c713611c36dcceda44fa1579ec64a8bf889974b9f26a78ec789bf86bb1c068a120e3cb07c52953c6c08bd6bb60a99258dddc0
6
+ metadata.gz: a89dfaec4db205f167749d6d8b49c9a419352c9ef70f7f2fb4c89c118e55c50a7539dd391ea25147ff2c3982b067860160ac6e7de97f1503336a01f0a41f8688
7
+ data.tar.gz: 2505e04c3e9dc9e18263180925be6d8617d1b936adc8066e698a05e9eb6113e814fc93c62bb84ebfceca3294390a99d9dc42f749b3f9a0280da5ec4b9b0d242c
data/Gemfile CHANGED
@@ -1,10 +1,7 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- # Add dependencies to develop your gem here.
4
- # Include everything needed to run rake, tests, features, etc.
5
- group :development, :test do
6
- gem "rails"
7
- end
3
+ gem "activerecord", ">= 3.0.0"
4
+ gem "activesupport", ">= 3.0.0"
8
5
 
9
6
  group :development do
10
7
  gem "rdoc", "~> 3.12"
data/Gemfile.lock CHANGED
@@ -1,28 +1,6 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- actionmailer (4.2.0)
5
- actionpack (= 4.2.0)
6
- actionview (= 4.2.0)
7
- activejob (= 4.2.0)
8
- mail (~> 2.5, >= 2.5.4)
9
- rails-dom-testing (~> 1.0, >= 1.0.5)
10
- actionpack (4.2.0)
11
- actionview (= 4.2.0)
12
- activesupport (= 4.2.0)
13
- rack (~> 1.6.0)
14
- rack-test (~> 0.6.2)
15
- rails-dom-testing (~> 1.0, >= 1.0.5)
16
- rails-html-sanitizer (~> 1.0, >= 1.0.1)
17
- actionview (4.2.0)
18
- activesupport (= 4.2.0)
19
- builder (~> 3.1)
20
- erubis (~> 2.7.0)
21
- rails-dom-testing (~> 1.0, >= 1.0.5)
22
- rails-html-sanitizer (~> 1.0, >= 1.0.1)
23
- activejob (4.2.0)
24
- activesupport (= 4.2.0)
25
- globalid (>= 0.3.0)
26
4
  activemodel (4.2.0)
27
5
  activesupport (= 4.2.0)
28
6
  builder (~> 3.1)
@@ -42,7 +20,6 @@ GEM
42
20
  descendants_tracker (0.0.4)
43
21
  thread_safe (~> 0.3, >= 0.3.1)
44
22
  diff-lcs (1.1.3)
45
- erubis (2.7.0)
46
23
  faraday (0.9.0)
47
24
  multipart-post (>= 1.2, < 3)
48
25
  git (1.2.8)
@@ -54,11 +31,8 @@ GEM
54
31
  multi_json (>= 1.7.5, < 2.0)
55
32
  nokogiri (~> 1.6.3)
56
33
  oauth2
57
- globalid (0.3.0)
58
- activesupport (>= 4.1.0)
59
34
  hashie (3.3.2)
60
35
  highline (1.6.21)
61
- hike (1.2.3)
62
36
  i18n (0.7.0)
63
37
  jeweler (2.0.1)
64
38
  builder
@@ -71,11 +45,6 @@ GEM
71
45
  rdoc
72
46
  json (1.8.1)
73
47
  jwt (1.2.0)
74
- loofah (2.0.1)
75
- nokogiri (>= 1.5.9)
76
- mail (2.6.3)
77
- mime-types (>= 1.16, < 3)
78
- mime-types (2.4.3)
79
48
  mini_portile (0.6.1)
80
49
  minitest (5.5.0)
81
50
  multi_json (1.10.1)
@@ -90,32 +59,6 @@ GEM
90
59
  multi_xml (~> 0.5)
91
60
  rack (~> 1.2)
92
61
  rack (1.6.0)
93
- rack-test (0.6.2)
94
- rack (>= 1.0)
95
- rails (4.2.0)
96
- actionmailer (= 4.2.0)
97
- actionpack (= 4.2.0)
98
- actionview (= 4.2.0)
99
- activejob (= 4.2.0)
100
- activemodel (= 4.2.0)
101
- activerecord (= 4.2.0)
102
- activesupport (= 4.2.0)
103
- bundler (>= 1.3.0, < 2.0)
104
- railties (= 4.2.0)
105
- sprockets-rails
106
- rails-deprecated_sanitizer (1.0.3)
107
- activesupport (>= 4.2.0.alpha)
108
- rails-dom-testing (1.0.5)
109
- activesupport (>= 4.2.0.beta, < 5.0)
110
- nokogiri (~> 1.6.0)
111
- rails-deprecated_sanitizer (>= 1.0.1)
112
- rails-html-sanitizer (1.0.1)
113
- loofah (~> 2.0)
114
- railties (4.2.0)
115
- actionpack (= 4.2.0)
116
- activesupport (= 4.2.0)
117
- rake (>= 0.8.7)
118
- thor (>= 0.18.1, < 2.0)
119
62
  rake (10.4.2)
120
63
  rdoc (3.12.2)
121
64
  json (~> 1.4)
@@ -128,19 +71,8 @@ GEM
128
71
  diff-lcs (~> 1.1.2)
129
72
  rspec-extra-formatters (1.0.0)
130
73
  rspec-mocks (2.8.0)
131
- sprockets (2.12.3)
132
- hike (~> 1.2)
133
- multi_json (~> 1.0)
134
- rack (~> 1.0)
135
- tilt (~> 1.1, != 1.3.0)
136
- sprockets-rails (2.2.2)
137
- actionpack (>= 3.0)
138
- activesupport (>= 3.0)
139
- sprockets (>= 2.8, < 4.0)
140
74
  sqlite3 (1.3.10)
141
- thor (0.19.1)
142
75
  thread_safe (0.3.4)
143
- tilt (1.4.1)
144
76
  tzinfo (1.2.2)
145
77
  thread_safe (~> 0.1)
146
78
 
@@ -148,9 +80,10 @@ PLATFORMS
148
80
  ruby
149
81
 
150
82
  DEPENDENCIES
83
+ activerecord (>= 3.0.0)
84
+ activesupport (>= 3.0.0)
151
85
  bundler (>= 1.1.3)
152
86
  jeweler (~> 2.0.1)
153
- rails
154
87
  rdoc (~> 3.12)
155
88
  rspec (~> 2.8.0)
156
89
  rspec-extra-formatters
data/README.md CHANGED
@@ -5,6 +5,7 @@ Use this module to defer actions to the after-commit hook. This is useful if you
5
5
  ## Usage
6
6
 
7
7
  ```ruby
8
+ include AfterCommitAction
8
9
  after_create :my_hook
9
10
  def my_hook
10
11
  execute_after_commit { puts "This is called after committing the transaction. "}
data/Rakefile CHANGED
@@ -21,8 +21,6 @@ Jeweler::Tasks.new do |gem|
21
21
  gem.description = %Q{Use this module to defer actions to the after-commit hook. This is useful if you want to trigger actions in after_create, after_destroy and after_update callbacks but want to execute them outside of the transaction (for example, to avoid deadlocks).}
22
22
  gem.email = "magnus@bestvendor.com"
23
23
  gem.authors = ["BestVendor"]
24
-
25
- gem.add_dependency 'activerecord', '>= 3.0.0'
26
24
  end
27
25
  Jeweler::RubygemsDotOrgTasks.new
28
26
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.4
1
+ 1.0.0
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: after_commit_action 0.1.4 ruby lib
5
+ # stub: after_commit_action 1.0.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "after_commit_action"
9
- s.version = "0.1.4"
9
+ s.version = "1.0.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["BestVendor"]
14
- s.date = "2014-12-25"
14
+ s.date = "2015-03-07"
15
15
  s.description = "Use this module to defer actions to the after-commit hook. This is useful if you want to trigger actions in after_create, after_destroy and after_update callbacks but want to execute them outside of the transaction (for example, to avoid deadlocks)."
16
16
  s.email = "magnus@bestvendor.com"
17
17
  s.extra_rdoc_files = [
@@ -87,31 +87,31 @@ Gem::Specification.new do |s|
87
87
  ]
88
88
  s.homepage = "http://github.com/magnusvk/after_commit_action"
89
89
  s.licenses = ["MIT"]
90
- s.rubygems_version = "2.2.2"
90
+ s.rubygems_version = "2.4.3"
91
91
  s.summary = "Easily defer blocks of code to the after-commit action of an ActiveRecord model."
92
92
 
93
93
  if s.respond_to? :specification_version then
94
94
  s.specification_version = 4
95
95
 
96
96
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
97
- s.add_development_dependency(%q<rails>, [">= 0"])
97
+ s.add_runtime_dependency(%q<activerecord>, [">= 3.0.0"])
98
+ s.add_runtime_dependency(%q<activesupport>, [">= 3.0.0"])
98
99
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
99
100
  s.add_development_dependency(%q<bundler>, [">= 1.1.3"])
100
101
  s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
101
- s.add_runtime_dependency(%q<activerecord>, [">= 3.0.0"])
102
102
  else
103
- s.add_dependency(%q<rails>, [">= 0"])
103
+ s.add_dependency(%q<activerecord>, [">= 3.0.0"])
104
+ s.add_dependency(%q<activesupport>, [">= 3.0.0"])
104
105
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
105
106
  s.add_dependency(%q<bundler>, [">= 1.1.3"])
106
107
  s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
107
- s.add_dependency(%q<activerecord>, [">= 3.0.0"])
108
108
  end
109
109
  else
110
- s.add_dependency(%q<rails>, [">= 0"])
110
+ s.add_dependency(%q<activerecord>, [">= 3.0.0"])
111
+ s.add_dependency(%q<activesupport>, [">= 3.0.0"])
111
112
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
112
113
  s.add_dependency(%q<bundler>, [">= 1.1.3"])
113
114
  s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
114
- s.add_dependency(%q<activerecord>, [">= 3.0.0"])
115
115
  end
116
116
  end
117
117
 
@@ -7,49 +7,36 @@
7
7
  # def my_hook
8
8
  # execute_after_commit { puts "This is called after committing the transaction. "}
9
9
  # end
10
+ require 'active_support/concern'
10
11
 
11
12
  module AfterCommitAction
13
+ extend ActiveSupport::Concern
12
14
 
13
- module ActiveRecord
14
-
15
- def self.included(base)
16
- base.after_commit :_after_commit_hook
17
- end
18
-
19
- def execute_after_commit(&block)
20
- @_execute_after_commit ||= []
21
- @_execute_after_commit<< block
22
- end
23
-
24
- def _after_commit_hook
25
- begin
26
- until @_execute_after_commit.blank?
27
- @_execute_after_commit.shift.call
28
- end
29
- rescue => e
30
- if defined?(Exceptional)
31
- # Rails quietly swallows exceptions in after-commit actions; to avoid missing these
32
- # exceptions, we pass them to Exceptional explicitly
33
- Exceptional.context(:after_commit_entity => self.inspect)
34
- Exceptional.handle(e, "execute_after_commit")
35
- else
36
- Rails.logger.error "Error in execute_after_commit block: #{e.inspect}"
37
- end
38
- raise e
39
- end
40
- end
15
+ included do
16
+ after_commit :_after_commit_hook
17
+ end
41
18
 
19
+ def execute_after_commit(&block)
20
+ @_execute_after_commit ||= []
21
+ @_execute_after_commit<< block
42
22
  end
43
23
 
44
- if defined?(Rails) # if this is a full blown rails app, use a railtie. This avoids deprecation warnings in Rails 4.2
45
- class Railtie < Rails::Railtie
46
- initializer "active_record.include_plugins" do
47
- ActiveSupport.on_load(:active_record) do
48
- ::ActiveRecord::Base.send :include, ActiveRecord
49
- end
24
+ def _after_commit_hook
25
+ begin
26
+ until @_execute_after_commit.blank?
27
+ @_execute_after_commit.shift.call
50
28
  end
29
+ rescue => e
30
+ if defined?(Exceptional)
31
+ # Rails quietly swallows exceptions in after-commit actions; to avoid missing these
32
+ # exceptions, we pass them to Exceptional explicitly
33
+ Exceptional.context(:after_commit_entity => self.inspect)
34
+ Exceptional.handle(e, "execute_after_commit")
35
+ else
36
+ Rails.logger.error "Error in execute_after_commit block: #{e.inspect}"
37
+ end
38
+ raise e
51
39
  end
52
- else
53
- ::ActiveRecord::Base.send :include, ActiveRecord
54
40
  end
41
+
55
42
  end
@@ -1,4 +1,6 @@
1
1
  class Tester < ActiveRecord::Base
2
+ include AfterCommitAction
3
+
2
4
  after_initialize :after_initialize
3
5
 
4
6
  before_create :before_create
@@ -15,7 +17,7 @@ class Tester < ActiveRecord::Base
15
17
  def before_create
16
18
  execute_after_commit { @array<< 'before_create' }
17
19
  end
18
-
20
+
19
21
  def after_create
20
22
  execute_after_commit { @array<< 'after_create' }
21
23
  end
@@ -44,12 +44,6 @@ module RailsApp
44
44
  # like if you have constraints or database-specific column types
45
45
  # config.active_record.schema_format = :sql
46
46
 
47
- # Enforce whitelist mode for mass assignment.
48
- # This will create an empty whitelist of attributes available for mass-assignment for all models
49
- # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
50
- # parameters by using an attr_accessible or attr_protected declaration.
51
- config.active_record.whitelist_attributes = true
52
-
53
47
  # Enable the asset pipeline
54
48
  config.assets.enabled = true
55
49
 
@@ -22,13 +22,6 @@ RailsApp::Application.configure do
22
22
  # Only use best-standards-support built into browsers
23
23
  config.action_dispatch.best_standards_support = :builtin
24
24
 
25
- # Raise exception on mass assignment protection for Active Record models
26
- config.active_record.mass_assignment_sanitizer = :strict
27
-
28
- # Log the query plan for queries taking more than this (works
29
- # with SQLite, MySQL, and PostgreSQL)
30
- config.active_record.auto_explain_threshold_in_seconds = 0.5
31
-
32
25
  # Do not compress assets
33
26
  config.assets.compress = false
34
27
 
@@ -60,8 +60,4 @@ RailsApp::Application.configure do
60
60
 
61
61
  # Send deprecation notices to registered listeners
62
62
  config.active_support.deprecation = :notify
63
-
64
- # Log the query plan for queries taking more than this (works
65
- # with SQLite, MySQL, and PostgreSQL)
66
- # config.active_record.auto_explain_threshold_in_seconds = 0.5
67
63
  end
@@ -29,9 +29,6 @@ RailsApp::Application.configure do
29
29
  # ActionMailer::Base.deliveries array.
30
30
  config.action_mailer.delivery_method = :test
31
31
 
32
- # Raise exception on mass assignment protection for Active Record models
33
- config.active_record.mass_assignment_sanitizer = :strict
34
-
35
32
  # Print deprecation notices to the stderr
36
33
  config.active_support.deprecation = :stderr
37
34
  end
data/spec/spec_helper.rb CHANGED
@@ -10,9 +10,3 @@ load "#{File.dirname(__FILE__)}/schema.rb"
10
10
  # Requires supporting files with custom matchers and macros, etc,
11
11
  # in ./support/ and its subdirectories.
12
12
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
13
-
14
- RSpec.configure do |config|
15
- config.before :suite do
16
- ActiveRecord::Base.send :include, AfterCommitAction::ActiveRecord
17
- end
18
- end
metadata CHANGED
@@ -1,29 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: after_commit_action
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - BestVendor
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-25 00:00:00.000000000 Z
11
+ date: 2015-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
19
+ version: 3.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 3.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 3.0.0
34
+ type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - ">="
25
39
  - !ruby/object:Gem::Version
26
- version: '0'
40
+ version: 3.0.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rdoc
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -66,20 +80,6 @@ dependencies:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
82
  version: 2.0.1
69
- - !ruby/object:Gem::Dependency
70
- name: activerecord
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: 3.0.0
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: 3.0.0
83
83
  description: Use this module to defer actions to the after-commit hook. This is useful
84
84
  if you want to trigger actions in after_create, after_destroy and after_update callbacks
85
85
  but want to execute them outside of the transaction (for example, to avoid deadlocks).
@@ -175,7 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
175
  version: '0'
176
176
  requirements: []
177
177
  rubyforge_project:
178
- rubygems_version: 2.2.2
178
+ rubygems_version: 2.4.3
179
179
  signing_key:
180
180
  specification_version: 4
181
181
  summary: Easily defer blocks of code to the after-commit action of an ActiveRecord