sequel_bitemporal 0.6.9 → 0.6.10

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.
data/.travis.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  rvm:
2
- - 1.9.2
3
2
  - 1.9.3
3
+ - 2.0.0
4
4
  notifications:
5
- disabled: true
5
+ disabled: true
@@ -378,12 +378,13 @@ module Sequel
378
378
  return false unless @pending_version
379
379
  return true unless current_version?
380
380
  @current_version_values = current_version.values
381
- pending_version.values.detect do |key, new_value|
381
+ pending_version.columns.detect do |key|
382
+ new_value = pending_version.send key
382
383
  case key
383
384
  when :id, :master_id, :created_at, :expired_at
384
385
  false
385
386
  when :valid_from
386
- new_value && (
387
+ pending_version.values.has_key?(:valid_from) && (
387
388
  new_value<current_version.valid_from ||
388
389
  (
389
390
  current_version.valid_to &&
@@ -391,7 +392,8 @@ module Sequel
391
392
  )
392
393
  )
393
394
  when :valid_to
394
- new_value || new_value!=current_version.valid_to
395
+ pending_version.values.has_key?(:valid_to) &&
396
+ new_value!=current_version.valid_to
395
397
  else
396
398
  if model.version_uses_string_nilifier
397
399
  new_value = nil if current_version.nil_string? key, new_value
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "sequel_bitemporal"
6
- s.version = "0.6.9"
6
+ s.version = "0.6.10"
7
7
  s.authors = ["Joseph HALTER", "Jonathan TRON"]
8
8
  s.email = ["joseph.halter@thetalentbox.com", "jonathan.tron@thetalentbox.com"]
9
9
  s.homepage = "https://github.com/TalentBox/sequel_bitemporal"
@@ -0,0 +1,37 @@
1
+ require "spec_helper"
2
+ require "json"
3
+
4
+ describe "Sequel::Plugins::Bitemporal" do
5
+ include DbHelpers
6
+ before :all do
7
+ db_setup
8
+ @version_class.instance_eval do
9
+ plugin :serialization
10
+ serialize_attributes :json, :name
11
+ end
12
+ end
13
+ subject{ @master_class.new.update_attributes name: {test: 1}, price: 18 }
14
+ it "serializes as expected" do
15
+ subject.name.should == {"test" => 1}
16
+ end
17
+ it "doesn't create a new version when value hasn't changed" do
18
+ name = subject.name.dup
19
+ name["test"] = 1
20
+ subject.attributes = {name: name}
21
+ lambda{ subject.save }.should_not change(@version_class, :count)
22
+ end
23
+ it "doesn't create a new version when value is the same" do
24
+ subject.attributes = {name: {"test" => 1}}
25
+ lambda{ subject.save }.should_not change(@version_class, :count)
26
+ end
27
+ it "does create a new version when value has changed" do
28
+ name = subject.name.dup
29
+ name["test"] = 0
30
+ subject.attributes = {name: name}
31
+ lambda{ subject.save }.should change(@version_class, :count).by 1
32
+ end
33
+ it "does create a new version when value is not the same" do
34
+ subject.attributes = {name: {"test" => 0}}
35
+ lambda{ subject.save }.should change(@version_class, :count).by 1
36
+ end
37
+ end
@@ -1,4 +1,3 @@
1
- ENV["TZ"]="UTC"
2
1
  require "spec_helper"
3
2
 
4
3
  describe "Sequel::Plugins::Bitemporal" do
data/spec/spec_helper.rb CHANGED
@@ -3,3 +3,4 @@ require "timecop"
3
3
  require "pry"
4
4
  DB = Sequel.sqlite
5
5
  Dir[File.expand_path("../support/*.rb", __FILE__)].each{|f| require f}
6
+ ENV["TZ"]="UTC"
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: sequel_bitemporal
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.6.9
5
+ version: 0.6.10
6
6
  platform: ruby
7
7
  authors:
8
8
  - Joseph HALTER
@@ -109,6 +109,7 @@ files:
109
109
  - lib/sequel_bitemporal.rb
110
110
  - sequel_bitemporal.gemspec
111
111
  - spec/bitemporal_date_spec.rb
112
+ - spec/bitemporal_serialization_spec.rb
112
113
  - spec/bitemporal_time_spec.rb
113
114
  - spec/spec_helper.rb
114
115
  - spec/support/bitemporal_matchers.rb
@@ -125,7 +126,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
126
  - !ruby/object:Gem::Version
126
127
  segments:
127
128
  - 0
128
- hash: -620684269279135882
129
+ hash: 334151624443386652
129
130
  version: '0'
130
131
  none: false
131
132
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -134,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
135
  - !ruby/object:Gem::Version
135
136
  segments:
136
137
  - 0
137
- hash: -620684269279135882
138
+ hash: 334151624443386652
138
139
  version: '0'
139
140
  none: false
140
141
  requirements: []
@@ -145,6 +146,7 @@ specification_version: 3
145
146
  summary: Bitemporal versioning for sequel.
146
147
  test_files:
147
148
  - spec/bitemporal_date_spec.rb
149
+ - spec/bitemporal_serialization_spec.rb
148
150
  - spec/bitemporal_time_spec.rb
149
151
  - spec/spec_helper.rb
150
152
  - spec/support/bitemporal_matchers.rb