hobo_fields 1.3.3 → 1.4.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -2,6 +2,8 @@ require 'rubygems'
2
2
  require 'active_record'
3
3
  require 'tmpdir'
4
4
 
5
+ include Rake::DSL
6
+
5
7
  ActiveRecord::ActiveRecordError # hack for https://rails.lighthouseapp.com/projects/8994/tickets/2577-when-using-activerecordassociations-outside-of-rails-a-nameerror-is-thrown
6
8
 
7
9
  RUBY = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']).sub(/.*\s.*/m, '"\&"')
@@ -13,7 +15,7 @@ require 'hobo_support'
13
15
  require 'hobo_fields'
14
16
 
15
17
  GEM_ROOT = File.expand_path('../', __FILE__)
16
- TESTAPP_PATH = File.join Dir.tmpdir, 'hobo_fields_testapp'
18
+ TESTAPP_PATH = ENV['TESTAPP_PATH'] || File.join(Dir.tmpdir, 'hobo_fields_testapp')
17
19
  BIN = File.expand_path('../bin/hobofields', __FILE__)
18
20
  require 'hobo_support/common_tasks'
19
21
  include HoboSupport::CommonTasks
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.3
1
+ 1.4.0.pre2
data/hobo_fields.gemspec CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
13
13
 
14
14
  s.add_runtime_dependency('hobo_support', ["= #{version}"])
15
15
  s.add_development_dependency('rubydoctest', [">= 0"])
16
- s.add_development_dependency('redcloth', [">= 0"]) # for testing rich types
16
+ s.add_development_dependency('RedCloth', [">= 0"]) # for testing rich types
17
17
  s.add_development_dependency('bluecloth', [">= 0"]) # for testing rich types
18
18
 
19
19
  s.executables = ["hobofields"]
@@ -7,7 +7,7 @@ module Generators
7
7
  def self.from_reflection(refl)
8
8
  result = self.new
9
9
  result.join_table = refl.options[:join_table].to_s
10
- result.foreign_keys = [refl.primary_key_name.to_s, refl.association_foreign_key.to_s].sort
10
+ result.foreign_keys = [refl.foreign_key.to_s, refl.association_foreign_key.to_s].sort
11
11
  # this may fail in weird ways if HABTM is running across two DB connections (assuming that's even supported)
12
12
  # figure that anybody who sets THAT up can deal with their own migrations...
13
13
  result.connection = refl.active_record.connection
@@ -92,7 +92,7 @@ module HoboFields
92
92
  index_options[:name] = options.delete(:index) if options.has_key?(:index)
93
93
  bt = belongs_to_without_field_declarations(name, options, &block)
94
94
  refl = reflections[name.to_sym]
95
- fkey = refl.primary_key_name
95
+ fkey = refl.foreign_key
96
96
  declare_field(fkey.to_sym, :integer, column_options)
97
97
  if refl.options[:polymorphic]
98
98
  declare_polymorphic_type_field(name, column_options)
@@ -15,7 +15,7 @@ module HoboFields
15
15
  end
16
16
 
17
17
  def to_html(xmldoctype = true)
18
- ERB::Util.html_escape(self).sub('@', " at ").gsub('.', ' dot ')
18
+ ERB::Util.html_escape(self).sub('@', " at ").gsub('.', ' dot ').html_safe
19
19
  end
20
20
 
21
21
  HoboFields.register_type(:email_address, self)
@@ -28,11 +28,17 @@ doctest: test file exists
28
28
 
29
29
  doctest: test content matches
30
30
  >> File.read 'test/unit/alpha/beta_test.rb'
31
- => "require 'test_helper'\n\nclass Alpha::BetaTest < ActiveSupport::TestCase\n # Replace this with your real tests.\n test \"the truth\" do\n assert true\n end\nend\n"
31
+ =>
32
+ require 'test_helper'
32
33
 
34
+ class Alpha::BetaTest < ActiveSupport::TestCase
35
+ # test "the truth" do
36
+ # assert true
37
+ # end
38
+ end
33
39
 
34
40
  doctest: fixture file exists
