attribute-defaults 0.5.0 → 0.9.1

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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/README.rdoc +3 -1
  3. data/lib/attribute_defaults.rb +15 -18
  4. metadata +41 -33
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 38c546a1c23c35b30ed286726bbf47f7202708cbf1fcce9614766e98bee3af60
4
+ data.tar.gz: 8ec2f406c28b50e74ddcc1650ed9e7aded34b47f1787b9eb313e7a000caf59fb
5
+ SHA512:
6
+ metadata.gz: 5aee2bd1dad485a2aa2333a2a47654ae56c8e25880a242420abe3d06792120c02e8f8e07f115cc2ba0b071ea1744f496e1731bb62db05cd65c1f8cbdf2620bfe
7
+ data.tar.gz: a2d5ea51c06d1b56c4281d512531ab2bf2d5cdd08c267b765be2ea37019eb338f881a183c14a8151fb9ca179cb9bef32b65fb30bb3b99ef1b0c43521f6ab9fd9
data/README.rdoc CHANGED
@@ -1,10 +1,12 @@
1
1
  = Attribute Defaults (attribute-defaults)
2
2
 
3
+ {<img src="https://travis-ci.org/bsm/attribute-defaults.png?branch=master" alt="Build Status" />}[https://travis-ci.org/bsm/attribute-defaults]
4
+
3
5
  Simple ActiveRecord plugin that allows to specify default values for attributes.
4
6
 
5
7
  == Installation
6
8
 
7
- Just add <tt>gem attribute-defaults</tt> to your Gemfile.
9
+ Just add <tt>gem 'attribute-defaults'</tt> to your Gemfile.
8
10
 
9
11
  Alternatively, run <tt>sudo gem install attribute-defaults</tt> and add
10
12
  <tt>require 'attribute_defaults'</tt> to your app.
@@ -6,16 +6,15 @@ module ActiveRecord
6
6
  extend ActiveSupport::Concern
7
7
 
8
8
  module ClassMethods
9
-
10
9
  # Set defaults. Examples:
11
10
  # attr_default :age, 12
12
11
  # attr_default :description, '(none)'
13
12
  # attr_default :age do |record|
14
13
  # Time.zone.year - record.dob.year
15
14
  # end
16
- # attr_default :description, '(none)', :if => :blank
17
- # attr_default :description, '(none)', :persisted => false
18
- # attr_default :description, :default => '(none)', :persisted => false
15
+ # attr_default :description, '(none)', if: :blank
16
+ # attr_default :description, '(none)', persisted: false
17
+ # attr_default :description, default: '(none)', persisted: false
19
18
  def attr_default(sym, *args, &block)
20
19
  options = args.extract_options!
21
20
  default = options.delete(:default) || args.shift
@@ -23,38 +22,36 @@ module ActiveRecord
23
22
 
24
23
  evaluator = "__eval_attr_default_for_#{sym}".to_sym
25
24
  setter = "__set_attr_default_for_#{sym}".to_sym
26
- block ||= default.is_a?(Proc) ? default : proc { default }
25
+ block ||= default.is_a?(Proc) ? default : -> { default }
27
26
 
28
27
  after_initialize setter.to_sym
29
28
  define_method(evaluator, &block)
30
29
 
31
30
  module_eval(<<-EVAL, __FILE__, __LINE__ + 1)
32
- def #{setter}
33
- #{'return if persisted?' if options[:persisted] == false}
34
- return unless self.#{sym}.send(:#{options[:if] || 'nil?'})
35
- value = #{evaluator}#{'(self)' unless block.arity.zero?}
36
- self.#{sym} = value.duplicable? ? value.dup : value
37
- rescue ActiveModel::MissingAttributeError
38
- end
31
+ def #{setter} # def __set_attr_default_for_age
32
+ #{'return if persisted?' if options[:persisted] == false} # return if persisted?
33
+ return unless #{sym}.send(:#{options[:if] || 'nil?'}) # return unless age.nil?
34
+ value = #{evaluator}#{'(self)' unless block.arity.zero?} # value = __eval_attr_default_for_age(self)
35
+ self.#{sym} = value.duplicable? ? value.dup : value # self.age = value.duplicable? ? value.dup : value
36
+ rescue ActiveModel::MissingAttributeError # rescue ActiveModel::MissingAttributeError
37
+ end # end
39
38
  EVAL
40
39
  private evaluator, setter
41
40
  end
42
41
 
43
42
  # Default mass-assignment. Examples:
44
- # attr_defaults :description => '(none)', :age => 12
45
- # attr_defaults :description => '(none)', :age => lambda {|r| Time.zone.year - r.dob.year }
46
- # attr_defaults :description => '(none)', :age => { :default => 12, :persisted => false }
43
+ # attr_defaults description: '(none)', age: 12
44
+ # attr_defaults description: '(none)', age: ->r { Time.zone.year - r.dob.year }
45
+ # attr_defaults description: '(none)', age: { default: 12, persisted: false }
47
46
  def attr_defaults(pairs)
48
47
  pairs.each do |pair|
49
- attr_default *pair
48
+ attr_default(*pair)
50
49
  end
51
50
  end
52
-
53
51
  end
54
52
  end
55
53
 
56
54
  class Base
57
55
  include AttributesWithDefaults
58
56
  end
59
-
60
57
  end
metadata CHANGED
@@ -1,78 +1,89 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: attribute-defaults
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
5
- prerelease:
4
+ version: 0.9.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Dimitrij Denissenko
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-09-06 00:00:00.000000000 Z
11
+ date: 2021-03-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activerecord
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
- version: 3.0.0
19
+ version: 5.0.0
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: 7.0.0
22
23
  type: :runtime
23
24
  prerelease: false
24
25
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
26
  requirements:
27
- - - ! '>='
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 5.0.0
30
+ - - "<"
28
31
  - !ruby/object:Gem::Version
29
- version: 3.0.0
32
+ version: 7.0.0
30
33
  - !ruby/object:Gem::Dependency
31
34
  name: rake
32
35
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
36
  requirements:
35
- - - ! '>='
37
+ - - ">="
36
38
  - !ruby/object:Gem::Version
37
39
  version: '0'
38
40
  type: :development
39
41
  prerelease: false
40
42
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
43
  requirements:
43
- - - ! '>='
44
+ - - ">="
44
45
  - !ruby/object:Gem::Version
45
46
  version: '0'
46
47
  - !ruby/object:Gem::Dependency
47
- name: sqlite3-ruby
48
+ name: rspec
48
49
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
50
  requirements:
51
- - - ! '>='
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
57
  requirements:
59
- - - ! '>='
58
+ - - ">="
60
59
  - !ruby/object:Gem::Version
61
60
  version: '0'
62
61
  - !ruby/object:Gem::Dependency
63
- name: rspec
62
+ name: rubocop-bsm
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: sqlite3
64
77
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
78
  requirements:
67
- - - ! '>='
79
+ - - ">="
68
80
  - !ruby/object:Gem::Version
69
81
  version: '0'
70
82
  type: :development
71
83
  prerelease: false
72
84
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
85
  requirements:
75
- - - ! '>='
86
+ - - ">="
76
87
  - !ruby/object:Gem::Version
77
88
  version: '0'
78
89
  description: ActiveRecord plugin that allows to specify default values for attributes
@@ -87,27 +98,24 @@ files:
87
98
  - lib/attribute_defaults.rb
88
99
  homepage: https://github.com/bsm/attribute-defaults
89
100
  licenses: []
101
+ metadata: {}
90
102
  post_install_message:
91
103
  rdoc_options: []
92
104
  require_paths:
93
105
  - lib
94
106
  required_ruby_version: !ruby/object:Gem::Requirement
95
- none: false
96
107
  requirements:
97
- - - ! '>='
108
+ - - ">="
98
109
  - !ruby/object:Gem::Version
99
- version: 1.8.7
110
+ version: '2.6'
100
111
  required_rubygems_version: !ruby/object:Gem::Requirement
101
- none: false
102
112
  requirements:
103
- - - ! '>='
113
+ - - ">="
104
114
  - !ruby/object:Gem::Version
105
- version: 1.3.6
115
+ version: '0'
106
116
  requirements: []
107
- rubyforge_project:
108
- rubygems_version: 1.8.24
117
+ rubygems_version: 3.1.4
109
118
  signing_key:
110
- specification_version: 3
119
+ specification_version: 4
111
120
  summary: Specify default values for ActiveRecord attributes
112
121
  test_files: []
113
- has_rdoc: