annotated_models 3.0.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/.document +5 -0
- data/.rspec +1 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +43 -0
- data/History.txt +51 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +145 -0
- data/Rakefile +55 -0
- data/VERSION.yml +5 -0
- data/annotated_models.gemspec +120 -0
- data/bin/annotate +74 -0
- data/lib/annotated_models.rb +357 -0
- data/lib/tasks/annotate_models.rake +24 -0
- data/lib/tasks/migrate.rake +50 -0
- data/spec/annotate_models_spec.rb +236 -0
- data/spec/spec_helper.rb +12 -0
- data/todo.txt +4 -0
- metadata +346 -0
data/.document
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
annotated_models (3.0.0)
|
5
|
+
activesupport
|
6
|
+
annotated_models
|
7
|
+
i18n
|
8
|
+
|
9
|
+
GEM
|
10
|
+
remote: http://rubygems.org/
|
11
|
+
specs:
|
12
|
+
activesupport (3.0.4)
|
13
|
+
diff-lcs (1.1.2)
|
14
|
+
fakefs (0.3.1)
|
15
|
+
git (1.2.5)
|
16
|
+
i18n (0.5.0)
|
17
|
+
jeweler (1.5.2)
|
18
|
+
bundler (~> 1.0.0)
|
19
|
+
git (>= 1.2.5)
|
20
|
+
rake
|
21
|
+
rake (0.8.7)
|
22
|
+
rcov (0.9.9)
|
23
|
+
rspec (2.5.0)
|
24
|
+
rspec-core (~> 2.5.0)
|
25
|
+
rspec-expectations (~> 2.5.0)
|
26
|
+
rspec-mocks (~> 2.5.0)
|
27
|
+
rspec-core (2.5.1)
|
28
|
+
rspec-expectations (2.5.0)
|
29
|
+
diff-lcs (~> 1.1.2)
|
30
|
+
rspec-mocks (2.5.0)
|
31
|
+
|
32
|
+
PLATFORMS
|
33
|
+
ruby
|
34
|
+
|
35
|
+
DEPENDENCIES
|
36
|
+
activesupport
|
37
|
+
annotated_models!
|
38
|
+
bundler
|
39
|
+
fakefs
|
40
|
+
i18n
|
41
|
+
jeweler
|
42
|
+
rcov
|
43
|
+
rspec
|
data/History.txt
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
== 2.4.2 2009-11-21
|
2
|
+
|
3
|
+
* Annotates (spec|test)/factories/<model>_factory.rb files
|
4
|
+
|
5
|
+
== 2.4.1 2009-11-20
|
6
|
+
|
7
|
+
* Annotates thoughtbot's factory_girl factories (test/factories/<model>_factory.rb)
|
8
|
+
* Move default annotation position back to top
|
9
|
+
|
10
|
+
== 2.4.0 2009-12-13
|
11
|
+
|
12
|
+
* Incorporated lots of patches from the Github community, including support for Blueprints fixtures
|
13
|
+
* Several bug fixes
|
14
|
+
|
15
|
+
== 2.1 2009-10-18
|
16
|
+
|
17
|
+
* New options
|
18
|
+
* -R to require additional files before loading the models
|
19
|
+
* -i to show database indexes in annotations
|
20
|
+
* -e to exclude annotating tests or fixtures
|
21
|
+
* -m to include the migration version number in the annotation
|
22
|
+
* --model-dir to annotate model files stored a different place than app/models
|
23
|
+
* Ignore unknown macros ('acts_as_whatever')
|
24
|
+
|
25
|
+
== 2.0 2009-02-03
|
26
|
+
|
27
|
+
* Add annotate_models plugin fork additions
|
28
|
+
* Annotates Rspec and Test Unit models
|
29
|
+
* Annotates Object Daddy exemplars
|
30
|
+
* Annotates geometrical columns
|
31
|
+
* Add AnnotateRoutes rake task
|
32
|
+
* Up gem structure to newgem defaults
|
33
|
+
|
34
|
+
== 1.0.4 2008-09-04
|
35
|
+
|
36
|
+
* Only update modified models since last run, thanks to sant0sk1
|
37
|
+
|
38
|
+
== 1.0.3 2008-05-02
|
39
|
+
|
40
|
+
* Add misc changes from Dustin Sallings and Henrik N
|
41
|
+
* Remove trailing whitespace
|
42
|
+
* More intuitive info messages
|
43
|
+
* Update README file with update-to-date example
|
44
|
+
|
45
|
+
== 1.0.2 2008-03-22
|
46
|
+
|
47
|
+
* Add contributions from Michael Bumann (http://github.com/bumi)
|
48
|
+
* added an option "position" to choose to put the annotation,
|
49
|
+
* spec/fixtures now also get annotated
|
50
|
+
* added a task to remove the annotations
|
51
|
+
* these options can be specified from command line as -d and -p [before|after]
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011 Dmitry Lihachev
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,145 @@
|
|
1
|
+
== Annotate (aka AnnotatedModels)
|
2
|
+
|
3
|
+
Add a comment summarizing the current schema to the top or bottom of each of your...
|
4
|
+
|
5
|
+
* ActiveRecord models
|
6
|
+
* Fixture files
|
7
|
+
* Tests and Specs
|
8
|
+
* Object Daddy exemplars
|
9
|
+
* Machinist blueprints
|
10
|
+
* Thoughtbot's factory_girl factories, i.e. the (spec|test)/factories/<model>_factory.rb files
|
11
|
+
|
12
|
+
The schema comment looks like this:
|
13
|
+
|
14
|
+
# == Schema Info
|
15
|
+
#
|
16
|
+
# Table name: line_items
|
17
|
+
#
|
18
|
+
# id :integer(11) not null, primary key
|
19
|
+
# quantity :integer(11) not null
|
20
|
+
# product_id :integer(11) not null
|
21
|
+
# unit_price :float
|
22
|
+
# order_id :integer(11)
|
23
|
+
#
|
24
|
+
|
25
|
+
class LineItem < ActiveRecord::Base
|
26
|
+
belongs_to :product
|
27
|
+
. . .
|
28
|
+
|
29
|
+
It also annotates geometrical columns, geom type and srid, when using SpatialAdapter or PostgisAdapter:
|
30
|
+
|
31
|
+
# == Schema Info
|
32
|
+
#
|
33
|
+
# Table name: trips
|
34
|
+
#
|
35
|
+
# local :geometry point, 4326
|
36
|
+
# path :geometry line_string, 4326
|
37
|
+
|
38
|
+
Also, if you pass the -r option, it'll annotate routes.rb with the output of "rake routes".
|
39
|
+
|
40
|
+
== INSTALL
|
41
|
+
|
42
|
+
From rubyforge:
|
43
|
+
|
44
|
+
sudo gem install annotate
|
45
|
+
|
46
|
+
From github:
|
47
|
+
|
48
|
+
git clone git://github.com/ctran/annotate_models.git annotate
|
49
|
+
cd annotate
|
50
|
+
gem build annotate.gemspec
|
51
|
+
sudo gem install annotate-<version>.gem
|
52
|
+
|
53
|
+
== USAGE
|
54
|
+
|
55
|
+
To annotate all your models, tests, fixtures, etc.:
|
56
|
+
|
57
|
+
cd /path/to/app
|
58
|
+
annotate
|
59
|
+
|
60
|
+
To annotate your models and tests:
|
61
|
+
|
62
|
+
annotate --exclude fixtures
|
63
|
+
|
64
|
+
To annotate just your models:
|
65
|
+
|
66
|
+
annotate --exclude tests,fixtures
|
67
|
+
|
68
|
+
To annotate routes.rb:
|
69
|
+
|
70
|
+
annotate -r
|
71
|
+
|
72
|
+
To automatically annotate after running 'rake db:migrate':
|
73
|
+
|
74
|
+
[needs more clarity] unpack the gem into vendor/plugins, or maybe vendor/gems, or maybe just require tasks/migrate.rake.
|
75
|
+
|
76
|
+
If you install annotate_models as a plugin, it will automatically
|
77
|
+
adjust your <tt>rake db:migrate</tt> tasks so that they update the
|
78
|
+
annotations in your model files for you once the migration is
|
79
|
+
completed.
|
80
|
+
|
81
|
+
Warning: ImageMagick installs a tool called `annotate` too (if you're using MacPorts it's in `/opt/local/bin/annotate`. So if you see Usage: annotate imagein.jpg imageout.jpg then put `/usr/bin` ahead on the path and you'll get ours instead.
|
82
|
+
|
83
|
+
|
84
|
+
== OPTIONS
|
85
|
+
|
86
|
+
Usage: annotate [options] [model_file]*
|
87
|
+
-d, --delete Remove annotations from all model files
|
88
|
+
-p, --position [before|after] Place the annotations at the top (before) or the bottom (after) of the model file
|
89
|
+
-r, --routes Annotate routes.rb with the output of 'rake routes'
|
90
|
+
-v, --version Show the current version of this gem
|
91
|
+
-m, --show-migration Include the migration version number in the annotation
|
92
|
+
-i, --show-indexes List the table's database indexes in the annotation
|
93
|
+
-s, --simple-indexes Concat the column's related indexes in the annotation
|
94
|
+
--model-dir dir Annotate model files stored in dir rather than app/models
|
95
|
+
-R, --require path Additional files to require before loading models
|
96
|
+
-e [tests,fixtures,factories] Do not annotate fixtures, test files, and/or factories
|
97
|
+
--exclude
|
98
|
+
|
99
|
+
|
100
|
+
== WARNING
|
101
|
+
|
102
|
+
Note that this code will blow away the initial/final comment
|
103
|
+
block in your models if it looks like it was previously added
|
104
|
+
by annotate models, so you don't want to add additional text
|
105
|
+
to an automatically created comment block.
|
106
|
+
|
107
|
+
* * Back up your model files before using... * *
|
108
|
+
|
109
|
+
== LINKS
|
110
|
+
|
111
|
+
* Factory Girl => http://github.com/thoughtbot/factory_girl
|
112
|
+
* Object Daddy => http://github.com/flogic/object_daddy
|
113
|
+
* SpatialAdapter => http://github.com/pdeffendol/spatial_adapter
|
114
|
+
* PostgisAdapter => http://github.com/nofxx/postgis_adapter
|
115
|
+
|
116
|
+
== LICENSE:
|
117
|
+
|
118
|
+
Released under the same license as Ruby. No Support. No Warranty.
|
119
|
+
|
120
|
+
== AUTHOR:
|
121
|
+
|
122
|
+
Original code by: Dave Thomas -- Pragmatic Programmers, LLC
|
123
|
+
Overhauled by: Alex Chaffee
|
124
|
+
Gemmed by: Cuong Tran
|
125
|
+
Maintained by: Alex Chaffee and Cuong Tran
|
126
|
+
Homepage: http://github.com/ctran/annotate_models
|
127
|
+
|
128
|
+
Modifications by:
|
129
|
+
|
130
|
+
- Alex Chaffee - http://github.com/alexch - alex@pivotallabs.com
|
131
|
+
- Cuong Tran - http://github.com/ctran - ctran@pragmaquest.com
|
132
|
+
- Jack Danger - http://github.com/JackDanger
|
133
|
+
- Michael Bumann - http://github.com/bumi
|
134
|
+
- Henrik Nyh - http://github.com/henrik
|
135
|
+
- Marcos Piccinini - http://github.com/nofxx
|
136
|
+
- Neal Clark - http://github.com/nclark
|
137
|
+
- Jacqui Maher - http://github.com/jacqui
|
138
|
+
- Nick Plante - http://github.com/zapnap - http://blog.zerosum.org
|
139
|
+
- Pedro Visintin - http://github.com/peterpunk - http://www.pedrovisintin.com
|
140
|
+
- Bob Potter - http://github.com/bpot
|
141
|
+
- Gavin Montague - http://github.com/govan/
|
142
|
+
- Alexander Semyonov - http://github.com/rotuka/
|
143
|
+
- Nathan Brazil - http://github.com/bitaxis/
|
144
|
+
|
145
|
+
and many others that I may have missed to add.
|
data/Rakefile
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
require 'rake'
|
11
|
+
|
12
|
+
require 'jeweler'
|
13
|
+
Jeweler::Tasks.new do |gem|
|
14
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
15
|
+
gem.name = "annotated_models"
|
16
|
+
gem.homepage = "http://github.com/lda/annotated_models"
|
17
|
+
gem.license = "MIT"
|
18
|
+
gem.summary = %Q{Annotate ActiveRecord models as a gem}
|
19
|
+
gem.description = %Q{Add a comment summarizing the current schema to the top or bottom of each of your models}
|
20
|
+
gem.email = "lda@openteam.ru"
|
21
|
+
gem.authors = ["Dave Thomas", "Alex Chaffee", "Cuong Tran", "Alex Chaffee", "Dmitry Lihachev"]
|
22
|
+
|
23
|
+
gem.add_development_dependency(%q<bundler>, [">= 0"])
|
24
|
+
gem.add_development_dependency(%q<jeweler>, [">= 0"])
|
25
|
+
gem.add_development_dependency(%q<rcov>, [">= 0"])
|
26
|
+
gem.add_development_dependency(%q<fakefs>, [">= 0"])
|
27
|
+
gem.add_development_dependency(%q<rspec>, [">= 0"])
|
28
|
+
|
29
|
+
gem.add_runtime_dependency(%q<activesupport>, [">= 0"])
|
30
|
+
gem.add_runtime_dependency(%q<i18n>, [">= 0"])
|
31
|
+
end
|
32
|
+
Jeweler::RubygemsDotOrgTasks.new
|
33
|
+
|
34
|
+
require 'rspec/core'
|
35
|
+
require 'rspec/core/rake_task'
|
36
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
37
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
38
|
+
end
|
39
|
+
|
40
|
+
RSpec::Core::RakeTask.new(:rcov) do |spec|
|
41
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
42
|
+
spec.rcov = true
|
43
|
+
end
|
44
|
+
|
45
|
+
task :default => :spec
|
46
|
+
|
47
|
+
require 'rake/rdoctask'
|
48
|
+
Rake::RDocTask.new do |rdoc|
|
49
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
50
|
+
|
51
|
+
rdoc.rdoc_dir = 'rdoc'
|
52
|
+
rdoc.title = "annotated_models #{version}"
|
53
|
+
rdoc.rdoc_files.include('README*')
|
54
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
55
|
+
end
|
data/VERSION.yml
ADDED
@@ -0,0 +1,120 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{annotated_models}
|
8
|
+
s.version = "3.0.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Dave Thomas", "Alex Chaffee", "Cuong Tran", "Alex Chaffee", "Dmitry Lihachev"]
|
12
|
+
s.date = %q{2011-02-22}
|
13
|
+
s.default_executable = %q{annotate}
|
14
|
+
s.description = %q{Add a comment summarizing the current schema to the top or bottom of each of your models}
|
15
|
+
s.email = %q{lda@openteam.ru}
|
16
|
+
s.executables = ["annotate"]
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"LICENSE.txt",
|
19
|
+
"README.rdoc"
|
20
|
+
]
|
21
|
+
s.files = [
|
22
|
+
".document",
|
23
|
+
".rspec",
|
24
|
+
"Gemfile",
|
25
|
+
"Gemfile.lock",
|
26
|
+
"History.txt",
|
27
|
+
"LICENSE.txt",
|
28
|
+
"README.rdoc",
|
29
|
+
"Rakefile",
|
30
|
+
"VERSION.yml",
|
31
|
+
"annotated_models.gemspec",
|
32
|
+
"bin/annotate",
|
33
|
+
"lib/annotated_models.rb",
|
34
|
+
"lib/tasks/annotate_models.rake",
|
35
|
+
"lib/tasks/migrate.rake",
|
36
|
+
"spec/annotate_models_spec.rb",
|
37
|
+
"spec/spec_helper.rb",
|
38
|
+
"todo.txt"
|
39
|
+
]
|
40
|
+
s.homepage = %q{http://github.com/lda/annotated_models}
|
41
|
+
s.licenses = ["MIT"]
|
42
|
+
s.require_paths = ["lib"]
|
43
|
+
s.rubygems_version = %q{1.3.7}
|
44
|
+
s.summary = %q{Annotate ActiveRecord models as a gem}
|
45
|
+
s.test_files = [
|
46
|
+
"spec/annotate_models_spec.rb",
|
47
|
+
"spec/spec_helper.rb"
|
48
|
+
]
|
49
|
+
|
50
|
+
if s.respond_to? :specification_version then
|
51
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
52
|
+
s.specification_version = 3
|
53
|
+
|
54
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
55
|
+
s.add_runtime_dependency(%q<annotated_models>, [">= 0"])
|
56
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
57
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
58
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
59
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
60
|
+
s.add_development_dependency(%q<fakefs>, [">= 0"])
|
61
|
+
s.add_development_dependency(%q<activesupport>, [">= 0"])
|
62
|
+
s.add_development_dependency(%q<i18n>, [">= 0"])
|
63
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
64
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
65
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
66
|
+
s.add_development_dependency(%q<fakefs>, [">= 0"])
|
67
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
68
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
69
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
70
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
71
|
+
s.add_development_dependency(%q<fakefs>, [">= 0"])
|
72
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
73
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 0"])
|
74
|
+
s.add_runtime_dependency(%q<i18n>, [">= 0"])
|
75
|
+
else
|
76
|
+
s.add_dependency(%q<annotated_models>, [">= 0"])
|
77
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
78
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
79
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
80
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
81
|
+
s.add_dependency(%q<fakefs>, [">= 0"])
|
82
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
83
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
84
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
85
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
86
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
87
|
+
s.add_dependency(%q<fakefs>, [">= 0"])
|
88
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
89
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
90
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
91
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
92
|
+
s.add_dependency(%q<fakefs>, [">= 0"])
|
93
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
94
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
95
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
96
|
+
end
|
97
|
+
else
|
98
|
+
s.add_dependency(%q<annotated_models>, [">= 0"])
|
99
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
100
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
101
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
102
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
103
|
+
s.add_dependency(%q<fakefs>, [">= 0"])
|
104
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
105
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
106
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
107
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
108
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
109
|
+
s.add_dependency(%q<fakefs>, [">= 0"])
|
110
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
111
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
112
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
113
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
114
|
+
s.add_dependency(%q<fakefs>, [">= 0"])
|
115
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
116
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
117
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
data/bin/annotate
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'optparse'
|
4
|
+
require 'annotate'
|
5
|
+
|
6
|
+
task = :annotate_models
|
7
|
+
|
8
|
+
OptionParser.new do |opts|
|
9
|
+
opts.banner = "Usage: annotate [options] [model_file]*"
|
10
|
+
|
11
|
+
opts.on('-d', '--delete',
|
12
|
+
"Remove annotations from all model files") do
|
13
|
+
task = :remove_annotation
|
14
|
+
end
|
15
|
+
|
16
|
+
opts.on('-p', '--position [before|after]', ['before', 'after'],
|
17
|
+
"Place the annotations at the top (before) or the bottom (after) of the model file") do |p|
|
18
|
+
ENV['position'] = p
|
19
|
+
end
|
20
|
+
|
21
|
+
opts.on('-r', '--routes',
|
22
|
+
"Annotate routes.rb with the output of 'rake routes'") do
|
23
|
+
task = :annotate_routes
|
24
|
+
end
|
25
|
+
|
26
|
+
opts.on('-v', '--version',
|
27
|
+
"Show the current version of this gem") do
|
28
|
+
puts "annotate v#{Annotate.version}"; exit
|
29
|
+
end
|
30
|
+
|
31
|
+
opts.on('-m', '--show-migration',
|
32
|
+
"Include the migration version number in the annotation") do
|
33
|
+
ENV['include_version'] = "yes"
|
34
|
+
end
|
35
|
+
|
36
|
+
opts.on('-i', '--show-indexes',
|
37
|
+
"List the table's database indexes in the annotation") do
|
38
|
+
ENV['show_indexes'] = "yes"
|
39
|
+
end
|
40
|
+
|
41
|
+
opts.on('-s', '--simple-indexes',
|
42
|
+
"Concat the column's related indexes in the annotation") do
|
43
|
+
ENV['simple_indexes'] = "yes"
|
44
|
+
end
|
45
|
+
|
46
|
+
opts.on('--model-dir dir',
|
47
|
+
"Annotate model files stored in dir rather than app/models") do |dir|
|
48
|
+
ENV['model_dir'] = dir
|
49
|
+
end
|
50
|
+
|
51
|
+
opts.on('-R', '--require path',
|
52
|
+
"Additional files to require before loading models") do |path|
|
53
|
+
if ENV['require']
|
54
|
+
ENV['require'] = ENV['require'] + ",#{path}"
|
55
|
+
else
|
56
|
+
ENV['require'] = path
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
opts.on('-e', '--exclude [tests,fixtures]', Array, "Do not annotate fixtures, test files, or both") do |exclusions|
|
61
|
+
exclusions.each { |exclusion| ENV["exclude_#{exclusion}"] = "yes" }
|
62
|
+
end
|
63
|
+
|
64
|
+
opts.on('-f', '--format [bare|rdoc]', ['bare', 'rdoc'], 'rdoc: render Schema Infomation as RDoc') do |fmt|
|
65
|
+
ENV['format_#{fmt}'] = 'yes'
|
66
|
+
end
|
67
|
+
|
68
|
+
end.parse!
|
69
|
+
|
70
|
+
if Annotate.load_tasks
|
71
|
+
Rake::Task[task].invoke
|
72
|
+
else
|
73
|
+
STDERR.puts "Can't find Rakefile. Are we in a Rails folder?"
|
74
|
+
end
|