jsdoc-rails 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +8 -0
- data/Gemfile +5 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +94 -0
- data/Rakefile +29 -0
- data/app/controllers/jsdoc/documentation_controller.rb +48 -0
- data/app/helpers/jsdoc/documentation_helper.rb +50 -0
- data/app/models/jsdoc/borrowed_function.rb +7 -0
- data/app/models/jsdoc/borrowed_property.rb +7 -0
- data/app/models/jsdoc/example.rb +5 -0
- data/app/models/jsdoc/function.rb +21 -0
- data/app/models/jsdoc/param.rb +7 -0
- data/app/models/jsdoc/property.rb +13 -0
- data/app/models/jsdoc/require.rb +5 -0
- data/app/models/jsdoc/return.rb +5 -0
- data/app/models/jsdoc/see.rb +4 -0
- data/app/models/jsdoc/symbol.rb +58 -0
- data/app/models/jsdoc/throw.rb +4 -0
- data/app/views/jsdoc/documentation/_inheritance_tree_branch.html.erb +12 -0
- data/app/views/jsdoc/documentation/_members_table.html.erb +38 -0
- data/app/views/jsdoc/documentation/_param_list.html.erb +11 -0
- data/app/views/jsdoc/documentation/index.html.erb +7 -0
- data/app/views/jsdoc/documentation/source.html.erb +11 -0
- data/app/views/jsdoc/documentation/symbol.html.erb +111 -0
- data/app/views/layouts/jsdoc/_aside_symbol_list.html.erb +12 -0
- data/app/views/layouts/jsdoc/_header.html.erb +1 -0
- data/app/views/layouts/jsdoc/_symbol_tree_branch.html.erb +3 -0
- data/app/views/layouts/jsdoc/documentation.html.erb +44 -0
- data/app/views/layouts/jsdoc/documentation_wrapper.html.erb +2 -0
- data/config/routes.rb +8 -0
- data/jsdoc-rails.gemspec +25 -0
- data/jsdoc-toolkit/README.txt +183 -0
- data/jsdoc-toolkit/app/frame.js +33 -0
- data/jsdoc-toolkit/app/frame/Chain.js +102 -0
- data/jsdoc-toolkit/app/frame/Dumper.js +144 -0
- data/jsdoc-toolkit/app/frame/Hash.js +84 -0
- data/jsdoc-toolkit/app/frame/Link.js +173 -0
- data/jsdoc-toolkit/app/frame/Namespace.js +10 -0
- data/jsdoc-toolkit/app/frame/Opt.js +134 -0
- data/jsdoc-toolkit/app/frame/Reflection.js +26 -0
- data/jsdoc-toolkit/app/frame/String.js +93 -0
- data/jsdoc-toolkit/app/frame/Testrun.js +129 -0
- data/jsdoc-toolkit/app/handlers/FOODOC.js +26 -0
- data/jsdoc-toolkit/app/handlers/XMLDOC.js +26 -0
- data/jsdoc-toolkit/app/handlers/XMLDOC/DomReader.js +159 -0
- data/jsdoc-toolkit/app/handlers/XMLDOC/XMLDoc.js +16 -0
- data/jsdoc-toolkit/app/handlers/XMLDOC/XMLParse.js +292 -0
- data/jsdoc-toolkit/app/lib/JSDOC.js +106 -0
- data/jsdoc-toolkit/app/lib/JSDOC/DocComment.js +204 -0
- data/jsdoc-toolkit/app/lib/JSDOC/DocTag.js +294 -0
- data/jsdoc-toolkit/app/lib/JSDOC/JsDoc.js +140 -0
- data/jsdoc-toolkit/app/lib/JSDOC/JsPlate.js +109 -0
- data/jsdoc-toolkit/app/lib/JSDOC/Lang.js +144 -0
- data/jsdoc-toolkit/app/lib/JSDOC/Parser.js +146 -0
- data/jsdoc-toolkit/app/lib/JSDOC/PluginManager.js +33 -0
- data/jsdoc-toolkit/app/lib/JSDOC/Symbol.js +646 -0
- data/jsdoc-toolkit/app/lib/JSDOC/SymbolSet.js +243 -0
- data/jsdoc-toolkit/app/lib/JSDOC/TextStream.js +41 -0
- data/jsdoc-toolkit/app/lib/JSDOC/Token.js +18 -0
- data/jsdoc-toolkit/app/lib/JSDOC/TokenReader.js +332 -0
- data/jsdoc-toolkit/app/lib/JSDOC/TokenStream.js +133 -0
- data/jsdoc-toolkit/app/lib/JSDOC/Util.js +32 -0
- data/jsdoc-toolkit/app/lib/JSDOC/Walker.js +557 -0
- data/jsdoc-toolkit/app/main.js +111 -0
- data/jsdoc-toolkit/app/plugins/commentSrcJson.js +20 -0
- data/jsdoc-toolkit/app/plugins/frameworkPrototype.js +16 -0
- data/jsdoc-toolkit/app/plugins/functionCall.js +10 -0
- data/jsdoc-toolkit/app/plugins/publishSrcHilite.js +62 -0
- data/jsdoc-toolkit/app/plugins/symbolLink.js +10 -0
- data/jsdoc-toolkit/app/plugins/tagParamConfig.js +31 -0
- data/jsdoc-toolkit/app/plugins/tagSynonyms.js +45 -0
- data/jsdoc-toolkit/app/run.js +348 -0
- data/jsdoc-toolkit/app/t/TestDoc.js +144 -0
- data/jsdoc-toolkit/app/t/runner.js +13 -0
- data/jsdoc-toolkit/app/test.js +342 -0
- data/jsdoc-toolkit/app/test/addon.js +24 -0
- data/jsdoc-toolkit/app/test/anon_inner.js +14 -0
- data/jsdoc-toolkit/app/test/augments.js +31 -0
- data/jsdoc-toolkit/app/test/augments2.js +26 -0
- data/jsdoc-toolkit/app/test/borrows.js +46 -0
- data/jsdoc-toolkit/app/test/borrows2.js +23 -0
- data/jsdoc-toolkit/app/test/config.js +22 -0
- data/jsdoc-toolkit/app/test/constructs.js +18 -0
- data/jsdoc-toolkit/app/test/encoding.js +10 -0
- data/jsdoc-toolkit/app/test/encoding_other.js +12 -0
- data/jsdoc-toolkit/app/test/event.js +54 -0
- data/jsdoc-toolkit/app/test/exports.js +14 -0
- data/jsdoc-toolkit/app/test/functions_anon.js +39 -0
- data/jsdoc-toolkit/app/test/functions_nested.js +33 -0
- data/jsdoc-toolkit/app/test/global.js +13 -0
- data/jsdoc-toolkit/app/test/globals.js +25 -0
- data/jsdoc-toolkit/app/test/ignore.js +10 -0
- data/jsdoc-toolkit/app/test/inner.js +16 -0
- data/jsdoc-toolkit/app/test/jsdoc_test.js +477 -0
- data/jsdoc-toolkit/app/test/lend.js +33 -0
- data/jsdoc-toolkit/app/test/memberof.js +19 -0
- data/jsdoc-toolkit/app/test/memberof2.js +38 -0
- data/jsdoc-toolkit/app/test/memberof3.js +33 -0
- data/jsdoc-toolkit/app/test/memberof_constructor.js +17 -0
- data/jsdoc-toolkit/app/test/module.js +17 -0
- data/jsdoc-toolkit/app/test/multi_methods.js +25 -0
- data/jsdoc-toolkit/app/test/name.js +19 -0
- data/jsdoc-toolkit/app/test/namespace_nested.js +23 -0
- data/jsdoc-toolkit/app/test/nocode.js +13 -0
- data/jsdoc-toolkit/app/test/oblit_anon.js +20 -0
- data/jsdoc-toolkit/app/test/overview.js +20 -0
- data/jsdoc-toolkit/app/test/param_inline.js +37 -0
- data/jsdoc-toolkit/app/test/params_optional.js +8 -0
- data/jsdoc-toolkit/app/test/prototype.js +17 -0
- data/jsdoc-toolkit/app/test/prototype_nested.js +9 -0
- data/jsdoc-toolkit/app/test/prototype_oblit.js +13 -0
- data/jsdoc-toolkit/app/test/prototype_oblit_constructor.js +24 -0
- data/jsdoc-toolkit/app/test/public.js +10 -0
- data/jsdoc-toolkit/app/test/scripts/code.js +5 -0
- data/jsdoc-toolkit/app/test/scripts/notcode.txt +5 -0
- data/jsdoc-toolkit/app/test/shared.js +42 -0
- data/jsdoc-toolkit/app/test/shared2.js +2 -0
- data/jsdoc-toolkit/app/test/shortcuts.js +22 -0
- data/jsdoc-toolkit/app/test/static_this.js +13 -0
- data/jsdoc-toolkit/app/test/synonyms.js +31 -0
- data/jsdoc-toolkit/app/test/tosource.js +23 -0
- data/jsdoc-toolkit/app/test/variable_redefine.js +14 -0
- data/jsdoc-toolkit/changes.txt +124 -0
- data/jsdoc-toolkit/conf/sample.conf +31 -0
- data/jsdoc-toolkit/java/build.xml +36 -0
- data/jsdoc-toolkit/java/build_1.4.xml +36 -0
- data/jsdoc-toolkit/java/classes/js.jar +0 -0
- data/jsdoc-toolkit/java/src/JsDebugRun.java +21 -0
- data/jsdoc-toolkit/java/src/JsRun.java +21 -0
- data/jsdoc-toolkit/jsdebug.jar +0 -0
- data/jsdoc-toolkit/jsrun.jar +0 -0
- data/jsdoc-toolkit/jsrun.sh +52 -0
- data/jsdoc-toolkit/templates/jsdoc-rails/publish.js +202 -0
- data/jsdoc-toolkit/templates/jsdoc-rails/seeds.tmpl +449 -0
- data/jsdoc-toolkit/templates/jsdoc/allclasses.tmpl +17 -0
- data/jsdoc-toolkit/templates/jsdoc/allfiles.tmpl +56 -0
- data/jsdoc-toolkit/templates/jsdoc/class.tmpl +649 -0
- data/jsdoc-toolkit/templates/jsdoc/index.tmpl +39 -0
- data/jsdoc-toolkit/templates/jsdoc/publish.js +201 -0
- data/jsdoc-toolkit/templates/jsdoc/static/default.css +162 -0
- data/jsdoc-toolkit/templates/jsdoc/static/header.html +2 -0
- data/jsdoc-toolkit/templates/jsdoc/static/index.html +19 -0
- data/jsdoc-toolkit/templates/jsdoc/symbol.tmpl +35 -0
- data/lib/generators/jsdoc/jsdoc_generator.rb +71 -0
- data/lib/generators/jsdoc/templates/migrations/jsdoc_create_borrowed_functions_table.rb +19 -0
- data/lib/generators/jsdoc/templates/migrations/jsdoc_create_borrowed_properties_table.rb +19 -0
- data/lib/generators/jsdoc/templates/migrations/jsdoc_create_examples_table.rb +18 -0
- data/lib/generators/jsdoc/templates/migrations/jsdoc_create_functions_table.rb +33 -0
- data/lib/generators/jsdoc/templates/migrations/jsdoc_create_params_table.rb +24 -0
- data/lib/generators/jsdoc/templates/migrations/jsdoc_create_properties_table.rb +37 -0
- data/lib/generators/jsdoc/templates/migrations/jsdoc_create_requires_table.rb +16 -0
- data/lib/generators/jsdoc/templates/migrations/jsdoc_create_returns_table.rb +18 -0
- data/lib/generators/jsdoc/templates/migrations/jsdoc_create_sees_table.rb +18 -0
- data/lib/generators/jsdoc/templates/migrations/jsdoc_create_symbols_table.rb +31 -0
- data/lib/generators/jsdoc/templates/migrations/jsdoc_create_throws_table.rb +18 -0
- data/lib/jsdoc.rb +3 -0
- data/lib/jsdoc/engine.rb +30 -0
- data/lib/jsdoc/railties/tasks.rake +89 -0
- data/lib/jsdoc/version.rb +3 -0
- data/public/images/jsdoc/icons/class.gif +0 -0
- data/public/images/jsdoc/icons/cmp.gif +0 -0
- data/public/images/jsdoc/icons/docs.gif +0 -0
- data/public/images/jsdoc/icons/elbow-end.gif +0 -0
- data/public/images/jsdoc/icons/elbow-minus.gif +0 -0
- data/public/images/jsdoc/icons/elbow-plus.gif +0 -0
- data/public/images/jsdoc/icons/elbow.gif +0 -0
- data/public/images/jsdoc/icons/event.gif +0 -0
- data/public/images/jsdoc/icons/inherited.gif +0 -0
- data/public/images/jsdoc/icons/method.gif +0 -0
- data/public/images/jsdoc/icons/pkg.gif +0 -0
- data/public/images/jsdoc/icons/prop.gif +0 -0
- data/public/images/jsdoc/icons/static.gif +0 -0
- data/public/javascripts/jsdoc/jsdoc.js +52 -0
- data/public/stylesheets/jsdoc/documentation.css +483 -0
- data/test/dummy/.gitignore +4 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +45 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +22 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +26 -0
- data/test/dummy/config/environments/production.rb +49 -0
- data/test/dummy/config/environments/test.rb +35 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +10 -0
- data/test/dummy/config/initializers/jsdoc.rb +5 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +58 -0
- data/test/dummy/db/.gitkeep +0 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +26 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/public/javascripts/application.js +2 -0
- data/test/dummy/public/javascripts/controls.js +965 -0
- data/test/dummy/public/javascripts/dragdrop.js +974 -0
- data/test/dummy/public/javascripts/effects.js +1123 -0
- data/test/dummy/public/javascripts/prototype.js +6001 -0
- data/test/dummy/public/javascripts/rails.js +175 -0
- data/test/dummy/public/stylesheets/.gitkeep +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/integration/navigation_test.rb +7 -0
- data/test/jsdoc_test.rb +7 -0
- data/test/support/integration_case.rb +5 -0
- data/test/test_helper.rb +22 -0
- metadata +297 -0
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'rails/generators/migration'
|
3
|
+
|
4
|
+
class JsdocGenerator < Rails::Generators::Base
|
5
|
+
include Rails::Generators::Migration
|
6
|
+
|
7
|
+
def self.source_root
|
8
|
+
@source_root ||= File.join(File.dirname(__FILE__), 'templates')
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.next_migration_number(dirname)
|
12
|
+
if ActiveRecord::Base.timestamped_migrations
|
13
|
+
if @previous_migration_number
|
14
|
+
@previous_migration_number += 1
|
15
|
+
else
|
16
|
+
@previous_migration_number = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
|
17
|
+
end
|
18
|
+
|
19
|
+
return @previous_migration_number.to_s
|
20
|
+
else
|
21
|
+
return "%.3d" % (current_migration_number(dirname) + 1)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def create_migration_files
|
26
|
+
migration_templates = File.join(File.dirname(__FILE__), 'templates/migrations/')
|
27
|
+
|
28
|
+
Dir.foreach(migration_templates) do |f|
|
29
|
+
next unless f.ends_with?('.rb')
|
30
|
+
|
31
|
+
optional_migration_template "migrations/#{f}", "db/migrate/#{f}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def copy_static_assets
|
36
|
+
assets = ['public/images/jsdoc/', 'public/stylesheets/jsdoc/', 'public/javascripts/jsdoc/'];
|
37
|
+
|
38
|
+
assets.each do |a|
|
39
|
+
asset_dir = File.join(File.dirname(__FILE__), '../../../', a)
|
40
|
+
copy_dir(asset_dir, a)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def copy_dir(src, dst)
|
47
|
+
Dir.foreach(src) do |f|
|
48
|
+
next if %w(. ..).include?(f)
|
49
|
+
src_file = File.join(src, f)
|
50
|
+
dst_file = File.join(dst, f)
|
51
|
+
|
52
|
+
if File.directory?(src_file)
|
53
|
+
copy_dir(src_file, dst_file)
|
54
|
+
else
|
55
|
+
copy_file(src_file, dst_file)
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def optional_migration_template(*args)
|
62
|
+
migration_template(*args)
|
63
|
+
rescue Exception => e
|
64
|
+
if e.message.include?('Another migration is already named')
|
65
|
+
puts "Skipping existing migration: #{args[1]}"
|
66
|
+
return
|
67
|
+
else
|
68
|
+
raise e
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class JsdocCreateBorrowedFunctionsTable < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :jsdoc_borrowed_functions do |t|
|
4
|
+
t.integer :borrowed_to_id
|
5
|
+
t.integer :borrowed_from_id
|
6
|
+
t.integer :function_id
|
7
|
+
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
|
11
|
+
add_index :jsdoc_borrowed_functions, :borrowed_from_id
|
12
|
+
add_index :jsdoc_borrowed_functions, :borrowed_to_id
|
13
|
+
add_index :jsdoc_borrowed_functions, :function_id
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.down
|
17
|
+
drop_table :jsdoc_borrowed_functions
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class JsdocCreateBorrowedPropertiesTable < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :jsdoc_borrowed_properties do |t|
|
4
|
+
t.integer :borrowed_to_id
|
5
|
+
t.integer :borrowed_from_id
|
6
|
+
t.integer :property_id
|
7
|
+
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
|
11
|
+
add_index :jsdoc_borrowed_properties, :borrowed_from_id
|
12
|
+
add_index :jsdoc_borrowed_properties, :borrowed_to_id
|
13
|
+
add_index :jsdoc_borrowed_properties, :property_id
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.down
|
17
|
+
drop_table :jsdoc_borrowed_properties
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class JsdocCreateExamplesTable < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :jsdoc_examples do |t|
|
4
|
+
t.integer :example_for_id
|
5
|
+
t.string :example_for_type
|
6
|
+
t.text :code
|
7
|
+
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
|
11
|
+
add_index :jsdoc_examples, :example_for_id
|
12
|
+
add_index :jsdoc_examples, :example_for_type
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.down
|
16
|
+
drop_table :jsdoc_examples
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
class JsdocCreateFunctionsTable < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :jsdoc_functions do |t|
|
4
|
+
t.string :name
|
5
|
+
t.string :alias
|
6
|
+
t.string :member_of
|
7
|
+
t.integer :symbol_id
|
8
|
+
t.string :function_type
|
9
|
+
t.string :version
|
10
|
+
t.text :description
|
11
|
+
t.string :defined_in
|
12
|
+
t.string :since
|
13
|
+
t.string :author
|
14
|
+
t.boolean :is_private
|
15
|
+
t.boolean :is_inner
|
16
|
+
t.boolean :is_static
|
17
|
+
t.boolean :is_deprecated
|
18
|
+
t.text :deprecated_description
|
19
|
+
|
20
|
+
t.timestamps
|
21
|
+
end
|
22
|
+
|
23
|
+
add_index :jsdoc_functions, :symbol_id
|
24
|
+
add_index :jsdoc_functions, :function_type
|
25
|
+
add_index :jsdoc_functions, :name
|
26
|
+
add_index :jsdoc_functions, :alias
|
27
|
+
add_index :jsdoc_functions, :member_of
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.down
|
31
|
+
drop_table :jsdoc_functions
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class JsdocCreateParamsTable < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :jsdoc_params do |t|
|
4
|
+
t.integer :function_id
|
5
|
+
t.integer :order
|
6
|
+
t.string :name
|
7
|
+
t.string :default
|
8
|
+
t.boolean :is_optional
|
9
|
+
t.string :param_type
|
10
|
+
t.text :description
|
11
|
+
|
12
|
+
t.timestamps
|
13
|
+
end
|
14
|
+
|
15
|
+
add_index :jsdoc_params, :function_id
|
16
|
+
add_index :jsdoc_params, :name
|
17
|
+
add_index :jsdoc_params, :order
|
18
|
+
add_index :jsdoc_params, :param_type
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.down
|
22
|
+
drop_table :jsdoc_params
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
class JsdocCreatePropertiesTable < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :jsdoc_properties do |t|
|
4
|
+
t.string :name
|
5
|
+
t.string :alias
|
6
|
+
t.string :member_of
|
7
|
+
t.integer :symbol_id
|
8
|
+
t.string :property_type
|
9
|
+
t.string :version
|
10
|
+
t.text :description
|
11
|
+
t.string :defined_in
|
12
|
+
t.string :since
|
13
|
+
t.string :author
|
14
|
+
t.string :default
|
15
|
+
t.boolean :is_private
|
16
|
+
t.boolean :is_inner
|
17
|
+
t.boolean :is_static
|
18
|
+
t.boolean :is_constant
|
19
|
+
t.boolean :is_deprecated
|
20
|
+
t.boolean :is_readable
|
21
|
+
t.boolean :is_writable
|
22
|
+
t.text :deprecated_description
|
23
|
+
|
24
|
+
t.timestamps
|
25
|
+
end
|
26
|
+
|
27
|
+
add_index :jsdoc_properties, :symbol_id
|
28
|
+
add_index :jsdoc_properties, :property_type
|
29
|
+
add_index :jsdoc_properties, :name
|
30
|
+
add_index :jsdoc_properties, :alias
|
31
|
+
add_index :jsdoc_properties, :member_of
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.down
|
35
|
+
drop_table :jsdoc_properties
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class JsdocCreateRequiresTable < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :jsdoc_requires do |t|
|
4
|
+
t.integer :function_id
|
5
|
+
t.text :require
|
6
|
+
|
7
|
+
t.timestamps
|
8
|
+
end
|
9
|
+
|
10
|
+
add_index :jsdoc_requires, :function_id
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.down
|
14
|
+
drop_table :jsdoc_requires
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class JsdocCreateReturnsTable < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :jsdoc_returns do |t|
|
4
|
+
t.integer :function_id
|
5
|
+
t.string :return_type
|
6
|
+
t.text :description
|
7
|
+
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
|
11
|
+
add_index :jsdoc_returns, :function_id
|
12
|
+
add_index :jsdoc_returns, :return_type
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.down
|
16
|
+
drop_table :jsdoc_returns
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class JsdocCreateSeesTable < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :jsdoc_sees do |t|
|
4
|
+
t.integer :see_for_id
|
5
|
+
t.string :see_for_type
|
6
|
+
t.text :description
|
7
|
+
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
|
11
|
+
add_index :jsdoc_sees, :see_for_id
|
12
|
+
add_index :jsdoc_sees, :see_for_type
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.down
|
16
|
+
drop_table :jsdoc_sees
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
class JsdocCreateSymbolsTable < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :jsdoc_symbols do |t|
|
4
|
+
t.string :name
|
5
|
+
t.string :alias
|
6
|
+
t.string :member_of
|
7
|
+
t.integer :constructor_id
|
8
|
+
t.string :symbol_type
|
9
|
+
t.string :version
|
10
|
+
t.text :description
|
11
|
+
t.string :defined_in
|
12
|
+
t.string :since
|
13
|
+
t.string :author
|
14
|
+
t.string :extends
|
15
|
+
t.boolean :is_deprecated
|
16
|
+
t.text :deprecated_description
|
17
|
+
|
18
|
+
t.timestamps
|
19
|
+
end
|
20
|
+
|
21
|
+
add_index :jsdoc_symbols, :name
|
22
|
+
add_index :jsdoc_symbols, :alias
|
23
|
+
add_index :jsdoc_symbols, :member_of
|
24
|
+
add_index :jsdoc_symbols, :symbol_type
|
25
|
+
add_index :jsdoc_symbols, :constructor_id
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.down
|
29
|
+
drop_table :jsdoc_symbols
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class JsdocCreateThrowsTable < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :jsdoc_throws do |t|
|
4
|
+
t.integer :function_id
|
5
|
+
t.string :throw_type
|
6
|
+
t.text :description
|
7
|
+
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
|
11
|
+
add_index :jsdoc_throws, :function_id
|
12
|
+
add_index :jsdoc_throws, :throw_type
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.down
|
16
|
+
drop_table :jsdoc_throws
|
17
|
+
end
|
18
|
+
end
|
data/lib/jsdoc.rb
ADDED
data/lib/jsdoc/engine.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'jsdoc'
|
2
|
+
require 'rails'
|
3
|
+
require 'action_controller'
|
4
|
+
|
5
|
+
module Jsdoc
|
6
|
+
def self.table_name_prefix
|
7
|
+
'jsdoc_'
|
8
|
+
end
|
9
|
+
|
10
|
+
class Engine < Rails::Engine
|
11
|
+
@@mount_point = '/documentation'
|
12
|
+
cattr_accessor :mount_point
|
13
|
+
@@source_path = 'jsdoc/source'
|
14
|
+
cattr_accessor :source_path
|
15
|
+
@@no_global = true
|
16
|
+
cattr_accessor :no_global
|
17
|
+
|
18
|
+
# We can add all of the public assets from our engine and make them
|
19
|
+
# available to use. This allows us to use javascripts, images, stylesheets
|
20
|
+
# etc.
|
21
|
+
initializer 'static assets' do |app|
|
22
|
+
app.middleware.use ::ActionDispatch::Static, "#{root}/public"
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
rake_tasks do
|
27
|
+
load 'jsdoc/railties/tasks.rake'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
def confirm(msg)
|
2
|
+
puts msg
|
3
|
+
STDIN.gets.strip == 'yes'
|
4
|
+
end
|
5
|
+
|
6
|
+
def wipe_data
|
7
|
+
msg = " /!\\ WARNING /!\\ THIS OPERATION WILL WIPE OUT EVERYTHING FROM THE JSDOC-RAILS TABLES.\n"
|
8
|
+
msg += " /!\\ WARNING /!\\ To skip this step specify NOWIPE=true when calling this taks.\n"
|
9
|
+
msg += " /!\\ WARNING /!\\ If you're sure you want to continue, please type 'yes'."
|
10
|
+
unless confirm(msg)
|
11
|
+
puts "Data wipe cancelled"
|
12
|
+
return false
|
13
|
+
end
|
14
|
+
|
15
|
+
[Jsdoc::BorrowedFunction, Jsdoc::BorrowedProperty, Jsdoc::Example, Jsdoc::Function, Jsdoc::Param, Jsdoc::Property, Jsdoc::Require, Jsdoc::Return, Jsdoc::See, Jsdoc::Symbol, Jsdoc::Throw].each do |klass|
|
16
|
+
puts "Deleting everything for: #{klass.name}"
|
17
|
+
klass.delete_all
|
18
|
+
end
|
19
|
+
|
20
|
+
return true
|
21
|
+
end
|
22
|
+
|
23
|
+
def output_jsdocs(src, dst)
|
24
|
+
output_dir = File.dirname(dst)
|
25
|
+
output_file = File.basename(dst)
|
26
|
+
|
27
|
+
jsdoc_path = File.join(File.dirname(__FILE__), '../../../jsdoc-toolkit')
|
28
|
+
|
29
|
+
template_path = File.join(jsdoc_path, 'templates', 'jsdoc-rails')
|
30
|
+
|
31
|
+
puts "Reading from: #{ENV['SRC']}"
|
32
|
+
puts "Outputing to: #{File.join(output_dir, output_file)}"
|
33
|
+
system(%Q(cd "#{src.gsub('"', '\\"')}"; java -jar "#{jsdoc_path}/jsrun.jar" "#{jsdoc_path}/app/run.js" -r=100 -a -d="#{output_dir}" -D="outputFile:#{output_file}" -t=#{template_path} -- *))
|
34
|
+
end
|
35
|
+
|
36
|
+
namespace :jsdoc do
|
37
|
+
desc "Write a Ruby script containing all the JSDoc definitions which can be loaded directly into Rails. Specify with SRC=/path/to/javascript/, OUTPUT=db/jsdoc-data.rb"
|
38
|
+
task :output do
|
39
|
+
output = ENV['OUTPUT'] || 'db/jsdoc-data.rb'
|
40
|
+
output = File.join(Dir.pwd, output) unless output[0..0] == '/'
|
41
|
+
src = ENV['SRC']
|
42
|
+
|
43
|
+
if src.blank?
|
44
|
+
puts "You must specify the SRC variable pointing to the location of your javascript code"
|
45
|
+
return 1
|
46
|
+
end
|
47
|
+
|
48
|
+
output_jsdocs(src, output)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
namespace :jsdoc do
|
53
|
+
desc "Load a Ruby script containing JSDoc data, as generated by 'rake jsdoc:output'. Specify with SRC=db/jsdoc-data.rb, NOWIPE=false"
|
54
|
+
task :load => :environment do
|
55
|
+
src = ENV['SRC'] || 'db/jsdoc-data.rb'
|
56
|
+
|
57
|
+
unless ENV['NOWIPE'].present? and ENV['NOWIPE'][0..0].downcase == 't'
|
58
|
+
unless wipe_data
|
59
|
+
puts "Data load cancelled"
|
60
|
+
return false
|
61
|
+
end
|
62
|
+
end
|
63
|
+
load(src)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
namespace :jsdoc do
|
68
|
+
desc "Load all the JSDoc data from your Javascript source. Effectivly the same as running jsdoc:output then jsdoc:load. Specify with SRC=/path/to/javascript/, NOWIPE=false"
|
69
|
+
task :import => :environment do
|
70
|
+
src = ENV['SRC']
|
71
|
+
|
72
|
+
if src.blank?
|
73
|
+
puts "You must specify the SRC variable pointing to the location of your javascript code"
|
74
|
+
return 1
|
75
|
+
end
|
76
|
+
|
77
|
+
unless ENV['NOWIPE'].present? and ENV['NOWIPE'][0..0].downcase == 'f'
|
78
|
+
unless wipe_data
|
79
|
+
puts "Data load cancelled"
|
80
|
+
return false
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
tmpfile = Tempfile.new('jsdoc-rails')
|
85
|
+
output_jsdocs(src, tmpfile.path)
|
86
|
+
load(tmpfile.path)
|
87
|
+
tmpfile.close
|
88
|
+
end
|
89
|
+
end
|