hobo_fields 1.3.0.pre31 → 1.3.0
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/VERSION +1 -1
- data/hobo_fields.gemspec +0 -1
- data/lib/generators/hobo/migration/migrator.rb +3 -1
- data/lib/hobo_fields/model/index_spec.rb +11 -1
- data/lib/hobo_fields/model.rb +5 -1
- data/lib/hobo_fields/types/text.rb +1 -1
- data/lib/hobo_fields.rb +3 -0
- metadata +13 -24
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.3.0
|
1
|
+
1.3.0
|
data/hobo_fields.gemspec
CHANGED
@@ -11,7 +11,6 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.summary = 'Rich field types and migration generator for Rails'
|
12
12
|
s.description = 'Rich field types and migration generator for Rails'
|
13
13
|
|
14
|
-
s.add_runtime_dependency('rails', [">= 3.0.0"])
|
15
14
|
s.add_runtime_dependency('hobo_support', ["= #{version}"])
|
16
15
|
s.add_development_dependency('rubydoctest', [">= 0"])
|
17
16
|
s.add_development_dependency('redcloth', [">= 0"]) # for testing rich types
|
@@ -130,7 +130,7 @@ module Generators
|
|
130
130
|
all_models = table_model_classes
|
131
131
|
hobo_models = all_models.select { |m| m.try.include_in_migration && m.name.underscore.not_in?(ignore_model_names) }
|
132
132
|
non_hobo_models = all_models - hobo_models
|
133
|
-
db_tables = connection.tables - Migrator.ignore_tables.*.to_s - non_hobo_models.*.table_name
|
133
|
+
db_tables = connection.tables - Migrator.ignore_tables.*.to_s - non_hobo_models.reject { |t| t.try.hobo_shim? }.*.table_name
|
134
134
|
[hobo_models, db_tables]
|
135
135
|
end
|
136
136
|
|
@@ -391,6 +391,8 @@ module Generators
|
|
391
391
|
def drop_index(table, name)
|
392
392
|
# see https://hobo.lighthouseapp.com/projects/8324/tickets/566
|
393
393
|
# for why the rescue exists
|
394
|
+
max_length = connection.index_name_length
|
395
|
+
name = name[0,max_length] if name.length > max_length
|
394
396
|
"remove_index :#{table}, :name => :#{name} rescue ActiveRecord::StatementInvalid"
|
395
397
|
end
|
396
398
|
|
@@ -28,7 +28,17 @@ module HoboFields
|
|
28
28
|
def to_add_statement(new_table_name)
|
29
29
|
r = "add_index :#{new_table_name}, #{fields.*.to_sym.inspect}"
|
30
30
|
r += ", :unique => true" if unique
|
31
|
-
|
31
|
+
if default_name?
|
32
|
+
check_name = @model.connection.index_name(self.table, :column => self.fields)
|
33
|
+
else
|
34
|
+
check_name = name
|
35
|
+
end
|
36
|
+
if check_name.length > @model.connection.index_name_length
|
37
|
+
r += ", :name => '#{name[0,@model.connection.index_name_length]}'"
|
38
|
+
$stderr.puts("WARNING: index name #{check_name} too long, trimming")
|
39
|
+
else
|
40
|
+
r += ", :name => '#{name}'" unless default_name?
|
41
|
+
end
|
32
42
|
r
|
33
43
|
end
|
34
44
|
|
data/lib/hobo_fields/model.rb
CHANGED
@@ -170,7 +170,11 @@ module HoboFields
|
|
170
170
|
|
171
171
|
def self.add_index_for_field(name, args, options)
|
172
172
|
to_name = options.delete(:index)
|
173
|
-
|
173
|
+
unless to_name
|
174
|
+
# passing :unique => true doesn't do anything without an index
|
175
|
+
Rails.logger.error('ERROR: passing :unique => true without :index => true does nothing. Use :unique instead.') if options[:unique]
|
176
|
+
return
|
177
|
+
end
|
174
178
|
index_opts = {}
|
175
179
|
index_opts[:unique] = :unique.in?(args) || options.delete(:unique)
|
176
180
|
# support :index => true declaration
|
@@ -6,7 +6,7 @@ module HoboFields
|
|
6
6
|
COLUMN_TYPE = :text
|
7
7
|
|
8
8
|
def to_html(xmldoctype = true)
|
9
|
-
ERB::Util.html_escape(self).gsub("\n", "<br#{xmldoctype ? ' /' : ''}>\n")
|
9
|
+
ERB::Util.html_escape(self).gsub("\n", "<br#{xmldoctype ? ' /' : ''}>\n").html_safe
|
10
10
|
end
|
11
11
|
|
12
12
|
HoboFields.register_type(:text, self)
|
data/lib/hobo_fields.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'hobo_support'
|
2
2
|
|
3
3
|
ActiveSupport::Dependencies.autoload_paths |= [ File.dirname(__FILE__) ]
|
4
|
+
ActiveSupport::Dependencies.autoload_once_paths |= [ File.dirname(__FILE__) ]
|
4
5
|
|
5
6
|
module Hobo
|
6
7
|
# Empty class to represent the boolean type.
|
@@ -10,6 +11,8 @@ end
|
|
10
11
|
module HoboFields
|
11
12
|
|
12
13
|
VERSION = File.read(File.expand_path('../../VERSION', __FILE__)).strip
|
14
|
+
@@root = Pathname.new File.expand_path('../..', __FILE__)
|
15
|
+
def self.root; @@root; end
|
13
16
|
|
14
17
|
extend self
|
15
18
|
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hobo_fields
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
version: 1.3.0
|
4
|
+
prerelease:
|
5
|
+
version: 1.3.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Tom Locke
|
@@ -10,64 +10,53 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-11-14 00:00:00 -05:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
17
|
-
name: rails
|
18
|
-
prerelease: false
|
19
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
20
|
-
none: false
|
21
|
-
requirements:
|
22
|
-
- - ">="
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version: 3.0.0
|
25
|
-
type: :runtime
|
26
|
-
version_requirements: *id001
|
27
16
|
- !ruby/object:Gem::Dependency
|
28
17
|
name: hobo_support
|
29
18
|
prerelease: false
|
30
|
-
requirement: &
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
31
20
|
none: false
|
32
21
|
requirements:
|
33
22
|
- - "="
|
34
23
|
- !ruby/object:Gem::Version
|
35
|
-
version: 1.3.0
|
24
|
+
version: 1.3.0
|
36
25
|
type: :runtime
|
37
|
-
version_requirements: *
|
26
|
+
version_requirements: *id001
|
38
27
|
- !ruby/object:Gem::Dependency
|
39
28
|
name: rubydoctest
|
40
29
|
prerelease: false
|
41
|
-
requirement: &
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
42
31
|
none: false
|
43
32
|
requirements:
|
44
33
|
- - ">="
|
45
34
|
- !ruby/object:Gem::Version
|
46
35
|
version: "0"
|
47
36
|
type: :development
|
48
|
-
version_requirements: *
|
37
|
+
version_requirements: *id002
|
49
38
|
- !ruby/object:Gem::Dependency
|
50
39
|
name: redcloth
|
51
40
|
prerelease: false
|
52
|
-
requirement: &
|
41
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
42
|
none: false
|
54
43
|
requirements:
|
55
44
|
- - ">="
|
56
45
|
- !ruby/object:Gem::Version
|
57
46
|
version: "0"
|
58
47
|
type: :development
|
59
|
-
version_requirements: *
|
48
|
+
version_requirements: *id003
|
60
49
|
- !ruby/object:Gem::Dependency
|
61
50
|
name: bluecloth
|
62
51
|
prerelease: false
|
63
|
-
requirement: &
|
52
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
64
53
|
none: false
|
65
54
|
requirements:
|
66
55
|
- - ">="
|
67
56
|
- !ruby/object:Gem::Version
|
68
57
|
version: "0"
|
69
58
|
type: :development
|
70
|
-
version_requirements: *
|
59
|
+
version_requirements: *id004
|
71
60
|
description: Rich field types and migration generator for Rails
|
72
61
|
email: tom@tomlocke.com
|
73
62
|
executables:
|
@@ -143,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
132
|
requirements: []
|
144
133
|
|
145
134
|
rubyforge_project: hobo
|
146
|
-
rubygems_version: 1.
|
135
|
+
rubygems_version: 1.6.2
|
147
136
|
signing_key:
|
148
137
|
specification_version: 3
|
149
138
|
summary: Rich field types and migration generator for Rails
|