ar_default_values 0.5.1 → 0.5.2

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: 5f378b412d241888efe1989d935604e0f2bf1ad0
4
- data.tar.gz: 6568b728fa614d3d08572ba593522bfc57d6eebf
3
+ metadata.gz: d55e9df77a2a59d4cc1a067eb18ea9415fd32cfc
4
+ data.tar.gz: 7d0d006e65dd9b081bbbadb88683d0fa71519508
5
5
  SHA512:
6
- metadata.gz: 4714919c1bdc29890ac0e72bffb6e6d09a0168010f8f8543844f4538e848f15a698b768923a6eda5ee55fd6c5d942c582c079af3a8c5fc819b796a58e002fde1
7
- data.tar.gz: 2c3d44bf0989fc5863853c4a84b883902b899fb889afa4a77d351d2a69289d2c8b9116382360cbd2c41effcbd6ec98c44ead679a3842b45576a4ce6f4be1c2e8
6
+ metadata.gz: 2978528bc59894e319565b9344dac52b555fb2a39da7912b0f79180026509f403ac48ec7cfede0fe57a8d98f7d44913c201441abb0c78ea6a569d857f6b7ece3
7
+ data.tar.gz: e1dc8a6d6aff438d737195281b762138a46ab95239271971c60c6d7c134aedde4be4e547607aa1ab8fa5f3d694ea1911518b3b53887ed0e3bc220f3a0439b3bd
data/README.md CHANGED
@@ -1,3 +1,8 @@
1
+ [![Build Status](https://travis-ci.org/masarakki/ar_default_values.svg?branch=master)](https://travis-ci.org/masarakki/ar_default_values)
2
+ [![Dependency Status](https://gemnasium.com/masarakki/ar_default_values.svg)](https://gemnasium.com/masarakki/ar_default_values)
3
+ [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/masarakki/ar_default_values/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/masarakki/ar_default_values/?branch=master)
4
+ [![Coverage Status](https://coveralls.io/repos/masarakki/ar_default_values/badge.png?branch=master)](https://coveralls.io/r/masarakki/ar_default_values?branch=master)
5
+
1
6
  # DefaultValues
2
7
 
3
8
  initialize with default_values
@@ -32,4 +32,5 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency 'guard-bundler'
33
33
  spec.add_development_dependency 'guard-rubocop'
34
34
  spec.add_development_dependency 'rdoc'
35
+ spec.add_development_dependency 'coveralls'
35
36
  end
@@ -5,12 +5,13 @@ module DefaultValues
5
5
  module ClassMethods
6
6
  def default_values(defaults = {}, &block)
7
7
  define_method(:initialize_with_default_values) do |*attributes, &inner_block|
8
- defaults = defaults.merge(block.call) if block_given?
9
- defaults = Hash[defaults.each_pair.map { |key, value| [key, value.is_a?(Proc) ? value.call : value] }]
8
+ values = defaults
9
+ values = values.merge(block.call) if block_given?
10
+ values = Hash[values.each_pair.map { |key, value| [key, value.is_a?(Proc) ? value.call : value] }]
10
11
 
11
12
  initialize_without_default_values(*attributes, &inner_block)
12
13
 
13
- defaults.each_pair do |key, value|
14
+ values.each_pair do |key, value|
14
15
  write_attribute(key, value) unless attribute_present?(key)
15
16
  end
16
17
  end
@@ -1,3 +1,3 @@
1
1
  module DefaultValues
2
- VERSION = '0.5.1'
2
+ VERSION = '0.5.2'
3
3
  end
@@ -7,7 +7,6 @@ class Book1 < Book
7
7
  end
8
8
 
9
9
  class Book2 < Book
10
- self.table_name = :books
11
10
  attr_protected :edition if Rails.version.to_i < 4
12
11
  default_values price: 0, edition: 1 do
13
12
  t = Time.now
@@ -16,17 +15,20 @@ class Book2 < Book
16
15
  end
17
16
 
18
17
  class Book3 < Book
19
- self.table_name = :books
20
18
  attr_accessible :price if Rails.version.to_i < 4
21
19
  default_values price: 0, edition: 1, released_at: -> { Time.now }
22
20
  end
23
21
 
22
+ class Book4 < Book
23
+ default_values released_at: Time.now
24
+ end
25
+
24
26
  describe DefaultValues do
25
27
  let!(:now) { Time.at(Time.now.to_i) }
26
28
 
27
- subject { @sample }
28
29
  describe 'fixed default_values' do
29
30
  before { allow(Time).to receive(:now).and_return(now) }
31
+
30
32
  context 'without attributes' do
31
33
  subject { Book1.new }
32
34
  its(:title) { is_expected.to be_nil }
@@ -42,6 +44,7 @@ describe DefaultValues do
42
44
  its(:edition) { is_expected.to eq 1 }
43
45
  its(:released_at) { is_expected.to eq now }
44
46
  end
47
+
45
48
  context 'with block' do
46
49
  subject do
47
50
  Book1.new do |t|
@@ -66,12 +69,23 @@ describe DefaultValues do
66
69
  end
67
70
 
68
71
  describe 'instance values with block' do
69
- subject { Book2.new }
70
- before do
71
- sleep 1
72
- @target = Book2.new
72
+ context 'released_at: -> { Time.now }' do
73
+ subject { Book2.new }
74
+ before do
75
+ @target = Book2.new
76
+ sleep 1
77
+ end
78
+ its(:released_at) { is_expected.not_to eq @target.released_at }
79
+ end
80
+
81
+ context 'released_at: Time.now' do
82
+ subject { Book4.new }
83
+ before do
84
+ @target = Book4.new
85
+ sleep 1
86
+ end
87
+ its(:released_at) { is_expected.to eq @target.released_at }
73
88
  end
74
- its(:released_at) { is_expected.not_to eq @target.released_at }
75
89
  end
76
90
 
77
91
  context 'both attr_accessible and attr_protected' do
data/spec/rails_helper.rb CHANGED
@@ -2,6 +2,8 @@ ENV['RAILS_ENV'] = 'test'
2
2
  require 'spec_helper'
3
3
  require 'rspec/its'
4
4
  require 'pry'
5
+ require 'coveralls'
6
+ Coveralls.wear!
5
7
  require File.expand_path('../dummy/config/environment.rb', __FILE__)
6
8
  require 'rspec/rails'
7
9
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ar_default_values
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - masarakki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-12 00:00:00.000000000 Z
11
+ date: 2014-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -206,6 +206,20 @@ dependencies:
206
206
  - - '>='
207
207
  - !ruby/object:Gem::Version
208
208
  version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: coveralls
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - '>='
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - '>='
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
209
223
  description: ActiveRecord with default values
210
224
  email:
211
225
  - masaki@hisme.net