annotate 2.6.0.beta2 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +14 -6
- data/AUTHORS.rdoc +33 -0
- data/README.rdoc +19 -46
- data/annotate.gemspec +4 -5
- data/bin/annotate +5 -0
- data/lib/annotate.rb +1 -1
- data/lib/annotate/annotate_models.rb +18 -9
- data/lib/annotate/version.rb +1 -1
- metadata +11 -10
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
OTZlODkwZTcyMTAzZWQzNmZlNTI2NmVjY2Q5MWE4MmI4YWVhYTJiZQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MjQzMDdhYzNiODVmNzA1ZTY4MzA3YzAzZjBlNjgxNzFjZmM3ZGJhYQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NGE3NjhhMGY4Y2RjMGQ5NzUwZDhhZjhiZjYxYTNjMzE4ZTU5NGJhYzBkMWNm
|
10
|
+
Njk3ZTBkOTViYzNmYzgwMzBjMzZiZDRhNWY4Njc4NjYyNGRmYmM3MWY4ZDk2
|
11
|
+
M2QyZjk5MzMyZTViNzJmZTMwOTE1ZDQzZmFiNmFiNjVkOTQ1ZmI=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MWQzN2NkYjBkNjkxMWVjNTFkZWY2MWI4NGJlMzVmMTA2NmMyZjdkN2M5NzAw
|
14
|
+
ZmRjNGIyNjM3MGM0NGRmZTQ3NjcyYTg2OTcwYjY4YjE4MWZkM2FhM2EzNDFi
|
15
|
+
ZWZhNGNjOTJjMTQxMGFkNzlhMjRlMzk0OTBlYzQ3YzUxZmVkOTQ=
|
data/AUTHORS.rdoc
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
== Authors
|
2
|
+
|
3
|
+
- Original code by: Dave Thomas -- Pragmatic Programmers, LLC <http://agilewebdevelopment.com/plugins/annotate_models>
|
4
|
+
- Overhauled by: Alex Chaffee <http://alexch.github.com> alex@stinky.com
|
5
|
+
- Gemmed by: Cuong Tran <http://github.com/ctran> ctran@pragmaquest.com
|
6
|
+
- Maintained by: Alex Chaffee and Cuong Tran
|
7
|
+
- Homepage: http://github.com/ctran/annotate_models
|
8
|
+
|
9
|
+
With help from:
|
10
|
+
|
11
|
+
- Jack Danger - http://github.com/JackDanger
|
12
|
+
- Michael Bumann - http://github.com/bumi
|
13
|
+
- Henrik Nyh - http://github.com/henrik
|
14
|
+
- Marcos Piccinini - http://github.com/nofxx
|
15
|
+
- Neal Clark - http://github.com/nclark
|
16
|
+
- Jacqui Maher - http://github.com/jacqui
|
17
|
+
- Nick Plante - http://github.com/zapnap - http://blog.zerosum.org
|
18
|
+
- Pedro Visintin - http://github.com/peterpunk - http://www.pedrovisintin.com
|
19
|
+
- Bob Potter - http://github.com/bpot
|
20
|
+
- Gavin Montague - http://github.com/govan
|
21
|
+
- Alexander Semyonov - http://github.com/rotuka
|
22
|
+
- Nathan Brazil - http://github.com/bitaxis
|
23
|
+
- Ian Duggan http://github.com/ijcd
|
24
|
+
- Jon Frisby http://github.com/mrjoy
|
25
|
+
- Tsutomu Kuroda
|
26
|
+
- Kevin Moore
|
27
|
+
- Philip Hallstrom
|
28
|
+
- Brent Greeff
|
29
|
+
- Paul Alexander
|
30
|
+
- Dmitry Lihachev
|
31
|
+
- qichunren
|
32
|
+
|
33
|
+
and many others that I may have forgotten to add.
|
data/README.rdoc
CHANGED
@@ -33,7 +33,7 @@ The schema comment looks like this:
|
|
33
33
|
. . .
|
34
34
|
|
35
35
|
It also annotates geometrical columns, geom type and srid, when using
|
36
|
-
`SpatialAdapter` or `
|
36
|
+
`SpatialAdapter`, `PostgisAdapter` or `PostGISAdapter`:
|
37
37
|
|
38
38
|
# == Schema Info
|
39
39
|
#
|
@@ -119,15 +119,6 @@ anywhere in the file:
|
|
119
119
|
|
120
120
|
# -*- SkipSchemaAnnotations
|
121
121
|
|
122
|
-
To generate a configuration file (in the form of a `.rake` file), to set
|
123
|
-
default options:
|
124
|
-
|
125
|
-
rails g annotate:install
|
126
|
-
|
127
|
-
Edit this file to control things like output format, where annotations are
|
128
|
-
added (top or bottom of file), and in which artifacts.
|
129
|
-
|
130
|
-
|
131
122
|
=== Configuration in Rails
|
132
123
|
|
133
124
|
To generate a configuration file (in the form of a `.rake` file), to set
|
@@ -137,6 +128,7 @@ default options:
|
|
137
128
|
|
138
129
|
Edit this file to control things like output format, where annotations are
|
139
130
|
added (top or bottom of file), and in which artifacts.
|
131
|
+
|
140
132
|
== Rails Integration
|
141
133
|
|
142
134
|
By default, once you've generated a configuration file, annotate will be
|
@@ -148,7 +140,7 @@ change:
|
|
148
140
|
|
149
141
|
To:
|
150
142
|
|
151
|
-
'skip_on_db_migrate' => "
|
143
|
+
'skip_on_db_migrate' => "true",
|
152
144
|
|
153
145
|
If you want to run `rake db:migrate` as a one-off without running annotate,
|
154
146
|
you can do so with a simple environment variable, instead of editing the
|
@@ -217,12 +209,17 @@ Be sure to add this to your `Gemfile` as well:
|
|
217
209
|
|
218
210
|
== WARNING
|
219
211
|
|
220
|
-
|
221
|
-
|
222
|
-
|
212
|
+
<b>Don't add text after an automatically-created comment block.</b> This tool
|
213
|
+
will blow away the initial/final comment block in your models if it looks like
|
214
|
+
it was previously added by this gem.
|
223
215
|
|
224
|
-
|
216
|
+
Be sure to check the changes that this tool makes! If you are using Git,
|
217
|
+
you may simply check your project's status after running `annotate`:
|
225
218
|
|
219
|
+
$ git status
|
220
|
+
|
221
|
+
If you are not using a VCS (like Git, Subversion or similar), please tread
|
222
|
+
extra carefully, and consider using one.
|
226
223
|
|
227
224
|
== Links
|
228
225
|
|
@@ -232,43 +229,19 @@ BACK UP YOUR MODELS BEFORE USING THIS TOOL!
|
|
232
229
|
- Fabrication: http://github.com/paulelliott/fabrication
|
233
230
|
- SpatialAdapter: http://github.com/pdeffendol/spatial_adapter
|
234
231
|
- PostgisAdapter: http://github.com/nofxx/postgis_adapter
|
232
|
+
- PostGISAdapter: https://github.com/dazuma/activerecord-postgis-adapter
|
235
233
|
|
236
234
|
|
237
235
|
== License
|
238
236
|
|
239
237
|
Released under the same license as Ruby. No Support. No Warranty.
|
240
238
|
|
239
|
+
== Code Status
|
240
|
+
{<img src="https://travis-ci.org/ctran/annotate_models.png" />}[https://travis-ci.org/ctran/annotate_models]
|
241
|
+
{<img src="https://gemnasium.com/ctran/annotate_models.png" />}[https://gemnasium.com/ctran/annotate_models]
|
242
|
+
|
241
243
|
|
242
244
|
== Authors
|
243
245
|
|
244
|
-
|
245
|
-
|
246
|
-
- Gemmed by: Cuong Tran <http://github.com/ctran> ctran@pragmaquest.com
|
247
|
-
- Maintained by: Alex Chaffee and Cuong Tran
|
248
|
-
- Homepage: http://github.com/ctran/annotate_models
|
249
|
-
|
250
|
-
With help from:
|
251
|
-
|
252
|
-
- Jack Danger - http://github.com/JackDanger
|
253
|
-
- Michael Bumann - http://github.com/bumi
|
254
|
-
- Henrik Nyh - http://github.com/henrik
|
255
|
-
- Marcos Piccinini - http://github.com/nofxx
|
256
|
-
- Neal Clark - http://github.com/nclark
|
257
|
-
- Jacqui Maher - http://github.com/jacqui
|
258
|
-
- Nick Plante - http://github.com/zapnap - http://blog.zerosum.org
|
259
|
-
- Pedro Visintin - http://github.com/peterpunk - http://www.pedrovisintin.com
|
260
|
-
- Bob Potter - http://github.com/bpot
|
261
|
-
- Gavin Montague - http://github.com/govan
|
262
|
-
- Alexander Semyonov - http://github.com/rotuka
|
263
|
-
- Nathan Brazil - http://github.com/bitaxis
|
264
|
-
- Ian Duggan http://github.com/ijcd
|
265
|
-
- Jon Frisby http://github.com/mrjoy
|
266
|
-
- Tsutomu Kuroda
|
267
|
-
- Kevin Moore
|
268
|
-
- Philip Hallstrom
|
269
|
-
- Brent Greeff
|
270
|
-
- Paul Alexander
|
271
|
-
- Dmitry Lihachev
|
272
|
-
- qichunren
|
273
|
-
|
274
|
-
and many others that I may have forgotten to add.
|
246
|
+
{See AUTHORS.rdoc}[link:AUTHORS.rdoc].
|
247
|
+
|
data/annotate.gemspec
CHANGED
@@ -4,21 +4,20 @@
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "annotate"
|
7
|
-
s.version = "2.6.0
|
7
|
+
s.version = "2.6.0"
|
8
8
|
|
9
|
-
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
10
9
|
s.authors = ["Cuong Tran", "Alex Chaffee", "Marcos Piccinini", "Turadg Aleahmad", "Jon Frisby"]
|
11
|
-
s.date = "2013-
|
10
|
+
s.date = "2013-11-29"
|
12
11
|
s.description = "Annotates Rails/ActiveRecord Models, routes, fixtures, and others based on the database schema."
|
13
12
|
s.email = ["alex@stinky.com", "ctran@pragmaquest.com", "x@nofxx.com", "turadg@aleahmad.net", "jon@cloudability.com"]
|
14
13
|
s.executables = ["annotate"]
|
15
14
|
s.extra_rdoc_files = ["README.rdoc", "CHANGELOG.rdoc", "TODO.rdoc"]
|
16
|
-
s.files = ["CHANGELOG.rdoc", "README.rdoc", "TODO.rdoc", "annotate.gemspec", "bin/annotate", "lib/annotate.rb", "lib/annotate/active_record_patch.rb", "lib/annotate/annotate_models.rb", "lib/annotate/annotate_routes.rb", "lib/annotate/tasks.rb", "lib/annotate/version.rb", "lib/generators/annotate/USAGE", "lib/generators/annotate/install_generator.rb", "lib/generators/annotate/templates/auto_annotate_models.rake", "lib/tasks/annotate_models.rake", "lib/tasks/annotate_routes.rake", "tasks/migrate.rake"]
|
15
|
+
s.files = ["AUTHORS.rdoc", "CHANGELOG.rdoc", "README.rdoc", "TODO.rdoc", "annotate.gemspec", "bin/annotate", "lib/annotate.rb", "lib/annotate/active_record_patch.rb", "lib/annotate/annotate_models.rb", "lib/annotate/annotate_routes.rb", "lib/annotate/tasks.rb", "lib/annotate/version.rb", "lib/generators/annotate/USAGE", "lib/generators/annotate/install_generator.rb", "lib/generators/annotate/templates/auto_annotate_models.rake", "lib/tasks/annotate_models.rake", "lib/tasks/annotate_routes.rake", "tasks/migrate.rake"]
|
17
16
|
s.homepage = "http://github.com/ctran/annotate_models"
|
18
17
|
s.licenses = ["Ruby"]
|
19
18
|
s.require_paths = ["lib"]
|
20
19
|
s.rubyforge_project = "annotate"
|
21
|
-
s.rubygems_version = "2.0.
|
20
|
+
s.rubygems_version = "2.0.6"
|
22
21
|
s.summary = "Annotates Rails Models, routes, fixtures, and others based on the database schema."
|
23
22
|
|
24
23
|
if s.respond_to? :specification_version then
|
data/bin/annotate
CHANGED
@@ -134,6 +134,11 @@ OptionParser.new do |opts|
|
|
134
134
|
opts.on('--trace', 'If unable to annotate a file, print the full stack trace, not just the exception message.') do |value|
|
135
135
|
ENV['trace'] = 'yes'
|
136
136
|
end
|
137
|
+
|
138
|
+
opts.on('-I', '--ignore-columns REGEX', "don't annotate columns that match a given REGEX (i.e., `annotate -I '^(id|updated_at|created_at)'`" ) do |regex|
|
139
|
+
ENV['ignore_columns'] = regex
|
140
|
+
end
|
141
|
+
|
137
142
|
end.parse!
|
138
143
|
|
139
144
|
|
data/lib/annotate.rb
CHANGED
@@ -5,7 +5,7 @@ module AnnotateModels
|
|
5
5
|
PREFIX = "== Schema Information"
|
6
6
|
PREFIX_MD = "## Schema Information"
|
7
7
|
END_MARK = "== Schema Information End"
|
8
|
-
PATTERN = /^\n?# (?:#{COMPAT_PREFIX}|#{COMPAT_PREFIX_MD}).*?\n(#.*\n)*\n
|
8
|
+
PATTERN = /^\n?# (?:#{COMPAT_PREFIX}|#{COMPAT_PREFIX_MD}).*?\n(#.*\n)*\n*/
|
9
9
|
|
10
10
|
# File.join for windows reverse bar compat?
|
11
11
|
# I dont use windows, can`t test
|
@@ -108,6 +108,9 @@ module AnnotateModels
|
|
108
108
|
end
|
109
109
|
|
110
110
|
cols = klass.columns
|
111
|
+
if options[:ignore_columns]
|
112
|
+
cols.reject! { |col| col.name.match(/#{options[:ignore_columns]}/) }
|
113
|
+
end
|
111
114
|
cols = cols.sort_by(&:name) if(options[:sort])
|
112
115
|
cols.each do |col|
|
113
116
|
attrs = []
|
@@ -118,9 +121,13 @@ module AnnotateModels
|
|
118
121
|
col_type = (col.type || col.sql_type).to_s
|
119
122
|
if col_type == "decimal"
|
120
123
|
col_type << "(#{col.precision}, #{col.scale})"
|
121
|
-
|
124
|
+
elsif col_type != "spatial"
|
122
125
|
if (col.limit)
|
123
|
-
|
126
|
+
if col.limit.is_a? Array
|
127
|
+
attrs << "(#{col.limit.join(', ')})"
|
128
|
+
else
|
129
|
+
col_type << "(#{col.limit})" unless NO_LIMIT_COL_TYPES.include?(col_type)
|
130
|
+
end
|
124
131
|
end
|
125
132
|
end
|
126
133
|
|
@@ -128,6 +135,8 @@ module AnnotateModels
|
|
128
135
|
# and print the type and SRID
|
129
136
|
if col.respond_to?(:geometry_type)
|
130
137
|
attrs << "#{col.geometry_type}, #{col.srid}"
|
138
|
+
elsif col.respond_to?(:geometric_type) and col.geometric_type.present?
|
139
|
+
attrs << "#{col.geometric_type.to_s.downcase}, #{col.srid}"
|
131
140
|
end
|
132
141
|
|
133
142
|
# Check if the column has indices and print "indexed" if true
|
@@ -160,9 +169,9 @@ module AnnotateModels
|
|
160
169
|
if options[:format_rdoc]
|
161
170
|
info << "#--\n"
|
162
171
|
info << "# #{END_MARK}\n"
|
163
|
-
info << "#++\n
|
172
|
+
info << "#++\n"
|
164
173
|
else
|
165
|
-
info << "#\n
|
174
|
+
info << "#\n"
|
166
175
|
end
|
167
176
|
end
|
168
177
|
|
@@ -204,7 +213,7 @@ module AnnotateModels
|
|
204
213
|
return false if(old_content =~ /# -\*- SkipSchemaAnnotations.*\n/)
|
205
214
|
|
206
215
|
# Ignore the Schema version line because it changes with each migration
|
207
|
-
header_pattern = /(^# Table name:.*?\n(#.*[\r]?\n)*[\r]
|
216
|
+
header_pattern = /(^# Table name:.*?\n(#.*[\r]?\n)*[\r]?)/
|
208
217
|
old_header = old_content.match(header_pattern).to_s
|
209
218
|
new_header = info_block.match(header_pattern).to_s
|
210
219
|
|
@@ -212,7 +221,7 @@ module AnnotateModels
|
|
212
221
|
old_columns = old_header && old_header.scan(column_pattern).sort
|
213
222
|
new_columns = new_header && new_header.scan(column_pattern).sort
|
214
223
|
|
215
|
-
encoding = Regexp.new(/(^#\s*encoding:.*\n)|(^# coding:.*\n)|(^# -\*- coding:.*\n)/)
|
224
|
+
encoding = Regexp.new(/(^#\s*encoding:.*\n)|(^# coding:.*\n)|(^# -\*- coding:.*\n)|(^# -\*- encoding\s?:.*\n)/)
|
216
225
|
encoding_header = old_content.match(encoding).to_s
|
217
226
|
|
218
227
|
if old_columns == new_columns && !options[:force]
|
@@ -238,7 +247,7 @@ module AnnotateModels
|
|
238
247
|
|
239
248
|
new_content = options[position].to_s == 'after' ?
|
240
249
|
(encoding_header + (old_content.rstrip + "\n\n" + info_block)) :
|
241
|
-
(encoding_header + info_block + old_content)
|
250
|
+
(encoding_header + info_block + "\n" + old_content)
|
242
251
|
|
243
252
|
File.open(file_name, "wb") { |f| f.puts new_content }
|
244
253
|
return true
|
@@ -407,7 +416,7 @@ module AnnotateModels
|
|
407
416
|
def annotate_model_file(annotated, file, header, options)
|
408
417
|
begin
|
409
418
|
klass = get_model_class(file)
|
410
|
-
if klass && klass < ActiveRecord::Base && !klass.abstract_class?
|
419
|
+
if klass && klass < ActiveRecord::Base && !klass.abstract_class? && klass.table_exists?
|
411
420
|
if annotate(klass, file, header, options)
|
412
421
|
annotated << klass
|
413
422
|
end
|
data/lib/annotate/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: annotate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.0
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cuong Tran
|
@@ -12,34 +12,34 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2013-
|
15
|
+
date: 2013-11-29 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rake
|
19
19
|
requirement: !ruby/object:Gem::Requirement
|
20
20
|
requirements:
|
21
|
-
- - '>='
|
21
|
+
- - ! '>='
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 0.8.7
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
|
-
- - '>='
|
28
|
+
- - ! '>='
|
29
29
|
- !ruby/object:Gem::Version
|
30
30
|
version: 0.8.7
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
32
|
name: activerecord
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|
34
34
|
requirements:
|
35
|
-
- - '>='
|
35
|
+
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
37
|
version: 2.3.0
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
requirements:
|
42
|
-
- - '>='
|
42
|
+
- - ! '>='
|
43
43
|
- !ruby/object:Gem::Version
|
44
44
|
version: 2.3.0
|
45
45
|
description: Annotates Rails/ActiveRecord Models, routes, fixtures, and others based
|
@@ -58,6 +58,7 @@ extra_rdoc_files:
|
|
58
58
|
- CHANGELOG.rdoc
|
59
59
|
- TODO.rdoc
|
60
60
|
files:
|
61
|
+
- AUTHORS.rdoc
|
61
62
|
- CHANGELOG.rdoc
|
62
63
|
- README.rdoc
|
63
64
|
- TODO.rdoc
|
@@ -85,17 +86,17 @@ require_paths:
|
|
85
86
|
- lib
|
86
87
|
required_ruby_version: !ruby/object:Gem::Requirement
|
87
88
|
requirements:
|
88
|
-
- - '>='
|
89
|
+
- - ! '>='
|
89
90
|
- !ruby/object:Gem::Version
|
90
91
|
version: '0'
|
91
92
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
93
|
requirements:
|
93
|
-
- - '
|
94
|
+
- - ! '>='
|
94
95
|
- !ruby/object:Gem::Version
|
95
|
-
version:
|
96
|
+
version: '0'
|
96
97
|
requirements: []
|
97
98
|
rubyforge_project: annotate
|
98
|
-
rubygems_version: 2.0.
|
99
|
+
rubygems_version: 2.0.6
|
99
100
|
signing_key:
|
100
101
|
specification_version: 4
|
101
102
|
summary: Annotates Rails Models, routes, fixtures, and others based on the database
|