padlock-rails 0.1.2 → 0.1.3

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: fdcd70e4ffc22f20c1ff8468ccaaaefa937fbe3e
4
- data.tar.gz: 86a6f5a1a390555bc0c98727eb2915b2809d28ad
3
+ metadata.gz: 046dbff378af3e17c6b661acaf2683015ea4e50a
4
+ data.tar.gz: a8c5353ef666185cfb5b8deb09c3d2019f398e09
5
5
  SHA512:
6
- metadata.gz: 69efb50730fee101b34e3991baba8fc8646e923f8b35c2930b0f60e1999af0c9eb28062816693156ed3a6e56491b02d2652309d2dc750d58497282a157ba6b16
7
- data.tar.gz: d9bfc6374f5f3ec717a30a9b9aec6709e5c48a8a66246ef987c9f70ffa608f773344f623ebbfa5ed6d6fae0a51ca7eec3f380e9c5793566758ed1bd6d0ab0d19
6
+ metadata.gz: 016cdd6415ca9fe2b23ebd57f6cb4ec055157c3af9a611d7d3648961c4d4e682bfd10f2545cc66e297b7558c68615bdf1c34a318f95a9cc1d0df99a0730846ee
7
+ data.tar.gz: 46140f2386b0606946d5a9122e8af328547b3ba6de847b3225e9d9fd6259be1ec4997aaf54384f0d3eb7587311b3b597e4cb16322d3c477ae3d086b56aaedbb4
@@ -3,4 +3,4 @@ script: "bundle exec rspec spec"
3
3
  language: ruby
4
4
 
5
5
  rvm:
6
- - 1.9.3
6
+ - 2.3.1
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 acuppy
1
+ Copyright (c) 2013 Adam Cuppy (Coding Zeal)
2
2
 
3
3
  MIT License
4
4
 
@@ -4,7 +4,7 @@ require "active_record"
4
4
  module Padlock
5
5
  class << self
6
6
  def config
