ar_default_values 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: cb2ebcc362d9a7af3e6fe45f4f0abba93245d43a
4
+ data.tar.gz: db72b094fa7f00e1d0ce1b4880bdc570b78f0dd1
5
+ SHA512:
6
+ metadata.gz: 6529ca967259cf03e8f439c2dec27912ca1b18f3e771e333ce382301e30b1e9ebd199ca346ce10ebce1bc95df26571bca8cb4636cf7a4ba71c1f893731f8e3de
7
+ data.tar.gz: 212f1e3dfa7f3de2d928214c68d96fa0253f9a9f4e87154848772dcb139a3adb8f62f224713196ef32f77742a7e327eee7eca2a46442df9b4ed2f15c8d38cb3d
data/.gitignore ADDED
@@ -0,0 +1,51 @@
1
+ Gemfile.lock
2
+
3
+ # rcov generated
4
+ coverage
5
+ coverage.data
6
+
7
+ # rdoc generated
8
+ rdoc
9
+
10
+ # yard generated
11
+ doc
12
+ .yardoc
13
+
14
+ # bundler
15
+ .bundle
16
+
17
+ # jeweler generated
18
+ pkg
19
+
20
+ # Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
21
+ #
22
+ # * Create a file at ~/.gitignore
23
+ # * Include files you want ignored
24
+ # * Run: git config --global core.excludesfile ~/.gitignore
25
+ #
26
+ # After doing this, these files will be ignored in all your git projects,
27
+ # saving you from having to 'pollute' every project you touch with them
28
+ #
29
+ # Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
30
+ #
31
+ # For MacOS:
32
+ #
33
+ #.DS_Store
34
+
35
+ # For TextMate
36
+ #*.tmproj
37
+ #tmtags
38
+
39
+ # For emacs:
40
+ #*~
41
+ #\#*
42
+ #.\#*
43
+
44
+ # For vim:
45
+ #*.swp
46
+
47
+ # For redcar:
48
+ #.redcar
49
+
50
+ # For rubinius:
51
+ #*.rbc
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ rvm:
2
+ - 1.9.3
3
+ - 2.0.0
4
+
data/Gemfile CHANGED
@@ -1,17 +1,10 @@
1
1
  source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
5
2
 
6
- # Add dependencies to develop your gem here.
7
- # Include everything needed to run rake, tests, features, etc.
8
- gem "activesupport", ">= 3.0.0"
9
- gem "activerecord", ">= 3.0.0"
3
+ gemspec
10
4
 
11
5
  group :development do
6
+ gem "pry"
12
7
  gem "rspec"
13
8
  gem "rdoc"
14
- gem "bundler"
15
- gem "jeweler"
16
9
  gem "sqlite3"
17
10
  end
data/LICENSE.txt CHANGED
@@ -1,4 +1,6 @@
1
- Copyright (c) 2012 Yamada Masaki
1
+ Copyright (c) 2012 masarakki
2
+
3
+ MIT License
2
4
 
3
5
  Permission is hereby granted, free of charge, to any person obtaining
