instructure-active_model-better_errors 1.6.3.rails2.3 → 1.6.3.rails2.4

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,7 +1,6 @@
1
- source :rubygems
2
-
3
- gem "activemodel", "~> 3.0"
1
+ source 'https://rubygems.org'
4
2
 
3
+ gem "activerecord", "~> 2.3.11"
5
4
 
6
5
  group :development, :test do
7
6
  gem "rake"
@@ -14,4 +13,6 @@ group :development, :test do
14
13
  gem "simplecov"
15
14
  gem 'bcrypt-ruby', '~> 3.0.0'
16
15
  gem 'mocha', '>= 0.12.1'
16
+ gem 'sqlite3'
17
+ gem 'debugger'
17
18
  end
data/Rakefile CHANGED
@@ -14,13 +14,13 @@ require 'rake'
14
14
  require 'jeweler'
15
15
  Jeweler::Tasks.new do |gem|
16
16
  # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
- gem.name = "active_model-better_errors"
18
- gem.homepage = "http://github.com/aq1018/active_model-better_errors"
17
+ gem.name = "instructure-active_model-better_errors"
18
+ gem.homepage = "http://github.com/codekitchen/active_model-better_errors"
19
19
  gem.license = "MIT"
20
20
  gem.summary = %Q{API consumable error messages with ActiveModel::Errors drop-in compatibility.}
21
21
  gem.description = %Q{ActiveModel::Errors class is not designed for API consumption. This gem allows for that while keeping compatibility with existing rails API.}
22
- gem.email = ["aq1018@gmail.com", "byronanderson32@gmail.com"]
23
- gem.authors = ["Aaron Qian", "Byron Anderson"]
22
+ gem.email = ["aq1018@gmail.com", "byronanderson32@gmail.com", "brianp@instructure.com"]
23
+ gem.authors = ["Aaron Qian", "Byron Anderson", "Brian Palmer"]
24
24
  # dependencies defined in Gemfile
25
25
  end
26
26
  Jeweler::RubygemsDotOrgTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.6.3
1
+ 1.6.3.rails2.4
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = "active_model-better_errors"
8
- s.version = "1.6.3"
7
+ s.name = "instructure-active_model-better_errors"
8
+ s.version = "1.6.3.rails2.4"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Aaron Qian", "Byron Anderson"]
12
- s.date = "2013-01-23"
10
+ s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Aaron Qian", "Byron Anderson", "Brian Palmer"]
12
+ s.date = "2013-12-02"
13
13
  s.description = "ActiveModel::Errors class is not designed for API consumption. This gem allows for that while keeping compatibility with existing rails API."
14
- s.email = ["aq1018@gmail.com", "byronanderson32@gmail.com"]
14
+ s.email = ["aq1018@gmail.com", "byronanderson32@gmail.com", "brianp@instructure.com"]
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
17
17
  "README.md"
@@ -30,7 +30,6 @@ Gem::Specification.new do |s|
30
30
  "lib/active_model/better_errors.rb",
31
31
  "lib/active_model/error_collecting.rb",
32
32
  "lib/active_model/error_collecting/array_reporter.rb",
33
- "lib/active_model/error_collecting/core_ext.rb",
34
33
  "lib/active_model/error_collecting/emulation.rb",
35
34
  "lib/active_model/error_collecting/error_collection.rb",
36
35
  "lib/active_model/error_collecting/error_message.rb",
@@ -62,17 +61,17 @@ Gem::Specification.new do |s|
62
61
  "spec/support/models.rb",
63
62
  "test/integration.rb"
64
63
  ]
65
- s.homepage = "http://github.com/aq1018/active_model-better_errors"
64
+ s.homepage = "http://github.com/codekitchen/active_model-better_errors"
66
65
  s.licenses = ["MIT"]
67
66
  s.require_paths = ["lib"]
68
- s.rubygems_version = "1.8.24"
67
+ s.rubygems_version = "1.8.23"
69
68
  s.summary = "API consumable error messages with ActiveModel::Errors drop-in compatibility."
70
69
 
71
70
  if s.respond_to? :specification_version then
72
71
  s.specification_version = 3
73
72
 
74
73
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
75
- s.add_runtime_dependency(%q<activemodel>, ["~> 3.0"])
74
+ s.add_runtime_dependency(%q<activerecord>, ["~> 2.3.11"])
76
75
  s.add_development_dependency(%q<rake>, [">= 0"])
77
76
  s.add_development_dependency(%q<rspec>, ["~> 2.12.0"])
78
77
  s.add_development_dependency(%q<pry>, [">= 0"])
@@ -83,8 +82,10 @@ Gem::Specification.new do |s|
83
82
  s.add_development_dependency(%q<simplecov>, [">= 0"])
84
83
  s.add_development_dependency(%q<bcrypt-ruby>, ["~> 3.0.0"])
85
84
  s.add_development_dependency(%q<mocha>, [">= 0.12.1"])
85
+ s.add_development_dependency(%q<sqlite3>, [">= 0"])
86
+ s.add_development_dependency(%q<debugger>, [">= 0"])
86
87
  else
