ar_default_values 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
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