7
- @@config ||= OpenStruct.new(
7
+ @config ||= OpenStruct.new(
8
8
  table_name: "padlocks",
9
9
  user_foreign_key: "user_id",
10
10
  user_class_name: "User",
@@ -25,7 +25,7 @@ module Padlock
25
25
  end
26
26
 
27
27
  def unlock! *objects
28
- objects.each { |object| object.unlock! }
28
+ objects.each(&:unlock!)
29
29
  end
30
30
 
31
31
  def unlocked? object
@@ -37,18 +37,15 @@ module Padlock
37
37
  end
38
38
 
39
39
  def touch *objects
40
- objects.each do |object|
41
- if object.locked?
42
- object.updated_at = Time.now
43
- object.save
44
- end
40
+ objects.select(&:locked?).each do |object|
41
+ object.update_attribute(:updated_at, Time.zone.now)
45
42
  end
46
43
  end
47
44
 
48
45
  private
49
46
 
50
47
  def timeout
51
- Time.now - config.timeout
48
+ Time.zone.now - config.timeout
52
49
  end
53
50
 
54
51
  def stale_locks
@@ -1,3 +1,3 @@
1
1
  module Padlock
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -18,9 +18,10 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  spec.add_development_dependency "bundler", ">= 1.3"
20
20
  spec.add_development_dependency "rake"
21
- spec.add_development_dependency "rspec", ">= 2.14.1"
21
+ spec.add_development_dependency "rspec", ">= 3.0"
22
+ spec.add_development_dependency "rspec-its"
22
23
  spec.add_development_dependency "generator_spec"
23
- spec.add_development_dependency "sqlite3", ">= 1.3.0"
24
+ spec.add_development_dependency "sqlite3", ">= 1.3.13"
24
25
  spec.add_development_dependency "pry"
25
26
  spec.add_development_dependency "activerecord", ">= 4.0.0"
26
27
  end
@@ -56,7 +56,7 @@ describe Padlock do
56
56
 
57
57
  it do
58
58
  object.should_receive(:locked?).and_return(true)
59
- expect(Padlock.locked?(object)).to be_true
59
+ expect(Padlock.locked?(object)).to eq true
60
60
  end
61
61
  end
62
62
 
@@ -83,14 +83,14 @@ describe Padlock do
83
83
 
84
84
  it do
85
85
  object.should_receive(:unlocked?).and_return(true)
86
- expect(Padlock.unlocked?(object)).to be_true
86
+ expect(Padlock.unlocked?(object)).to eq true
87
87
  end
88
88
  end
89
89
 
90
90
  describe ".unlock_stale" do
91
- let(:object) { LockableObject.create!(created_at: Time.now - 1.week, updated_at: updated_at) }
91
+ let(:object) { LockableObject.create!(created_at: Time.zone.now - 1.week, updated_at: updated_at) }
92
92
  let(:locked?) { true }
93
- let(:updated_at) { Time.now - 2.hours }
93
+ let(:updated_at) { Time.zone.now - 2.hours }
94
94
  let(:fake_relation) { double(:fake_relation) }
95
95
 
96
96
  before do
@@ -118,8 +118,7 @@ describe Padlock do
118
118
  let(:locked?) { true }
119
119
 
120
120
  it "sets a new value on the updated_at column and saves it" do
121
- expect(object).to receive(:updated_at=)
122
- expect(object).to receive(:save)
121
+ expect(object).to receive(:update_attribute).with(:updated_at, anything)
123
122
  Padlock.touch(object)
124
123
  end
125
124
  end
@@ -128,8 +127,7 @@ describe Padlock do
128
127
  let(:locked?) { false }
129
128
 
130
129
  it "leaves the object uneffected" do
131
- expect(object).to_not receive(:updated_at=)
132
- expect(object).to_not receive(:save)
130
+ expect(object).to_not receive(:update_attribute)
133
131
  Padlock.touch(object)
134
132
  end
135
133
  end
@@ -44,12 +44,12 @@ describe User do
44
44
 
45
45
  context "when included" do
46
46
  let(:include?) { true }
47
- it { expect(subject.locked?(object)).to be_true }
47
+ it { expect(subject.locked?(object)).to eq true }
48
48
  end
49
49
 
50
50
  context "when not included" do
51
51
  let(:include?) { false }
52
- it { expect(subject.locked?(object)).to be_false }
52
+ it { expect(subject.locked?(object)).to eq false }
53
53
  end
54
54
  end
55
55
  end
@@ -2,6 +2,7 @@ require 'rubygems'
2
2
  require 'active_record'
3
3
  require 'rspec'
4
4
  require 'rspec/autorun'
5
+ require 'rspec/its'
5
6
  require 'pry'
6
7
  require "generator_spec"
7
8
 
@@ -14,6 +15,9 @@ require 'padlock'
14
15
  RSpec.configure do |c|
15
16
  c.before(:all) { setup_db }
16
17
  c.after(:all) { teardown_db }
18
+ c.before(:suite) do
19
+ Time.zone = 'Pacific Time (US & Canada)'
20
+ end
17
21
  end
18
22
 
19
23
  ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: padlock-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Coding Zeal
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-02-18 00:00:00.000000000 Z
12
+ date: 2017-01-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -45,14 +45,28 @@ dependencies:
45
45
  requirements:
46
46
  - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: 2.14.1
48
+ version: '3.0'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: 2.14.1
55
+ version: '3.0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rspec-its
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
56
70
  - !ruby/object:Gem::Dependency
57
71
  name: generator_spec
58
72
  requirement: !ruby/object:Gem::Requirement
@@ -73,14 +87,14 @@ dependencies:
73
87
  requirements:
74
88
  - - ">="
75
89
  - !ruby/object:Gem::Version
76
- version: 1.3.0
90
+ version: 1.3.13
77
91
  type: :development
78
92
  prerelease: false
79
93
  version_requirements: !ruby/object:Gem::Requirement
80
94
  requirements:
81
95
  - - ">="
82
96
  - !ruby/object:Gem::Version
83
- version: 1.3.0
97
+ version: 1.3.13
84
98
  - !ruby/object:Gem::Dependency
85
99
  name: pry
86
100
  requirement: !ruby/object:Gem::Requirement
@@ -158,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
158
172
  version: '0'
159
173
  requirements: []
160
174
  rubyforge_project:
161
- rubygems_version: 2.2.2
175
+ rubygems_version: 2.5.2
162
176
  signing_key:
163
177
  specification_version: 4
164
178
  summary: Lock a record for editing to avoid concurrent editing collision prevention