87
- s.add_dependency(%q<activemodel>, ["~> 3.0"])
88
+ s.add_dependency(%q<activerecord>, ["~> 2.3.11"])
88
89
  s.add_dependency(%q<rake>, [">= 0"])
89
90
  s.add_dependency(%q<rspec>, ["~> 2.12.0"])
90
91
  s.add_dependency(%q<pry>, [">= 0"])
@@ -95,9 +96,11 @@ Gem::Specification.new do |s|
95
96
  s.add_dependency(%q<simplecov>, [">= 0"])
96
97
  s.add_dependency(%q<bcrypt-ruby>, ["~> 3.0.0"])
97
98
  s.add_dependency(%q<mocha>, [">= 0.12.1"])
99
+ s.add_dependency(%q<sqlite3>, [">= 0"])
100
+ s.add_dependency(%q<debugger>, [">= 0"])
98
101
  end
99
102
  else
100
- s.add_dependency(%q<activemodel>, ["~> 3.0"])
103
+ s.add_dependency(%q<activerecord>, ["~> 2.3.11"])
101
104
  s.add_dependency(%q<rake>, [">= 0"])
102
105
  s.add_dependency(%q<rspec>, ["~> 2.12.0"])
103
106
  s.add_dependency(%q<pry>, [">= 0"])
@@ -108,6 +111,8 @@ Gem::Specification.new do |s|
108
111
  s.add_dependency(%q<simplecov>, [">= 0"])
109
112
  s.add_dependency(%q<bcrypt-ruby>, ["~> 3.0.0"])
110
113
  s.add_dependency(%q<mocha>, [">= 0.12.1"])
114
+ s.add_dependency(%q<sqlite3>, [">= 0"])
115
+ s.add_dependency(%q<debugger>, [">= 0"])
111
116
  end
112
117
  end
113
118
 
@@ -1,15 +1,17 @@
1
1
  require 'forwardable'
2
2
 
3
- require 'active_support/core_ext/string/inflections'
3
+ require 'active_support/core_ext'
4
4
 
5
5
  require 'active_model/error_collecting'
6
6
 
7
- require 'active_model/validations'
7
+ require 'active_record'
8
+ require 'active_record/base'
9
+ require 'active_record/validations'
8
10
 
9
- module ActiveModel
11
+ module ActiveRecord
10
12
  module Validations
11
13
  def errors
12
- @errors ||= ErrorCollecting::Errors.new(self)
14
+ @errors ||= ActiveModel::ErrorCollecting::Errors.new(self)
13
15
  end
14
16
  end
15
17
  end
@@ -18,8 +18,6 @@ require 'active_model/error_collecting/machine_array_reporter'
18
18
  require 'active_model/error_collecting/emulation'
19
19
  require 'active_model/error_collecting/errors'
20
20
 
21
- require 'active_model/error_collecting/core_ext'
22
-
23
21
  module ActiveModel
24
22
  module ErrorCollecting
25
23
  class << self
@@ -30,21 +30,23 @@ module ActiveModel
30
30
  end
31
31
 
32
32
  def add_on_empty(attributes, options = {})
33
- [attributes].flatten.each do |attribute|
34
- value = @base.send(:read_attribute_for_validation, attribute)
33
+ [attributes].flatten.each do |attr|
34
+ value = @base.respond_to?(attr.to_s) ? @base.send(attr.to_s) : @base[attr.to_s]
35
35
  is_empty = value.respond_to?(:empty?) ? value.empty? : false
36
- add(attribute, :empty, options) if value.nil? || is_empty
36
+ add(attr, :empty, options) if value.nil? || is_empty
37
37
  end
38
38
  end
39
39
 
40
40
  def add_on_blank(attributes, options = {})
41
- [attributes].flatten.each do |attribute|
42
- value = @base.send(:read_attribute_for_validation, attribute)
43
- add(attribute, :blank, options) if value.blank?
41
+ [attributes].flatten.each do |attr|
42
+ value = @base.respond_to?(attr.to_s) ? @base.send(attr.to_s) : @base[attr.to_s]
43
+ add(attr, :blank, options) if value.blank?
44
44
  end
45
45
  end
46
46
 
47
- def add(attribute, message=nil, options = {})
47
+ def add(attribute, message=nil, options = nil)
48
+ options ||= {}
49
+ options = { message: options } unless options.is_a?(Hash)
48
50
  if options[:strict]
49
51
  error = ErrorMessage.build(attribute, message, options)
50
52
  message = HumanMessageFormatter.new(@base, error).format_message
@@ -62,4 +64,4 @@ module ActiveModel
62
64
  end
63
65
  end
64
66
  end
65
- end
67
+ end
@@ -67,6 +67,10 @@ module ActiveModel
67
67
  }
68
68
  end
69
69
 
70
+ def as_json(*json_args)
71
+ to_hash
72
+ end
73
+
70
74
  def hash
71
75
  to_hash.hash
72
76
  end
@@ -23,7 +23,7 @@ module ActiveModel
23
23
 
24
24
  options = {
25
25
  :default => keys,
26
- :model => base.class.model_name.human,
26
+ :model => base.class.human_name,
27
27
  :attribute => base.class.human_attribute_name(attribute),
28
28
  :value => value
29
29
  }.merge(self.options)
