safe_attributes 1.0.1 → 1.0.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.
data/Gemfile CHANGED
@@ -4,8 +4,8 @@ gem 'activesupport', '~> 3.0.0'
4
4
  gem 'activerecord', '~> 3.0.0'
5
5
 
6
6
  group :development do
7
- gem 'jeweler', '>=1.5.2'
8
- gem 'rake', '>=0.8.7'
7
+ gem 'jeweler', '>= 1.5.2'
8
+ gem 'rake', '>= 0.8.7'
9
9
  gem 'rspec', '>= 2.3.0'
10
10
  gem 'rcov'
11
11
  gem 'sqlite3-ruby'
@@ -1,14 +1,16 @@
1
1
  = SafeAttributes
2
2
 
3
- By default Rails creates attribute accessors for all database table columns
4
- in each model. Columns with specific names cause errors because they result
5
- in Rails redefining a key method within either Ruby or Rails in an
6
- incompatible way. A classic example for me has been tables with a column
7
- named 'class', though there are many other possible examples.
8
-
9
- Using this gem enhances activerecord to change the default behavior for
10
- the creation of attribute accessors. Methods in ActiveRecord::Base and
11
- its superclasses, except for 'id', are combined into a list. This list
3
+ By default Rails/ActiveRecord 3 creates attribute accessors for all
4
+ database table columns in each model. Columns with specific names
5
+ cause errors because they result in ActiveRecord redefining a key
6
+ method within either Ruby or ActiveRecord in an incompatible way. A
7
+ classic example is any table with a column named 'class', though there
8
+ are other possible examples. Put simply, this gem makes it easier
9
+ to support a legacy database schema with ActiveRecord.
10
+
11
+ Using this gem enhances ActiveRecord to change the default behavior for
12
+ the creation of attribute accessors. Instance methods in
13
+ ActiveRecord::Base, except for 'id', are combined into a list. This list
12
14
  is checked before the creation of two types of attribute accessors:
13
15
  attribute() and attribute=().
14
16
 
@@ -31,20 +33,24 @@ you can use a couple of different approaches.
31
33
  * model_instance.read_attribute('attribute')
32
34
  * model_instance.write_attribute('attribute', value)
33
35
 
36
+ You can read more about reserved words[http://oldwiki.rubyonrails.org/rails/pages/ReservedWords] and magic field names[http://oldwiki.rubyonrails.org/rails/pages/MagicFieldNames] on Rails' wiki pages.
37
+
34
38
  == Installing
35
39
 
36
- gem install safe_attributes --force
40
+ gem install safe_attributes
37
41
 
38
- The --force flag is here because I believe rubygems to have some sort of
39
- dependency tracking issue. Without it, it wants to install the newest
40
- activemodel (3.0.3 at this time) and arel. These are not necessary
41
- for the gem and this should not be happening. As long as you have
42
- activerecord 3.0.0 or better it should work. Here's the error message
43
- in case you see it.
42
+ If you do not have the newest version of ActiveRecord, rubygems will
43
+ attempt to install it for you. This can result in an error like below.
44
44
 
45
45
  ERROR: Error installing safe_attributes:
46
46
  activemodel requires activesupport (= 3.0.3, runtime)
47
47
 
48
+ You can use this gem with activerecord and activesupport >= 3.0 and < 3.1.
49
+ If you already have an appropriate version of activerecord and
50
+ activesupport installed then use --ignore-dependencies to avoid this
51
+ error. If you have the latest version already then the gem should install
52
+ without issue using the recommended approach above.
53
+
48
54
  == Using
49
55
 
50
56
  === Rails
data/Rakefile CHANGED
@@ -17,8 +17,8 @@ Jeweler::Tasks.new do |gem|
17
17
  gem.version = version
18
18
  gem.homepage = "http://github.com/bjones/safe_attributes"
19
19
  gem.license = "MIT"
20
- gem.summary = %Q{Add support for reserved word column names with ActiveRecord}
21
- gem.description = %Q{If your schema has columns named type, or class, or any other name that conflicts with a method of ActiveRecord or one of its superclasses, you will need this gem to use Rails 3 with that database.}
20
+ gem.summary = %Q{Useful for legacy database support, adds support for reserved word column names with ActiveRecord}
21
+ gem.description = %Q{Better support for legacy database schemas for ActiveRecord, such as columns named class, or any other name that conflicts with an instance method of ActiveRecord.}
22
22
  gem.email = "cbj@gnu.org"
23
23
  gem.authors = ["Brian Jones"]
24
24
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.1
1
+ 1.0.2
@@ -5,12 +5,12 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{safe_attributes}
8
- s.version = "1.0.1"
8
+ s.version = "1.0.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Brian Jones"]
12
- s.date = %q{2010-12-25}
13
- s.description = %q{If your schema has columns named type, or class, or any other name that conflicts with a method of ActiveRecord or one of its superclasses, you will need this gem to use Rails 3 with that database.}
12
+ s.date = %q{2011-01-24}
13
+ s.description = %q{Better support for legacy database schemas for ActiveRecord, such as columns named class, or any other name that conflicts with an instance method of ActiveRecord.}
14
14
  s.email = %q{cbj@gnu.org}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
34
34
  s.licenses = ["MIT"]
35
35
  s.require_paths = ["lib"]
36
36
  s.rubygems_version = %q{1.3.7}
37
- s.summary = %q{Add support for reserved word column names with ActiveRecord}
37
+ s.summary = %q{Useful for legacy database support, adds support for reserved word column names with ActiveRecord}
38
38
  s.test_files = [
39
39
  "spec/safe_attributes/safe_attributes_spec.rb",
40
40
  "spec/spec_helper.rb"
@@ -2,11 +2,11 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
3
 
4
4
  require 'rubygems'
5
- gem 'activerecord', '>= 3.0.0'
5
+ require 'bundler'
6
+ Bundler.setup(:default, :development)
7
+
6
8
  require 'active_record'
7
- gem 'activesupport', '>= 3.0.0'
8
9
  require 'active_support'
9
-
10
10
  require 'safe_attributes'
11
11
  require 'rspec'
12
12
  require 'rspec/autorun'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: safe_attributes
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 1
10
- version: 1.0.1
9
+ - 2
10
+ version: 1.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Brian Jones
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-25 00:00:00 -05:00
18
+ date: 2011-01-24 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -126,7 +126,7 @@ dependencies:
126
126
  - 0
127
127
  version: "0"
128
128
  requirement: *id007
129
- description: If your schema has columns named type, or class, or any other name that conflicts with a method of ActiveRecord or one of its superclasses, you will need this gem to use Rails 3 with that database.
129
+ description: Better support for legacy database schemas for ActiveRecord, such as columns named class, or any other name that conflicts with an instance method of ActiveRecord.
130
130
  email: cbj@gnu.org
131
131
  executables: []
132
132
 
@@ -181,7 +181,7 @@ rubyforge_project:
181
181
  rubygems_version: 1.3.7
182
182
  signing_key:
183
183
  specification_version: 3
184
- summary: Add support for reserved word column names with ActiveRecord
184
+ summary: Useful for legacy database support, adds support for reserved word column names with ActiveRecord
185
185
  test_files:
186
186
  - spec/safe_attributes/safe_attributes_spec.rb
187
187
  - spec/spec_helper.rb