defaults 0.1.1 → 1.0.0
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 +7 -0
- data/.gitignore +1 -0
- data/.rspec +1 -1
- data/.travis.yml +12 -0
- data/Gemfile +1 -1
- data/{README.rdoc → README.md} +27 -15
- data/defaults.gemspec +4 -6
- data/lib/defaults.rb +0 -6
- data/lib/defaults/version.rb +3 -3
- data/spec/defaults_spec.rb +12 -12
- data/spec/schema.rb +1 -1
- data/spec/spec_helper.rb +6 -4
- metadata +70 -69
- data/Gemfile.lock +0 -58
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: fc734e69238d4fda99df26e36a733e7de84045f0
|
4
|
+
data.tar.gz: 533d486e9367b67eb614bdd128c9ca078a0c5c60
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7ffda37edf3c7f3524b5176bc5dea771fc417032e6fd5a68b4758fdcef5adb290b172ff16d7dd4a18847025c143e09353b0b597fb624c4918e904248ad5c0bdd
|
7
|
+
data.tar.gz: ca9666b46363045ab7f43232ea3aeea29547b0f2624771e05a069d34eb0b0c8ca0256bcdc61586e00f229178efa850efac092ec96e09b74868e54ce0e036bc16
|
data/.gitignore
CHANGED
data/.rspec
CHANGED
@@ -1 +1 @@
|
|
1
|
-
--
|
1
|
+
--color
|
data/.travis.yml
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
language: ruby
|
2
|
+
script: bundle exec rspec
|
3
|
+
sudo: false
|
4
|
+
cache: bundler
|
5
|
+
addons:
|
6
|
+
code_climate:
|
7
|
+
repo_token:
|
8
|
+
secure: "aViiP4wSO11Sq/7aXMeoo4ksDj3/wPs3do+cP79jSFiF/ZyBnETWOG4BQoO+UWT1IctnlEN/jrAceZZ9VTbxrtkPbJriO4X8AZDweOq4TOvrRa+6jPfuAqh5QZeSbXucrTU54DWCyPDu404bIz+9yh1vFMBtstKQF1mx4MJVXY4="
|
9
|
+
rvm:
|
10
|
+
- '2.0'
|
11
|
+
- '2.1'
|
12
|
+
- '2.2'
|
data/Gemfile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
gemspec
|
data/{README.rdoc → README.md}
RENAMED
@@ -1,36 +1,48 @@
|
|
1
|
-
|
1
|
+
# Defaults
|
2
2
|
|
3
|
-
|
3
|
+
[](https://travis-ci.org/fnando/defaults)
|
4
|
+
[](https://codeclimate.com/github/fnando/defaults)
|
5
|
+
[](https://codeclimate.com/github/fnando/defaults)
|
4
6
|
|
5
|
-
|
7
|
+
## Instalation
|
6
8
|
|
7
|
-
|
9
|
+
Just run `gem install defaults`.
|
8
10
|
|
9
|
-
|
11
|
+
## Usage
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
-
|
13
|
+
Add the method call `defaults` to your model.
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
class Page < ActiveRecord::Base
|
17
|
+
defaults title: "New page", body: "Put your text here"
|
18
|
+
end
|
19
|
+
```
|
14
20
|
|
15
21
|
Attributes will be set only if it's a new record and the attribute is blank.
|
16
22
|
|
17
|
-
Retrieve the default attribute with the
|
23
|
+
Retrieve the default attribute with the `default_for` instance method:
|
18
24
|
|
19
|
-
|
25
|
+
```ruby
|
26
|
+
@page.default_for(:title)
|
27
|
+
```
|
20
28
|
|
21
29
|
You can pass Proc as attribute:
|
22
30
|
|
23
|
-
|
31
|
+
```ruby
|
32
|
+
defaults expires_at: proc { Time.now }
|
33
|
+
```
|
24
34
|
|
25
35
|
You can override the default attributes as follow:
|
26
36
|
|
27
|
-
|
37
|
+
```ruby
|
38
|
+
Page.default_options = {title: "Here's your new page", body: "Write your page text"}
|
39
|
+
```
|
28
40
|
|
29
|
-
|
41
|
+
## Maintainer
|
30
42
|
|
31
43
|
* Nando Vieira - http://simplesideias.com.br
|
32
44
|
|
33
|
-
|
45
|
+
## License
|
34
46
|
|
35
47
|
(The MIT License)
|
36
48
|
|
@@ -51,4 +63,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
51
63
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
52
64
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
53
65
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
54
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
66
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/defaults.gemspec
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require "defaults/version"
|
1
|
+
require "./lib/defaults/version"
|
4
2
|
|
5
3
|
Gem::Specification.new do |s|
|
6
4
|
s.name = "defaults"
|
@@ -17,8 +15,8 @@ Gem::Specification.new do |s|
|
|
17
15
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
16
|
s.require_paths = ["lib"]
|
19
17
|
|
20
|
-
s.add_development_dependency "activerecord", "
|
18
|
+
s.add_development_dependency "activerecord", ">= 3.0.0"
|
21
19
|
s.add_development_dependency "sqlite3-ruby"
|
22
|
-
s.add_development_dependency "rspec"
|
23
|
-
s.add_development_dependency "
|
20
|
+
s.add_development_dependency "rspec"
|
21
|
+
s.add_development_dependency "codeclimate-test-reporter"
|
24
22
|
end
|
data/lib/defaults.rb
CHANGED
@@ -47,10 +47,4 @@ module Defaults
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
# ActiveRecord only calls after_initialize callbacks only if is
|
51
|
-
# explicit defined in a class.
|
52
|
-
if ActiveRecord::VERSION::STRING < "3.0"
|
53
|
-
class ActiveRecord::Base; def after_initialize; end; end
|
54
|
-
end
|
55
|
-
|
56
50
|
ActiveRecord::Base.send(:include, Defaults)
|
data/lib/defaults/version.rb
CHANGED
data/spec/defaults_spec.rb
CHANGED
@@ -26,27 +26,27 @@ describe Defaults do
|
|
26
26
|
end
|
27
27
|
|
28
28
|
it "sets default values" do
|
29
|
-
@new_donut.flavor.
|
30
|
-
@new_donut.name.
|
31
|
-
@new_donut.maker.
|
32
|
-
@new_donut.class_name.
|
33
|
-
@new_donut.quantity.
|
29
|
+
expect(@new_donut.flavor).to eq("cream")
|
30
|
+
expect(@new_donut.name).to eq("Cream")
|
31
|
+
expect(@new_donut.maker).to eq("Dunkin Donuts")
|
32
|
+
expect(@new_donut.class_name).to eq("Donut")
|
33
|
+
expect(@new_donut.quantity).to eq(5)
|
34
34
|
end
|
35
35
|
|
36
36
|
it "sets default values only when have blank attributes" do
|
37
|
-
@donut.flavor.
|
38
|
-
@donut.quantity.
|
37
|
+
expect(@donut.flavor).to eq("vanilla")
|
38
|
+
expect(@donut.quantity).to eq(5)
|
39
39
|
end
|
40
40
|
|
41
41
|
it "returns default value for an attribute" do
|
42
|
-
@donut.default_for(:flavor).
|
43
|
-
@donut.default_for(:maker).
|
44
|
-
@donut.default_for(:class_name).
|
45
|
-
@donut.default_for(:quantity).
|
42
|
+
expect(@donut.default_for(:flavor)).to eq("cream")
|
43
|
+
expect(@donut.default_for(:maker)).to eq("Dunkin Donuts")
|
44
|
+
expect(@donut.default_for(:class_name)).to eq("Donut")
|
45
|
+
expect(@donut.default_for(:quantity)).to eq(5)
|
46
46
|
end
|
47
47
|
|
48
48
|
it "does not set default values" do
|
49
|
-
Donut.first.flavor.
|
49
|
+
expect(Donut.first.flavor).to eq("vanilla")
|
50
50
|
end
|
51
51
|
|
52
52
|
private
|
data/spec/schema.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
require
|
1
|
+
require 'codeclimate-test-reporter'
|
2
|
+
CodeClimate::TestReporter.start
|
3
|
+
|
4
|
+
require 'bundler/setup'
|
5
|
+
require 'active_record'
|
6
|
+
require 'defaults'
|
5
7
|
|
6
8
|
ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
|
7
9
|
load File.dirname(__FILE__) + "/schema.rb"
|
metadata
CHANGED
@@ -1,77 +1,83 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: defaults
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.1.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
6
5
|
platform: ruby
|
7
|
-
authors:
|
6
|
+
authors:
|
8
7
|
- Nando Vieira
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2015-03-19 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
17
14
|
name: activerecord
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
- - ~>
|
23
|
-
- !ruby/object:Gem::Version
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
24
19
|
version: 3.0.0
|
25
20
|
type: :development
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: sqlite3-ruby
|
29
21
|
prerelease: false
|
30
|
-
|
31
|
-
|
32
|
-
requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
33
24
|
- - ">="
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version:
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 3.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: sqlite3-ruby
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
36
34
|
type: :development
|
37
|
-
version_requirements: *id002
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: rspec
|
40
35
|
prerelease: false
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
47
48
|
type: :development
|
48
|
-
version_requirements: *id003
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: ruby-debug19
|
51
49
|
prerelease: false
|
52
|
-
|
53
|
-
|
54
|
-
requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
55
52
|
- - ">="
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version:
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: codeclimate-test-reporter
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
58
62
|
type: :development
|
59
|
-
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
60
69
|
description: Set default values for ActiveRecord attributes
|
61
|
-
email:
|
70
|
+
email:
|
62
71
|
- fnando.vieira@gmail.com
|
63
72
|
executables: []
|
64
|
-
|
65
73
|
extensions: []
|
66
|
-
|
67
74
|
extra_rdoc_files: []
|
68
|
-
|
69
|
-
|
70
|
-
- .
|
71
|
-
- .
|
75
|
+
files:
|
76
|
+
- ".gitignore"
|
77
|
+
- ".rspec"
|
78
|
+
- ".travis.yml"
|
72
79
|
- Gemfile
|
73
|
-
-
|
74
|
-
- README.rdoc
|
80
|
+
- README.md
|
75
81
|
- Rakefile
|
76
82
|
- defaults.gemspec
|
77
83
|
- lib/defaults.rb
|
@@ -79,35 +85,30 @@ files:
|
|
79
85
|
- spec/defaults_spec.rb
|
80
86
|
- spec/schema.rb
|
81
87
|
- spec/spec_helper.rb
|
82
|
-
has_rdoc: true
|
83
88
|
homepage: http://rubygems.org/gems/defaults
|
84
89
|
licenses: []
|
85
|
-
|
90
|
+
metadata: {}
|
86
91
|
post_install_message:
|
87
92
|
rdoc_options: []
|
88
|
-
|
89
|
-
require_paths:
|
93
|
+
require_paths:
|
90
94
|
- lib
|
91
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
92
|
-
|
93
|
-
requirements:
|
95
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
94
97
|
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version:
|
97
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
|
-
|
99
|
-
requirements:
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
100
102
|
- - ">="
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version:
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
103
105
|
requirements: []
|
104
|
-
|
105
106
|
rubyforge_project:
|
106
|
-
rubygems_version:
|
107
|
+
rubygems_version: 2.4.6
|
107
108
|
signing_key:
|
108
|
-
specification_version:
|
109
|
+
specification_version: 4
|
109
110
|
summary: Set default values for ActiveRecord attributes
|
110
|
-
test_files:
|
111
|
+
test_files:
|
111
112
|
- spec/defaults_spec.rb
|
112
113
|
- spec/schema.rb
|
113
114
|
- spec/spec_helper.rb
|
data/Gemfile.lock
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
defaults (0.1.1)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: http://rubygems.org/
|
8
|
-
specs:
|
9
|
-
activemodel (3.0.5)
|
10
|
-
activesupport (= 3.0.5)
|
11
|
-
builder (~> 2.1.2)
|
12
|
-
i18n (~> 0.4)
|
13
|
-
activerecord (3.0.5)
|
14
|
-
activemodel (= 3.0.5)
|
15
|
-
activesupport (= 3.0.5)
|
16
|
-
arel (~> 2.0.2)
|
17
|
-
tzinfo (~> 0.3.23)
|
18
|
-
activesupport (3.0.5)
|
19
|
-
archive-tar-minitar (0.5.2)
|
20
|
-
arel (2.0.9)
|
21
|
-
builder (2.1.2)
|
22
|
-
columnize (0.3.2)
|
23
|
-
diff-lcs (1.1.2)
|
24
|
-
i18n (0.5.0)
|
25
|
-
linecache19 (0.5.12)
|
26
|
-
ruby_core_source (>= 0.1.4)
|
27
|
-
rspec (2.5.0)
|
28
|
-
rspec-core (~> 2.5.0)
|
29
|
-
rspec-expectations (~> 2.5.0)
|
30
|
-
rspec-mocks (~> 2.5.0)
|
31
|
-
rspec-core (2.5.1)
|
32
|
-
rspec-expectations (2.5.0)
|
33
|
-
diff-lcs (~> 1.1.2)
|
34
|
-
rspec-mocks (2.5.0)
|
35
|
-
ruby-debug-base19 (0.11.25)
|
36
|
-
columnize (>= 0.3.1)
|
37
|
-
linecache19 (>= 0.5.11)
|
38
|
-
ruby_core_source (>= 0.1.4)
|
39
|
-
ruby-debug19 (0.11.6)
|
40
|
-
columnize (>= 0.3.1)
|
41
|
-
linecache19 (>= 0.5.11)
|
42
|
-
ruby-debug-base19 (>= 0.11.19)
|
43
|
-
ruby_core_source (0.1.5)
|
44
|
-
archive-tar-minitar (>= 0.5.2)
|
45
|
-
sqlite3 (1.3.3)
|
46
|
-
sqlite3-ruby (1.3.3)
|
47
|
-
sqlite3 (>= 1.3.3)
|
48
|
-
tzinfo (0.3.26)
|
49
|
-
|
50
|
-
PLATFORMS
|
51
|
-
ruby
|
52
|
-
|
53
|
-
DEPENDENCIES
|
54
|
-
activerecord (~> 3.0.0)
|
55
|
-
defaults!
|
56
|
-
rspec (~> 2.5.0)
|
57
|
-
ruby-debug19
|
58
|
-
sqlite3-ruby
|