schema_plus 0.1.0 → 0.1.1

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/README.rdoc CHANGED
@@ -11,9 +11,11 @@ For added rails DRYness see also the gems
11
11
  == Compatibility
12
12
 
13
13
  SchemaPlus supports all combinations of:
14
- * rails 3.0 or 3.1
14
+ * rails 2.3, 3.0, or 3.1
15
15
  * MRI ruby 1.8.7 or 1.9.2
16
- * PostgreSQL, MySQL (using mysql or mysql2 gem), or Sqlite3
16
+ * PostgreSQL, MySQL (using mysql or mysql2 gem), or SQLite3 (using sqlite3 3.7.7 which has foreign key support)
17
+
18
+ Support for rails 2.3 will likely be dropped starting in version 0.2.x.
17
19
 
18
20
  == Installation
19
21
 
@@ -95,6 +95,16 @@ module SchemaPlus
95
95
  false
96
96
  end
97
97
 
98
+ # This is define in rails 3.x, but not in rails2.x
99
+ unless defined? ::ActiveRecord::ConnectionAdapters::SchemaStatements::index_name_exists?
100
+ # File activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 403
101
+ def index_name_exists?(table_name, index_name, default)
102
+ return default unless respond_to?(:indexes)
103
+ index_name = index_name.to_s
104
+ indexes(table_name).detect { |i| i.name == index_name }
105
+ end
106
+ end
107
+
98
108
  end
99
109
  end
100
110
  end
@@ -19,8 +19,8 @@ module SchemaPlus
19
19
  end
20
20
 
21
21
  def initialize_with_schema_plus(*args) #:nodoc:
22
- # same args as add_index(table_name, column_names, options={})
23
- if args.length == 2 or (args.length == 3 && Hash === args.last)
22
+ # same args as add_index(table_name, column_names, options)
23
+ if args.length == 3 and Hash === args.last
24
24
  table_name, column_names, options = args + [{}]
25
25
  initialize_without_schema_plus(table_name, options[:name], options[:unique], column_names, options[:lengths])
26
26
  @conditions = options[:conditions]
@@ -1,3 +1,3 @@
1
1
  module SchemaPlus
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/runspecs CHANGED
@@ -3,7 +3,7 @@
3
3
  require 'optparse'
4
4
 
5
5
  RUBY_VERSIONS = %W[1.8.7 1.9.2]
6
- RAILS_VERSIONS = %W[3.0 3.1]
6
+ RAILS_VERSIONS = %W[2.3 3.0 3.1]
7
7
 
8
8
  options = {}
9
9
  OptionParser.new do |opts|
data/schema_plus.gemspec CHANGED
@@ -24,6 +24,9 @@ Gem::Specification.new do |s|
24
24
  s.add_dependency("valuable")
25
25
 
26
26
  case ENV['SCHEMA_PLUS_RAILS_VERSION']
27
+ when '2.3'
28
+ s.add_development_dependency("rails", "~> 2.3")
29
+ s.add_development_dependency("mysql2", "~> 0.2.6")
27
30
  when '3.0'
28
31
  s.add_development_dependency("rails", "~> 3.0")
29
32
  s.add_development_dependency("mysql2", "~> 0.2.6")
@@ -9,7 +9,7 @@ ActiveRecord::Base.configurations = {
9
9
  :database => 'schema_plus_unittest',
10
10
  :username => 'schema_plus',
11
11
  :encoding => 'utf8',
12
- #:socket => '/tmp/mysql.sock',
12
+ :socket => '/tmp/mysql.sock',
13
13
  :min_messages => 'warning'
14
14
  }
15
15
 
@@ -9,7 +9,7 @@ ActiveRecord::Base.configurations = {
9
9
  :database => 'schema_plus_unittest',
10
10
  :username => 'schema_plus',
11
11
  :encoding => 'utf8',
12
- #:socket => '/tmp/mysql.sock',
12
+ :socket => '/tmp/mysql.sock',
13
13
  :min_messages => 'warning'
14
14
  }
15
15
 
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schema_plus
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 0
9
- version: 0.1.0
4
+ prerelease:
5
+ version: 0.1.1
10
6
  platform: ruby
11
7
  authors:
12
8
  - Ronen Barzel
@@ -15,18 +11,17 @@ autorequire:
15
11
  bindir: bin
16
12
  cert_chain: []
17
13
 
