norton 0.0.21 → 0.0.22

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: cbb10d14e0bb84de906695604f612419d0cf08bc
4
- data.tar.gz: 115421a1dc95e880f86c5edc172dd88483dca2cf
3
+ metadata.gz: 0b5906f15562fcd49ad8fcd7a1328a12758984b5
4
+ data.tar.gz: bd7baed316f3532ece1c2567959ea1f7e408d7ee
5
5
  SHA512:
6
- metadata.gz: 09e28c1dd8c068c30917a588e92c4f59a6062e42f4165848ce0c48586443a77152d7bdf8a992776b8eb51d435110c5a4bbc37bbc41eae48f29cdf34eb696e1b3
7
- data.tar.gz: f94aaedf2d9ae8106a13998f77c6af5f175a2d47dd9782e1d48f5d0519c7509b0cba4070c9c6ac14cd86cad609159f773e29a3ff440fe4174eee026437b11da3
6
+ metadata.gz: 0ae278996ed1de62b9a54024ea6fb26c7a823c0a1eeb8afa61ba6807153b7812aeef1903193c77033df6e9a8c4edeb59816c7857d63e563225e4fbf262b69638
7
+ data.tar.gz: 3ae1acec911911dc8943814071bfd0c8f845e0139e2897b523a67f461c60ec90bb3367b651b621bdb2db0a2f1910650fdb9969c3cb3cfc7883ebafc3a660aee6
@@ -16,7 +16,7 @@ module Norton
16
16
  Norton.redis.with do |conn|
17
17
  ts = conn.get("#{self.class.to_s.pluralize.underscore}:#{self.id}:#{name}").try(:to_i)
18
18
 
19
- if ts.nil?
19
+ if !options[:allow_nil] && ts.nil?
20
20
  ts = Time.now.to_i
21
21
  conn.set("#{self.class.to_s.pluralize.underscore}:#{self.id}:#{name}", ts)
22
22
  end
@@ -44,4 +44,4 @@ module Norton
44
44
  end
45
45
  end
46
46
  end
47
- end
47
+ end
@@ -1,3 +1,3 @@
1
1
  module Norton
2
- VERSION = "0.0.21"
2
+ VERSION = "0.0.22"
3
3
  end
data/norton.gemspec CHANGED
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency "fuubar"
29
29
  spec.add_development_dependency "pry"
30
30
  spec.add_development_dependency "pry-nav"
31
+ spec.add_development_dependency "timecop"
31
32
  spec.add_development_dependency "activerecord", "~> 4.1"
32
33
  spec.add_development_dependency "activerecord-nulldb-adapter"
33
34
  end
@@ -4,6 +4,7 @@ class Dummy
4
4
  include Norton::Timestamp
5
5
 
6
6
  timestamp :born_at
7
+ timestamp :first_kissed_at, :allow_nil => true
7
8
  # timestamp :graduated_at, before_save: -> { title_changed? || content_changed? }
8
9
 
9
10
  def id
@@ -12,7 +13,7 @@ class Dummy
12
13
  end
13
14
 
14
15
  describe Norton::Timestamp do
15
- describe "#timestamp" do
16
+ describe ".timestamp" do
16
17
  it "should add a class method timestamp to the class" do
17
18
  expect(Dummy).to respond_to(:timestamp)
18
19
  end
@@ -25,7 +26,7 @@ describe Norton::Timestamp do
25
26
  end
26
27
  end
27
28
 
28
- describe ".touch_born_at" do
29
+ describe "#touch_born_at" do
29
30
  it 'should set timestamp in redis' do
30
31
  dummy = Dummy.new
31
32
  dummy.touch_born_at
@@ -37,12 +38,29 @@ describe Norton::Timestamp do
37
38
  end
38
39
  end
39
40
 
40
- describe ".born_at" do
41
+ describe "#born_at" do
41
42
  it 'should get the timestamp' do
42
43
  dummy = Dummy.new
43
44
  dummy.touch_born_at
44
45
  expect(dummy.born_at).not_to be_nil
45
46
  expect(dummy.born_at).to be_a(Fixnum)
46
47
  end
48
+
49
+ it "should get current time as a default if timestamp is not touched" do
50
+ dummy = Dummy.new
51
+ t = Time.now
52
+
53
+ Timecop.freeze(t) do
54
+ expect(dummy.born_at).to eq(t.to_i)
55
+ expect(dummy.born_at).to eq(t.to_i)
56
+ end
57
+ end
58
+ end
59
+
60
+ describe "#first_kissed_at" do
61
+ it "should return nil if not set before because it allows nil" do
62
+ dummy = Dummy.new
63
+ expect(dummy.first_kissed_at).to be_nil
64
+ end
47
65
  end
48
66
  end
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,8 @@
1
- require 'active_record'
2
- require 'nulldb'
3
- require 'norton'
4
- require 'rspec'
1
+ require "active_record"
2
+ require "nulldb"
3
+ require "norton"
4
+ require "rspec"
5
+ require "timecop"
5
6
 
6
7
  RSpec.configure do |config|
7
8
  config.expect_with :rspec do |expectations|
@@ -21,6 +22,6 @@ RSpec.configure do |config|
21
22
  end
22
23
  end
23
24
 
24
- Norton.setup url: 'redis://localhost:6379/0'
25
+ Norton.setup url: "redis://localhost:6379/0"
25
26
 
26
27
  ActiveRecord::Base.establish_connection :adapter => :nulldb
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: norton
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.21
4
+ version: 0.0.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Larry Zhao
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-23 00:00:00.000000000 Z
11
+ date: 2017-04-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: timecop
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: activerecord
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -215,7 +229,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
215
229
  version: '0'
216
230
  requirements: []
217
231
  rubyforge_project:
218
- rubygems_version: 2.5.1
232
+ rubygems_version: 2.6.11
219
233
  signing_key:
220
234
  specification_version: 4
221
235
  summary: Provide simple helpers on persist values in redis for performance. Works