dynamic-fields 0.0.4 → 0.0.10
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/lib/dynamic_fields/field.rb
CHANGED
@@ -50,7 +50,7 @@ module DynamicFields
|
|
50
50
|
|
51
51
|
# Any fields which have not been add to the table
|
52
52
|
def new_fields
|
53
|
-
fields.reject {|f| real_field_names.include?(f.name.to_s) }
|
53
|
+
(self.fields ||= []).reject {|f| real_field_names.include?(f.name.to_s) }
|
54
54
|
end
|
55
55
|
|
56
56
|
# Any fields in the table, but not in the model
|
@@ -101,7 +101,7 @@ module DynamicFields
|
|
101
101
|
|
102
102
|
# Any indicies which have not been add to the table
|
103
103
|
def new_indices
|
104
|
-
indices.reject { |idx| real_index_ids.include?(idx.id) }
|
104
|
+
(self.indices ||= []).reject { |idx| real_index_ids.include?(idx.id) }
|
105
105
|
end
|
106
106
|
|
107
107
|
# Any indices in the table, but not in the model
|
data/lib/dynamic_fields/index.rb
CHANGED
@@ -14,7 +14,7 @@ module DynamicFields
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def to_s
|
17
|
-
name
|
17
|
+
name.to_s
|
18
18
|
end
|
19
19
|
|
20
20
|
def unique?
|
@@ -26,11 +26,10 @@ module DynamicFields
|
|
26
26
|
case action = action.to_sym
|
27
27
|
when :add
|
28
28
|
args << (fields.is_a?(Array) ? fields : fields.to_sym).inspect
|
29
|
-
args << ":name => #{
|
29
|
+
args << ":name => #{to_s.inspect}"
|
30
30
|
args << ":unique => true" if unique?
|
31
31
|
when :remove
|
32
|
-
args <<
|
33
|
-
args << ":name => #{name.to_sym.inspect}" if fields.is_a?(Array)
|
32
|
+
args << ":name => #{to_s.inspect}"
|
34
33
|
end
|
35
34
|
args.join(', ').gsub('\\', '')
|
36
35
|
end
|
@@ -1,15 +1,25 @@
|
|
1
1
|
class <%= migration_class_name %> < ActiveRecord::Migration
|
2
|
-
def self.up
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
2
|
+
def self.up
|
3
|
+
<%- attributes[:add].each do |attribute| -%>
|
4
|
+
add_column :<%= table_name %>, <%= attribute.migration_string_for :update, :add %>
|
5
|
+
<%- end -%><%- indices[:add].each do |index| -%>
|
6
|
+
add_index :<%= table_name %>, <%= index.migration_string_for :update, :add %>
|
7
|
+
<%- end -%><%- indices[:remove].each do |index| -%>
|
8
|
+
remove_index :<%= table_name %>, <%= index.migration_string_for :update, :remove %>
|
9
|
+
<%- end -%><%- attributes[:remove].each do |attribute| -%>
|
10
|
+
remove_column :<%= table_name %>, <%= attribute.migration_string_for :update, :remove %>
|
11
|
+
<%- end -%>
|
7
12
|
end
|
8
13
|
|
9
|
-
def self.down
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
+
def self.down
|
15
|
+
<%- indices[:add].reverse.each do |index| -%>
|
16
|
+
remove_index :<%= table_name %>, <%= index.migration_string_for :update, :remove %>
|
17
|
+
<%- end -%><%- attributes[:add].reverse.each do |attribute| -%>
|
18
|
+
remove_column :<%= table_name %>, <%= attribute.migration_string_for :update, :remove %>
|
19
|
+
<%- end -%><%- attributes[:remove].reverse.each do |attribute| -%>
|
20
|
+
add_column :<%= table_name %>, <%= attribute.migration_string_for :update, :add %>
|
21
|
+
<%- end -%><%- indices[:remove].reverse.each do |index| -%>
|
22
|
+
add_index :<%= table_name %>, <%= index.migration_string_for :update, :add %>
|
23
|
+
<%- end -%>
|
14
24
|
end
|
15
25
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'dynamic_fields'
|
1
2
|
require 'dynamic_fields/migration_generator'
|
2
3
|
|
3
4
|
namespace :dynamic_fields do
|
@@ -42,7 +43,7 @@ def generate_migration_for(klass)
|
|
42
43
|
return unless klass.name.present? # no annoymous classes
|
43
44
|
if klass.requires_migration?
|
44
45
|
puts "Generating a migration for #{klass.name}"
|
45
|
-
DynamicFields::MigrationGenerator.start klass.name
|
46
|
+
DynamicFields::MigrationGenerator.start [klass.name]
|
46
47
|
else
|
47
48
|
puts "#{klass.name} is up to date!"
|
48
49
|
end
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dynamic-fields
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 11
|
5
|
+
prerelease:
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
9
|
+
- 10
|
10
|
+
version: 0.0.10
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Alex Neill
|
@@ -14,7 +15,7 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date:
|
18
|
+
date: 2011-06-21 00:00:00 +01:00
|
18
19
|
default_executable:
|
19
20
|
dependencies: []
|
20
21
|
|
@@ -43,28 +44,32 @@ homepage: http://github.com/ajn/dynamic-fields
|
|
43
44
|
licenses: []
|
44
45
|
|
45
46
|
post_install_message:
|
46
|
-
rdoc_options:
|
47
|
-
|
47
|
+
rdoc_options: []
|
48
|
+
|
48
49
|
require_paths:
|
49
50
|
- lib
|
50
51
|
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
51
53
|
requirements:
|
52
54
|
- - ">="
|
53
55
|
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
54
57
|
segments:
|
55
58
|
- 0
|
56
59
|
version: "0"
|
57
60
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
58
62
|
requirements:
|
59
63
|
- - ">="
|
60
64
|
- !ruby/object:Gem::Version
|
65
|
+
hash: 3
|
61
66
|
segments:
|
62
67
|
- 0
|
63
68
|
version: "0"
|
64
69
|
requirements: []
|
65
70
|
|
66
71
|
rubyforge_project:
|
67
|
-
rubygems_version: 1.
|
72
|
+
rubygems_version: 1.5.2
|
68
73
|
signing_key:
|
69
74
|
specification_version: 3
|
70
75
|
summary: Auto-migrate ActiveRecord models
|