18
- date: 2011-07-26 00:00:00 +02:00
14
+ date: 2011-07-26 00:00:00 -07:00
19
15
  default_executable:
20
16
  dependencies:
21
17
  - !ruby/object:Gem::Dependency
22
18
  name: rails
23
19
  prerelease: false
24
20
  requirement: &id001 !ruby/object:Gem::Requirement
21
+ none: false
25
22
  requirements:
26
23
  - - ">="
27
24
  - !ruby/object:Gem::Version
28
- segments:
29
- - 0
30
25
  version: "0"
31
26
  type: :runtime
32
27
  version_requirements: *id001
@@ -34,112 +29,123 @@ dependencies:
34
29
  name: valuable
35
30
  prerelease: false
36
31
  requirement: &id002 !ruby/object:Gem::Requirement
32
+ none: false
37
33
  requirements:
38
34
  - - ">="
39
35
  - !ruby/object:Gem::Version
40
- segments:
41
- - 0
42
36
  version: "0"
43
37
  type: :runtime
44
38
  version_requirements: *id002
45
39
  - !ruby/object:Gem::Dependency
46
- name: mysql2
40
+ name: rails
47
41
  prerelease: false
48
42
  requirement: &id003 !ruby/object:Gem::Requirement
43
+ none: false
49
44
  requirements:
50
- - - ">="
45
+ - - ~>
51
46
  - !ruby/object:Gem::Version
52
- segments:
53
- - 0
54
- version: "0"
47
+ version: "2.3"
55
48
  type: :development
56
49
  version_requirements: *id003
57
50
  - !ruby/object:Gem::Dependency
58
- name: rake
51
+ name: mysql2
59
52
  prerelease: false
60
53
  requirement: &id004 !ruby/object:Gem::Requirement
54
+ none: false
61
55
  requirements:
62
56
  - - ~>
63
57
  - !ruby/object:Gem::Version
64
- segments:
65
- - 0
66
- - 8
67
- - 7
68
- version: 0.8.7
58
+ version: 0.2.6
69
59
  type: :development
70
60
  version_requirements: *id004
71
61
  - !ruby/object:Gem::Dependency
72
- name: rspec
62
+ name: rake
73
63
  prerelease: false
74
64
  requirement: &id005 !ruby/object:Gem::Requirement
65
+ none: false
75
66
  requirements:
76
- - - ">="
67
+ - - ~>
77
68
  - !ruby/object:Gem::Version
78
- segments:
79
- - 0
80
- version: "0"
69
+ version: 0.8.7
81
70
  type: :development
82
71
  version_requirements: *id005
83
72
  - !ruby/object:Gem::Dependency
84
- name: pg
73
+ name: rspec
85
74
  prerelease: false
86
75
  requirement: &id006 !ruby/object:Gem::Requirement
76
+ none: false
87
77
  requirements:
88
78
  - - ">="
89
79
  - !ruby/object:Gem::Version
90
- segments:
91
- - 0
92
80
  version: "0"
93
81
  type: :development
94
82
  version_requirements: *id006
95
83
  - !ruby/object:Gem::Dependency
96
- name: mysql
84
+ name: pg
97
85
  prerelease: false
98
86
  requirement: &id007 !ruby/object:Gem::Requirement
87
+ none: false
99
88
  requirements:
100
89
  - - ">="
101
90
  - !ruby/object:Gem::Version
102
- segments:
103
- - 0
104
91
  version: "0"
105
92
  type: :development
106
93
  version_requirements: *id007
107
94
  - !ruby/object:Gem::Dependency
108
- name: sqlite3
95
+ name: mysql
109
96
  prerelease: false
110
97
  requirement: &id008 !ruby/object:Gem::Requirement
98
+ none: false
111
99
  requirements:
112
100
  - - ">="
113
101
  - !ruby/object:Gem::Version
114
- segments:
115
- - 0
116
102
  version: "0"
117
103
  type: :development
118
104
  version_requirements: *id008
119
105
  - !ruby/object:Gem::Dependency
120
- name: simplecov
106
+ name: sqlite3
121
107
  prerelease: false
122
108
  requirement: &id009 !ruby/object:Gem::Requirement
109
+ none: false
123
110
  requirements:
124
111
  - - ">="
125
112
  - !ruby/object:Gem::Version
126
- segments:
127
- - 0
128
113
  version: "0"
129
114
  type: :development
130
115
  version_requirements: *id009