4
6
  a copy of this software and associated documentation files (the
data/README.md ADDED
@@ -0,0 +1,44 @@
1
+ # DefaultValues
2
+
3
+ initialize with default_values
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'ar_default_values'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install ar_default_values
18
+
19
+ ## Usage
20
+
21
+ you can specify default values with hash:
22
+
23
+ ```ruby
24
+ class Book < ActiveRecord::Base
25
+ default_values rating: 'r18', type: 'comic' do
26
+ t = Time.now
27
+ { :released_at => t, :edition_updated_at => t }
28
+ end
29
+ end
30
+
31
+ book = Book.new
32
+ book.rating # => "r18"
33
+ book.type # => "comic"
34
+ book.title # => nil
35
+ book.released_at == book.edition_updated_at # => true
36
+ ```
37
+
38
+ ## Contributing
39
+
40
+ 1. Fork it
41
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
42
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
43
+ 4. Push to the branch (`git push origin my-new-feature`)
44
+ 5. Create new Pull Request
data/Rakefile CHANGED
@@ -1,35 +1,9 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'rubygems'
4
- require 'bundler'
5
- begin
6
- Bundler.setup(:default, :development)
7
- rescue Bundler::BundlerError => e
8
- $stderr.puts e.message
9
- $stderr.puts "Run `bundle install` to install missing gems"
10
- exit e.status_code
11
- end
12
- require 'rake'
13
-
14
- require 'jeweler'
15
- Jeweler::Tasks.new do |gem|
16
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
- gem.name = "ar_default_values"
18
- gem.homepage = "http://github.com/masarakki/ar_default_values"
19
- gem.license = "MIT"
20
- gem.summary = %Q{ActiveRecord with default values}
21
- gem.description = %Q{ActiveRecord with default values}
22
- gem.email = "masaki@hisme.net"
23
- gem.authors = ["masarakki"]
24
- # dependencies defined in Gemfile
25
- end
26
- Jeweler::RubygemsDotOrgTasks.new
3
+ require 'bundler/gem_tasks'
27
4
 
28
- require 'rspec/core'
29
5
  require 'rspec/core/rake_task'
30
- RSpec::Core::RakeTask.new(:spec) do |spec|
31
- spec.pattern = FileList['spec/**/*_spec.rb']
32
- end
6
+ RSpec::Core::RakeTask.new(:spec)
33
7
 
34
8
  RSpec::Core::RakeTask.new(:rcov) do |spec|
35
9
  spec.pattern = 'spec/**/*_spec.rb'
@@ -1,70 +1,25 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'ar_default_values/version'
5
5
 
6
- Gem::Specification.new do |s|
7
- s.name = "ar_default_values"
8
- s.version = "0.3.0"
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "ar_default_values"
8
+ spec.version = DefaultValues::VERSION
9
+ spec.authors = ["masarakki"]
10
+ spec.email = ["masaki@hisme.net"]
11
+ spec.description = "ActiveRecord with default values"
12
+ spec.summary = "ActiveRecord with default values"
13
+ spec.homepage = "https://github.com/masarakki/ar_default_values"
14
+ spec.license = "MIT"
9
15
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["masarakki"]
12
- s.date = "2013-01-08"
13
- s.description = "ActiveRecord with default values"
14
- s.email = "masaki@hisme.net"
15
- s.extra_rdoc_files = [
16
- "LICENSE.txt",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".rspec",
22
- "Gemfile",
23
- "LICENSE.txt",
24
- "README.rdoc",
25
- "Rakefile",
26
- "VERSION",
27
- "ar_default_values.gemspec",
28
- "lib/ar_default_values.rb",
29
- "spec/ar_default_values_spec.rb",
30
- "spec/spec_helper.rb",
31
- "spec/test.sqlite3",
32
- "test.sqlite3"
33
- ]
34
- s.homepage = "http://github.com/masarakki/ar_default_values"
35
- s.licenses = ["MIT"]
36
- s.require_paths = ["lib"]
37
- s.rubygems_version = "1.8.24"
38
- s.summary = "ActiveRecord with default values"
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
39
20
 
40
- if s.respond_to? :specification_version then
41
- s.specification_version = 3
42
-
43
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
44
- s.add_runtime_dependency(%q<activesupport>, [">= 3.0.0"])
45
- s.add_runtime_dependency(%q<activerecord>, [">= 3.0.0"])
46
- s.add_development_dependency(%q<rspec>, [">= 0"])
47
- s.add_development_dependency(%q<rdoc>, [">= 0"])
48
- s.add_development_dependency(%q<bundler>, [">= 0"])
49
- s.add_development_dependency(%q<jeweler>, [">= 0"])
50
- s.add_development_dependency(%q<sqlite3>, [">= 0"])
51
- else
52
- s.add_dependency(%q<activesupport>, [">= 3.0.0"])
53
- s.add_dependency(%q<activerecord>, [">= 3.0.0"])
54
- s.add_dependency(%q<rspec>, [">= 0"])
55
- s.add_dependency(%q<rdoc>, [">= 0"])
56
- s.add_dependency(%q<bundler>, [">= 0"])
57
- s.add_dependency(%q<jeweler>, [">= 0"])
58
- s.add_dependency(%q<sqlite3>, [">= 0"])
59
- end
60
- else
61
- s.add_dependency(%q<activesupport>, [">= 3.0.0"])
62
- s.add_dependency(%q<activerecord>, [">= 3.0.0"])
63
- s.add_dependency(%q<rspec>, [">= 0"])
64
- s.add_dependency(%q<rdoc>, [">= 0"])
65
- s.add_dependency(%q<bundler>, [">= 0"])
66
- s.add_dependency(%q<jeweler>, [">= 0"])
67
- s.add_dependency(%q<sqlite3>, [">= 0"])
68
- end
21
+ spec.add_runtime_dependency "activerecord", ">= 3.0.0", '< 4'
22
+ spec.add_runtime_dependency "activesupport", ">= 3.0.0", '< 4'
23
+ spec.add_development_dependency "bundler", "~> 1.3"
24
+ spec.add_development_dependency "rake"
69
25
  end
70
-
@@ -0,0 +1,3 @@
1
+ module DefaultValues
2
+ VERSION = "0.3.1"
3
+ end
@@ -1,3 +1,4 @@
1
+ require "ar_default_values/version"
1
2
  require 'active_support'
2
3
  require 'active_record'
3
4
 
@@ -36,35 +37,33 @@ require 'active_record'
36
37
  # book1.release_at == book2.release_at # => false
37
38
  # book1.released_at == book1.edition_updated_at # => true
38
39
  #
39
- module ActiveRecord
40
- module DefaultValue
41
- extend ActiveSupport::Concern
40
+ module DefaultValues
41
+ extend ActiveSupport::Concern
42
42
 
43
- module ClassMethods
44
- def default_values(defaults = {}, &block)
45
- define_method(:initialize_with_default_values) do |*attributes, &inner_block|
46
- defaults = defaults.merge(block.call) if block_given?
47
- defaults = Hash[defaults.each_pair.map{ |key, value| [key, value.kind_of?(Proc) ? value.call : value]}]
48
- authorizer = self.mass_assignment_authorizer(nil)
43
+ module ClassMethods
44
+ def default_values(defaults = {}, &block)
45
+ define_method(:initialize_with_default_values) do |*attributes, &inner_block|
46
+ defaults = defaults.merge(block.call) if block_given?
47
+ defaults = Hash[defaults.each_pair.map{ |key, value| [key, value.kind_of?(Proc) ? value.call : value]}]
48
+ authorizer = self.mass_assignment_authorizer(nil)
49
49
 
50
- parted_defaults = defaults.partition do |key, value|
51
- authorizer.deny?(key)
52
- end
50
+ parted_defaults = defaults.partition do |key, value|
51
+ authorizer.deny?(key)
52
+ end
53
53
 
54
- sanitized_defaults = Hash[parted_defaults[1]]
55
- protected_defaults = Hash[parted_defaults[0]]
54
+ sanitized_defaults = Hash[parted_defaults[1]]
55
+ protected_defaults = Hash[parted_defaults[0]]
56
56
 
57
- attributes[0] = sanitized_defaults.merge(attributes.first || {})
58
- initialize_without_default_values(*attributes, &inner_block)
59
- protected_defaults.each_pair do |key, value|
60
- self.send("#{key}=", value)
61
- end
57
+ attributes[0] = sanitized_defaults.merge(attributes.first || {})
58
+ initialize_without_default_values(*attributes, &inner_block)
59
+ protected_defaults.each_pair do |key, value|
60
+ self.send("#{key}=", value)
62
61
  end
63
-
64
- alias_method_chain :initialize, :default_values
65
62
  end
63
+
64
+ alias_method_chain :initialize, :default_values
66
65
  end
67
66
  end
68
67
  end
69
68
 
70
- ActiveRecord::Base.send(:include, ActiveRecord::DefaultValue)
69
+ ActiveRecord::Base.send(:include, DefaultValues)
metadata CHANGED
@@ -1,175 +1,129 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ar_default_values
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
5
- prerelease:
4
+ version: 0.3.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - masarakki
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-01-08 00:00:00.000000000 Z
11
+ date: 2013-10-18 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: activesupport
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
19
  version: 3.0.0
20
+ - - <
21
+ - !ruby/object:Gem::Version
22
+ version: '4'
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
28
  - !ruby/object:Gem::Version
29
29
  version: 3.0.0
30
+ - - <
31
+ - !ruby/object:Gem::Version
32
+ version: '4'
30
33
  - !ruby/object:Gem::Dependency
31
- name: activerecord
34
+ name: activesupport
32
35
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
36
  requirements:
35
- - - ! '>='
37
+ - - '>='
36
38
  - !ruby/object:Gem::Version
37
39
  version: 3.0.0
40
+ - - <
41
+ - !ruby/object:Gem::Version
42
+ version: '4'
38
43
  type: :runtime
39
44
  prerelease: false
40
45
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
46
  requirements:
43
- - - ! '>='
47
+ - - '>='
44
48
  - !ruby/object:Gem::Version
45
49
  version: 3.0.0
46
- - !ruby/object:Gem::Dependency
47
- name: rspec
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
50
+ - - <
52
51
  - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: rdoc
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: '0'
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
52
+ version: '4'
78
53
  - !ruby/object:Gem::Dependency
79
54
  name: bundler
80
55
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
86
- type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
94
- - !ruby/object:Gem::Dependency
95
- name: jeweler
96
- requirement: !ruby/object:Gem::Requirement
97
- none: false
98
56
  requirements:
99
- - - ! '>='
57
+ - - ~>
100
58
  - !ruby/object:Gem::Version
101
- version: '0'
59
+ version: '1.3'
102
60
  type: :development
103
61
  prerelease: false
104
62
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
63
  requirements:
107
- - - ! '>='
64
+ - - ~>
108
65
  - !ruby/object:Gem::Version
109
- version: '0'
66
+ version: '1.3'
110
67
  - !ruby/object:Gem::Dependency
111
- name: sqlite3
68
+ name: rake
112
69
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
70
  requirements:
115
- - - ! '>='
71
+ - - '>='
116
72
  - !ruby/object:Gem::Version
117
73
  version: '0'
118
74
  type: :development
119
75
  prerelease: false
120
76
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
77
  requirements:
123
- - - ! '>='
78
+ - - '>='
124
79
  - !ruby/object:Gem::Version
125
80
  version: '0'
126
81
  description: ActiveRecord with default values
127
- email: masaki@hisme.net
82
+ email:
83
+ - masaki@hisme.net
128
84
  executables: []
129
85
  extensions: []
130
- extra_rdoc_files:
131
- - LICENSE.txt
132
- - README.rdoc
86
+ extra_rdoc_files: []
133
87
  files:
134
88
  - .document
89
+ - .gitignore
135
90
  - .rspec
91
+ - .travis.yml
136
92
  - Gemfile
137
93
  - LICENSE.txt
138
- - README.rdoc
94
+ - README.md
139
95
  - Rakefile
140
- - VERSION
141
96
  - ar_default_values.gemspec
142
97
  - lib/ar_default_values.rb
98
+ - lib/ar_default_values/version.rb
143
99
  - spec/ar_default_values_spec.rb
144
100
  - spec/spec_helper.rb
145
101
  - spec/test.sqlite3
146
- - test.sqlite3
147
- homepage: http://github.com/masarakki/ar_default_values
102
+ homepage: https://github.com/masarakki/ar_default_values
148
103
  licenses:
149
104
  - MIT
105
+ metadata: {}
150
106
  post_install_message:
151
107
  rdoc_options: []
152
108
  require_paths:
153
109
  - lib
154
110
  required_ruby_version: !ruby/object:Gem::Requirement
155
- none: false
156
111
  requirements:
157
- - - ! '>='
112
+ - - '>='
158
113
  - !ruby/object:Gem::Version
159
114
  version: '0'
160
- segments:
161
- - 0
162
- hash: 1043313969
163
115
  required_rubygems_version: !ruby/object:Gem::Requirement
164
- none: false
165
116
  requirements:
166
- - - ! '>='
117
+ - - '>='
167
118
  - !ruby/object:Gem::Version
168
119
  version: '0'
169
120
  requirements: []
170
121
  rubyforge_project:
171
- rubygems_version: 1.8.24
122
+ rubygems_version: 2.0.3
172
123
  signing_key:
173
- specification_version: 3
124
+ specification_version: 4
174
125
  summary: ActiveRecord with default values
175
- test_files: []
126
+ test_files:
127
+ - spec/ar_default_values_spec.rb
128
+ - spec/spec_helper.rb
129
+ - spec/test.sqlite3
data/README.rdoc DELETED
@@ -1,34 +0,0 @@
1
- = ar_default_values
2
- initialize with default_values
3
-
4
- == sample
5
- you can specify default values with hash:
6
-
7
- class Book < ActiveRecord::Base
8
- default_values rating: 'r18', type: 'comic' do
9
- t = Time.now
10
- { :released_at => t, :edition_updated_at => t }
11
- end
12
- end
13
-
14
- book = Book.new
15
- book.rating # => "r18"
16
- book.type # => "comic"
17
- book.title # => nil
18
- book.released_at == book.edition_updated_at # => true
19
-
20
- == Contributing to ar_default_values
21
-
22
- * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
23
- * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
24
- * Fork the project.
25
- * Start a feature/bugfix branch.
26
- * Commit and push until you are happy with your contribution.
27
- * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
28
- * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
29
-
30
- == Copyright
31
-
32
- Copyright (c) 2012 masarakki. See LICENSE.txt for
33
- further details.
34
-
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.3.0
data/test.sqlite3 DELETED
File without changes