35
- >> File.exist? 'test/fixtures/alpha/betas.yml'
41
+ >> File.exist? 'test/fixtures/alpha/beta.yml'
36
42
  => true
37
43
 
38
44
 
@@ -31,6 +31,7 @@ And requires also that you enter the right choice when prompted. OK we're ready
31
31
  class Foo < ActiveRecord::Base
32
32
  set_primary_key "id"
33
33
  end
34
+ puts "\n\e[45m Please enter 'id' (no quotes) at the next prompt \e[0m"
34
35
  >> Rails::Generators.invoke 'hobo:migration', %w(-n -m)
35
36
  >> Foo.primary_key
36
37
  => 'id'
@@ -42,6 +43,7 @@ And requires also that you enter the right choice when prompted. OK we're ready
42
43
  class Foo < ActiveRecord::Base
43
44
  set_primary_key "foo_id"
44
45
  end
46
+ puts "\n\e[45m Please enter 'drop id' (no quotes) at the next prompt \e[0m"
45
47
  >> Rails::Generators.invoke 'hobo:migration', %w(-n -m)
46
48
  >> Foo.primary_key
47
49
  => 'foo_id'
@@ -5,7 +5,7 @@ Our test requires to prepare the testapp for a different environment:
5
5
 
6
6
  doctest_require: ENV["RAILS_ENV"] = 'mysql_test'; 'prepare_testapp'
7
7
 
8
- >> system "cd #{TESTAPP_PATH} && rake db:setup"
8
+ >> system "cd #{TESTAPP_PATH} && rake --trace db:setup"
9
9
  => true
10
10
 
11
11
  >> p Rails.env
@@ -1,8 +1,11 @@
1
1
  require 'fileutils'
2
- system %(rake test:prepare_testapp)
3
- TESTAPP_PATH = '/tmp/hobo_fields_testapp'
2
+ require 'tmpdir'
3
+
4
+ TESTAPP_PATH = ENV['TESTAPP_PATH'] || File.join(Dir.tmpdir, 'hobo_fields_testapp')
5
+ system %(rake test:prepare_testapp TESTAPP_PATH=#{TESTAPP_PATH})
6
+ system %(echo "gem 'bluecloth'" >> #{TESTAPP_PATH}/Gemfile)
7
+ system %(echo "gem 'RedCloth'" >> #{TESTAPP_PATH}/Gemfile)
4
8
  FileUtils.chdir TESTAPP_PATH
5
9
  require "#{TESTAPP_PATH}/config/environment"
6
10
  require 'rails/generators'
7
11
  Rails::Generators.configure!
8
-
@@ -97,7 +97,7 @@ Provides validation of correct email address format.
97
97
 
98
98
  >> nasty = HoboFields::Types::EmailAddress.new("foo<nasty>&lt;nasty&gt;@baa.com")
99
99
  >> nasty.to_html
100
- => "foo&lt;nasty&gt;&lt;nasty&gt; at baa dot com"
100
+ => "foo&lt;nasty&gt;&amp;lt;nasty&amp;gt; at baa dot com"
101
101
  >> nasty.to_html.html_safe?
102
102
  => true
103
103
 
@@ -134,7 +134,6 @@ Provides validation of correct email address format.
134
134
 
135
135
  `HoboFields::Types::MarkdownString` provides a `to_html` that renders markdown syntax into html. It requires the bluecloth gem.
136
136
 
137
- >> require 'bluecloth'
138
137
  >> markdown = HoboFields::Types::MarkdownString.new %(
139
138
  This is a heading
140
139
  =================
@@ -158,7 +157,6 @@ Provides validation of correct email address format.
158
157
 
159
158
  `HoboFields::Types::TextileString` provides a `to_html` that renders markdown syntax into html. It requires the redcloth gem.
160
159
 
161
- >> require 'redcloth'
162
160
  >> textile = HoboFields::Types::TextileString.new %(
163
161
  Text can be _emphasised_
164
162
  )
@@ -242,9 +240,12 @@ restrict the column type.
242
240
  >> Vault2.create!(:content => {:key => "in Vault"})
243
241
  >> Vault2.first.content
244
242
  => {:key => "in Vault"}
245
- >> Vault2.create!(:content => 17) rescue ActiveRecord::SerializationTypeMismatch
246
- >> Vault2.all.size
247
- => 1 # second record not created because of type mismatch
243
+ >> puts Vault2.count
244
+ >> v = Vault2.create!(:content => 17)
245
+ >> Vault2.count
246
+ => 2 # Invalid type is successfully created...
247
+ >> v.reload rescue 'broken' # ActiveRecord::SerializationTypeMismatch
248
+ => 'broken'
248
249
 
249
250
  ## Enum Strings
250
251
 
metadata CHANGED
@@ -1,87 +1,70 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: hobo_fields
3
- version: !ruby/object:Gem::Version
4
- version: 1.3.3
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: 6
5
+ version: 1.4.0.pre2
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Tom Locke
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-02 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
12
+
13
+ date: 2012-03-28 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
15
16
  name: hobo_support
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - '='
20
- - !ruby/object:Gem::Version
21
- version: 1.3.3
22
- type: :runtime
23
17
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
18
+ requirement: &id001 !ruby/object:Gem::Requirement
25
19
  none: false
26
- requirements:
27
- - - '='
28
- - !ruby/object:Gem::Version
29
- version: 1.3.3
30
- - !ruby/object:Gem::Dependency
20
+ requirements:
21
+ - - "="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.4.0.pre2
24
+ type: :runtime
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
31
27
  name: rubydoctest
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
38
- type: :development
39
28
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
29
+ requirement: &id002 !ruby/object:Gem::Requirement
41
30
  none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: redcloth
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
54
35
  type: :development
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
38
+ name: RedCloth
55
39
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: bluecloth
64
- requirement: !ruby/object:Gem::Requirement
40
+ requirement: &id003 !ruby/object:Gem::Requirement
65
41
  none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: '0'
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
70
46
  type: :development
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: bluecloth
71
50
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
51
+ requirement: &id004 !ruby/object:Gem::Requirement
73
52
  none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: "0"
57
+ type: :development
58
+ version_requirements: *id004
78
59
  description: Rich field types and migration generator for Rails
79
60
  email: tom@tomlocke.com
80
- executables:
61
+ executables:
81
62
  - hobofields
82
63
  extensions: []
64
+
83
65
  extra_rdoc_files: []
84
- files:
66
+
67
+ files:
85
68
  - CHANGES.txt
86
69
  - LICENSE.txt
87
70
  - README.txt
@@ -121,33 +104,36 @@ files:
121
104
  - test/generators.rdoctest
122
105
  - test/interactive_primary_key.rdoctest
123
106
  - test/migration_generator.rdoctest
124
- - test/migration_generator_comments.rdoctest
107
+ - test/migration_generator_comments.rdoctestDISABLED
125
108
  - test/prepare_testapp.rb
126
109
  - test/rich_types.rdoctest
127
110
  homepage: http://hobocentral.net
128
111
  licenses: []
112
+
129
113
  post_install_message:
130
- rdoc_options:
114
+ rdoc_options:
131
115
  - --charset=UTF-8
132
- require_paths:
116
+ require_paths:
133
117
  - lib
134
- required_ruby_version: !ruby/object:Gem::Requirement
118
+ required_ruby_version: !ruby/object:Gem::Requirement
135
119
  none: false
136
- requirements:
137
- - - ! '>='
138
- - !ruby/object:Gem::Version
139
- version: '0'
140
- required_rubygems_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: "0"
124
+ required_rubygems_version: !ruby/object:Gem::Requirement
141
125
  none: false
142
- requirements:
143
- - - ! '>='
144
- - !ruby/object:Gem::Version
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
145
129
  version: 1.3.6
146
130
  requirements: []
131
+
147
132
  rubyforge_project: hobo
148
- rubygems_version: 1.8.24
133
+ rubygems_version: 1.8.17
149
134
  signing_key:
150
135
  specification_version: 3
151
136
  summary: Rich field types and migration generator for Rails
152
137
  test_files: []
138
+
153
139
  has_rdoc: