molten_core 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
data/lib/molten_core.rb
CHANGED
@@ -5,8 +5,6 @@ require 'molten_core/integer'
|
|
5
5
|
require 'molten_core/string'
|
6
6
|
require 'molten_core/action_controller/controller_resources'
|
7
7
|
require 'molten_core/active_model/validations/inclusion_validator'
|
8
|
-
require 'molten_core/single_table_inheritable'
|
9
|
-
require 'molten_core/unprotected_inheritance'
|
10
8
|
|
11
9
|
module MoltenCore
|
12
10
|
end
|
data/lib/molten_core/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: molten_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-10-
|
13
|
+
date: 2012-10-18 00:00:00.000000000 Z
|
14
14
|
dependencies: []
|
15
15
|
description: ''
|
16
16
|
email: support@chirrpy.com
|
@@ -26,9 +26,7 @@ files:
|
|
26
26
|
- lib/molten_core/array.rb
|
27
27
|
- lib/molten_core/hash.rb
|
28
28
|
- lib/molten_core/integer.rb
|
29
|
-
- lib/molten_core/single_table_inheritable.rb
|
30
29
|
- lib/molten_core/string.rb
|
31
|
-
- lib/molten_core/unprotected_inheritance.rb
|
32
30
|
- lib/molten_core/version.rb
|
33
31
|
- lib/molten_core.rb
|
34
32
|
- Rakefile
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module SingleTableInheritable
|
2
|
-
def update_type_and_attributes(options = {})
|
3
|
-
object, new_type, attrs = options[:object], options[:new_type], options[:attributes]
|
4
|
-
|
5
|
-
if new_type.present?
|
6
|
-
affected_object_attributes = object.attributes.except('type').merge(attrs)
|
7
|
-
affected_object = new_type.constantize.new
|
8
|
-
else
|
9
|
-
affected_object_attributes = object.attributes.merge(attrs)
|
10
|
-
affected_object = object.class.new
|
11
|
-
end
|
12
|
-
|
13
|
-
affected_object.id = object.id
|
14
|
-
affected_object.attributes = affected_object_attributes
|
15
|
-
|
16
|
-
if affected_object.valid?
|
17
|
-
object.before_update_type_and_attributes_delete
|
18
|
-
object.delete
|
19
|
-
affected_object.save
|
20
|
-
else
|
21
|
-
affected_object.instance_variable_set(:@new_record, object.new_record?)
|
22
|
-
end
|
23
|
-
|
24
|
-
affected_object
|
25
|
-
end
|
26
|
-
|
27
|
-
def before_update_type_and_attributes_delete
|
28
|
-
end
|
29
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
###
|
2
|
-
# By default, the column used for Single Table Inheritance is protected from
|
3
|
-
# mass-assignment. For the majority of cases (at least in this application) we
|
4
|
-
# actually want the column to be able to be mass-assigned. Including this
|
5
|
-
# module into the class will make that possible.
|
6
|
-
#
|
7
|
-
module UnprotectedInheritance
|
8
|
-
def attributes_protected_by_default
|
9
|
-
super.tap do |protected_columns|
|
10
|
-
protected_columns.delete inheritance_column
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|