131
116
  - !ruby/object:Gem::Dependency
132
- name: simplecov-gem-adapter
117
+ name: simplecov
133
118
  prerelease: false
134
119
  requirement: &id010 !ruby/object:Gem::Requirement
120
+ none: false
135
121
  requirements:
136
122
  - - ">="
137
123
  - !ruby/object:Gem::Version
138
- segments:
139
- - 0
140
124
  version: "0"
141
125
  type: :development
142
126
  version_requirements: *id010
127
+ - !ruby/object:Gem::Dependency
128
+ name: simplecov-gem-adapter
129
+ prerelease: false
130
+ requirement: &id011 !ruby/object:Gem::Requirement
131
+ none: false
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: "0"
136
+ type: :development
137
+ version_requirements: *id011
138
+ - !ruby/object:Gem::Dependency
139
+ name: ruby-debug19
140
+ prerelease: false
141
+ requirement: &id012 !ruby/object:Gem::Requirement
142
+ none: false
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: "0"
147
+ type: :development
148
+ version_requirements: *id012
143
149
  description: "SchemaPlus is an ActiveRecord extension that provides enhanced capabilities for schema definition and querying, including: enhanced and more DRY index capabilities, support and automation for foreign key constraints, and support for views."
144
150
  email:
145
151
  - ronen@barzel.org
@@ -194,7 +200,6 @@ files:
194
200
  - spec/schema_dumper_spec.rb
195
201
  - spec/schema_spec.rb
196
202
  - spec/spec_helper.rb
197
- - spec/support/extensions/active_model.rb
198
203
  - spec/support/helpers.rb
199
204
  - spec/support/matchers/automatic_foreign_key_matchers.rb
200
205
  - spec/support/matchers/have_index.rb
@@ -211,25 +216,47 @@ rdoc_options: []
211
216
  require_paths:
212
217
  - lib
213
218
  required_ruby_version: !ruby/object:Gem::Requirement
219
+ none: false
214
220
  requirements:
215
221
  - - ">="
216
222
  - !ruby/object:Gem::Version
217
- segments:
218
- - 0
219
223
  version: "0"
220
224
  required_rubygems_version: !ruby/object:Gem::Requirement
225
+ none: false
221
226
  requirements:
222
227
  - - ">="
223
228
  - !ruby/object:Gem::Version
224
- segments:
225
- - 0
226
229
  version: "0"
227
230
  requirements: []
228
231
 
229
232
  rubyforge_project: schema_plus
230
- rubygems_version: 1.3.6
233
+ rubygems_version: 1.6.2
231
234
  signing_key:
232
235
  specification_version: 3
233
236
  summary: Enhances ActiveRecord schema mechanism, including more DRY index creation and support for foreign key constraints and views.
234
- test_files: []
235
-
237
+ test_files:
238
+ - spec/column_spec.rb
239
+ - spec/connections/mysql/connection.rb
240
+ - spec/connections/mysql2/connection.rb
241
+ - spec/connections/postgresql/connection.rb
242
+ - spec/connections/sqlite3/connection.rb
243
+ - spec/foreign_key_definition_spec.rb
244
+ - spec/foreign_key_spec.rb
245
+ - spec/index_definition_spec.rb
246
+ - spec/index_spec.rb
247
+ - spec/migration_spec.rb
248
+ - spec/models/comment.rb
249
+ - spec/models/post.rb
250
+ - spec/models/user.rb
251
+ - spec/references_spec.rb
252
+ - spec/schema/auto_schema.rb
253
+ - spec/schema/core_schema.rb
254
+ - spec/schema_dumper_spec.rb
255
+ - spec/schema_spec.rb
256
+ - spec/spec_helper.rb
257
+ - spec/support/helpers.rb
258
+ - spec/support/matchers/automatic_foreign_key_matchers.rb
259
+ - spec/support/matchers/have_index.rb
260
+ - spec/support/matchers/reference.rb
261
+ - spec/support/reference.rb
262
+ - spec/views_spec.rb
@@ -1,13 +0,0 @@
1
- # ported from rspec-rails
2
- # There is no reason to install whole gem as we
3
- # need only that tiny helper
4
- module ::ActiveModel::Validations
5
-
6
- def error_on(attribute)
7
- self.valid?
8
- [self.errors[attribute]].flatten.compact
9
- end
10
-
11
- alias :errors_on :error_on
12
-
13
- end