@@ -35,7 +35,7 @@ module ActiveModel
35
35
 
36
36
  def value
37
37
  return if attribute == :base
38
- base.send :read_attribute_for_validation, attribute
38
+ base.send :read_attribute, attribute
39
39
  end
40
40
 
41
41
  def ancestor_keys
@@ -59,7 +59,9 @@ module ActiveModel
59
59
  end
60
60
 
61
61
  keys << :"errors.attributes.#{attribute}.#{type}"
62
+ keys << :"activerecord.errors.attributes.#{attribute}.#{type}"
62
63
  keys << :"errors.messages.#{type}"
64
+ keys << :"activerecord.errors.messages.#{type}"
63
65
 
64
66
  keys.compact!
65
67
  keys.flatten!
@@ -67,4 +69,4 @@ module ActiveModel
67
69
  end
68
70
  end
69
71
  end
70
- end
72
+ end
@@ -263,6 +263,22 @@ describe ActiveModel::ErrorCollecting::ErrorMessage do
263
263
  its(:attribute) { should == attribute }
264
264
  end
265
265
 
266
+ describe '#to_hash' do
267
+ let(:message) { :invalid }
268
+ let(:options) { {} }
269
+
270
+ its(:to_hash) { should == { attribute: attribute, type: :invalid, message: nil, options: {} } }
271
+ end
272
+
273
+ describe '#as_json' do
274
+ let(:message) { :invalid }
275
+ let(:options) { {} }
276
+
277
+ it "should respond to as_json taking json arguments" do
278
+ subject.as_json(test: :arguments).should == { attribute: attribute, type: :invalid, message: nil, options: {} }
279
+ end
280
+ end
281
+
266
282
  describe '#<=>' do
267
283
  subject { e1 <=> e2 }
268
284
 
@@ -290,4 +306,4 @@ describe ActiveModel::ErrorCollecting::ErrorMessage do
290
306
  it { should == 0 }
291
307
  end
292
308
  end
293
- end
309
+ end
data/spec/spec_helper.rb CHANGED
@@ -3,13 +3,35 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
  require 'rspec'
4
4
  require 'pry'
5
5
 
6
- require 'active_model'
7
6
  require 'active_model/better_errors'
8
7
 
9
8
  # Requires supporting files with custom matchers and macros, etc,
10
9
  # in ./support/ and its subdirectories.
11
10
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
12
11
 
12
+ def migrate_test_db
13
+ ActiveRecord::Base.connection.create_table(:users) do |t|
14
+ t.string :first_name
15
+ t.string :last_name
16
+ t.string :email
17
+ end
18
+ ActiveRecord::Base.connection.create_table(:rulers) do |t|
19
+ t.int :length
20
+ end
21
+ end
22
+
13
23
  RSpec.configure do |config|
24
+ config.before(:all) do
25
+ ActiveRecord::Base.establish_connection(
26
+ adapter: 'sqlite3',
27
+ database: ':memory:')
28
+ migrate_test_db
29
+ end
30
+ end
14
31
 
32
+ class String
33
+ def ==(other)
34
+ return super other.to_s if other.is_a? ActiveModel::ErrorCollecting::ErrorMessage
35
+ super
36
+ end
15
37
  end
@@ -1,28 +1,7 @@
1
- class BasicModel
2
- extend ActiveModel::Naming
3
- extend ActiveModel::Translation
4
- include ActiveModel::Validations
5
- include ActiveModel::Conversion
6
-
7
- def initialize(params={})
8
- params.each do |attr, value|
9
- self.public_send("#{attr}=", value)
10
- end
11
- end
12
-
13
- def persisted?
14
- false
15
- end
16
- end
17
-
18
- class User < BasicModel
19
- attr_accessor :first_name, :last_name, :email
20
-
21
- validates :first_name, :last_name, presence: { message: "plz...?" }
1
+ class User < ActiveRecord::Base
2
+ validates_presence_of :first_name, :last_name, message: "plz...?"
22
3
  end
23
4
 
24
- class Ruler < BasicModel
25
- attr_accessor :length
26
-
5
+ class Ruler < ActiveRecord::Base
27
6
  validates_numericality_of :length, less_than_or_equal_to: 12, greater_than_or_equal_to: 4
28
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: instructure-active_model-better_errors
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.3.rails2.3
4
+ version: 1.6.3.rails2.4
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -242,7 +242,7 @@ files:
242
242
  - README.md
243
243
  - Rakefile
244
244
  - VERSION
245
- - active_model-better_errors.gemspec
245
+ - instructure-active_model-better_errors.gemspec
246
246
  - lib/active_model/better_errors.rb
247
247
  - lib/active_model/error_collecting.rb
248
248
  - lib/active_model/error_collecting/array_reporter.rb
@@ -291,7 +291,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
291
291
  version: '0'
292
292
  segments:
293
293
  - 0
294
- hash: -3191008763557130119
294
+ hash: -398253952354859811
295
295
  required_rubygems_version: !ruby/object:Gem::Requirement
296
296
  none: false
297
297
  requirements: