sc-docs 0.0.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/.gitignore +4 -0
- data/.gitmodules +3 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +48 -0
- data/LICENSE +21 -0
- data/README.md +59 -0
- data/bin/sc-docs +5 -0
- data/lib/sc_docs.rb +3 -0
- data/lib/sc_docs/cli.rb +54 -0
- data/lib/sc_docs/docs/Buildfile +8 -0
- data/lib/sc_docs/docs/README +8 -0
- data/lib/sc_docs/docs/apps/docs/Buildfile +15 -0
- data/lib/sc_docs/docs/apps/docs/controllers/classes.js +27 -0
- data/lib/sc_docs/docs/apps/docs/controllers/search_controller.js +62 -0
- data/lib/sc_docs/docs/apps/docs/controllers/selected_class.js +143 -0
- data/lib/sc_docs/docs/apps/docs/core.js +148 -0
- data/lib/sc_docs/docs/apps/docs/main.js +41 -0
- data/lib/sc_docs/docs/apps/docs/models/class.js +63 -0
- data/lib/sc_docs/docs/apps/docs/models/entity.js +29 -0
- data/lib/sc_docs/docs/apps/docs/models/method.js +79 -0
- data/lib/sc_docs/docs/apps/docs/models/property.js +48 -0
- data/lib/sc_docs/docs/apps/docs/resources/images/method_icon.png +0 -0
- data/lib/sc_docs/docs/apps/docs/resources/images/property_icon.png +0 -0
- data/lib/sc_docs/docs/apps/docs/resources/loading.rhtml +9 -0
- data/lib/sc_docs/docs/apps/docs/resources/main_page.css +156 -0
- data/lib/sc_docs/docs/apps/docs/resources/main_page.js +91 -0
- data/lib/sc_docs/docs/apps/docs/resources/templates/details.handlebars +81 -0
- data/lib/sc_docs/docs/apps/docs/resources/templates/extensions/signature.js +0 -0
- data/lib/sc_docs/docs/apps/docs/system/jquery_ui.js +62 -0
- data/lib/sc_docs/docs/apps/docs/system/showdown.js +1297 -0
- data/lib/sc_docs/docs/apps/docs/theme.js +29 -0
- data/lib/sc_docs/docs/apps/docs/views/detail_list.js +24 -0
- data/lib/sc_docs/docs/apps/docs/views/master_list.js +35 -0
- data/lib/sc_docs/docs/apps/docs/views/methods_collection.js +80 -0
- data/lib/sc_docs/docs/apps/docs/views/properties_collection.js +9 -0
- data/lib/sc_docs/generator.rb +145 -0
- data/lib/sc_docs/server.rb +21 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/allclasses.tmpl +31 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/allfiles.tmpl +66 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/class.tmpl +437 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/index.tmpl +52 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/css/api.css +619 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/img/apidocs.jpg +0 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/img/apidocs.png +0 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/img/clearinput.png +0 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/img/cross.png +0 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/img/ddiagonal.png +0 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/img/diagonal.png +0 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/img/docbullet.jpg +0 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/img/docbullet.png +0 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/img/glow.png +0 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/img/logo.png +0 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/img/pixels.png +0 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/img/search.png +0 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/js/api.js +134 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/js/jquery-bbq.js +18 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/js/lib/jquery-1.5.1.min.js +16 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/js/lib/modernizr-1.7.min.js +2 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/js/plugin.js +1 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/output/js/script.js +5 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/publish.js +200 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/static/default.css +300 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/static/header.html +19 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/static/index.html +19 -0
- data/lib/sc_docs/templates/docs.sproutcore.com/symbol.tmpl +35 -0
- data/lib/sc_docs/templates/sc_fixture/publish.js +632 -0
- data/lib/sc_docs/version.rb +4 -0
- data/sc_docs.gemspec +27 -0
- data/vendor/jsdoc/README.txt +109 -0
- data/vendor/jsdoc/app/frame.js +33 -0
- data/vendor/jsdoc/app/frame/Chain.js +102 -0
- data/vendor/jsdoc/app/frame/Dumper.js +144 -0
- data/vendor/jsdoc/app/frame/Hash.js +84 -0
- data/vendor/jsdoc/app/frame/Link.js +173 -0
- data/vendor/jsdoc/app/frame/Namespace.js +10 -0
- data/vendor/jsdoc/app/frame/Opt.js +134 -0
- data/vendor/jsdoc/app/frame/Reflection.js +26 -0
- data/vendor/jsdoc/app/frame/String.js +93 -0
- data/vendor/jsdoc/app/frame/Testrun.js +129 -0
- data/vendor/jsdoc/app/handlers/FOODOC.js +26 -0
- data/vendor/jsdoc/app/handlers/XMLDOC.js +26 -0
- data/vendor/jsdoc/app/handlers/XMLDOC/DomReader.js +159 -0
- data/vendor/jsdoc/app/handlers/XMLDOC/XMLDoc.js +16 -0
- data/vendor/jsdoc/app/handlers/XMLDOC/XMLParse.js +292 -0
- data/vendor/jsdoc/app/lib/JSDOC.js +106 -0
- data/vendor/jsdoc/app/lib/JSDOC/DocComment.js +204 -0
- data/vendor/jsdoc/app/lib/JSDOC/DocTag.js +294 -0
- data/vendor/jsdoc/app/lib/JSDOC/JsDoc.js +140 -0
- data/vendor/jsdoc/app/lib/JSDOC/JsPlate.js +109 -0
- data/vendor/jsdoc/app/lib/JSDOC/Lang.js +144 -0
- data/vendor/jsdoc/app/lib/JSDOC/Parser.js +146 -0
- data/vendor/jsdoc/app/lib/JSDOC/PluginManager.js +33 -0
- data/vendor/jsdoc/app/lib/JSDOC/Symbol.js +644 -0
- data/vendor/jsdoc/app/lib/JSDOC/SymbolSet.js +243 -0
- data/vendor/jsdoc/app/lib/JSDOC/TextStream.js +41 -0
- data/vendor/jsdoc/app/lib/JSDOC/Token.js +18 -0
- data/vendor/jsdoc/app/lib/JSDOC/TokenReader.js +332 -0
- data/vendor/jsdoc/app/lib/JSDOC/TokenStream.js +133 -0
- data/vendor/jsdoc/app/lib/JSDOC/Util.js +32 -0
- data/vendor/jsdoc/app/lib/JSDOC/Walker.js +507 -0
- data/vendor/jsdoc/app/main.js +111 -0
- data/vendor/jsdoc/app/plugins/commentSrcJson.js +20 -0
- data/vendor/jsdoc/app/plugins/frameworkPrototype.js +16 -0
- data/vendor/jsdoc/app/plugins/functionCall.js +10 -0
- data/vendor/jsdoc/app/plugins/publishSrcHilite.js +62 -0
- data/vendor/jsdoc/app/plugins/symbolLink.js +10 -0
- data/vendor/jsdoc/app/plugins/tagParamConfig.js +31 -0
- data/vendor/jsdoc/app/plugins/tagSynonyms.js +43 -0
- data/vendor/jsdoc/app/run.js +297 -0
- data/vendor/jsdoc/app/t/TestDoc.js +144 -0
- data/vendor/jsdoc/app/t/runner.js +13 -0
- data/vendor/jsdoc/app/test.js +342 -0
- data/vendor/jsdoc/app/test/addon.js +24 -0
- data/vendor/jsdoc/app/test/anon_inner.js +14 -0
- data/vendor/jsdoc/app/test/augments.js +31 -0
- data/vendor/jsdoc/app/test/augments2.js +26 -0
- data/vendor/jsdoc/app/test/borrows.js +46 -0
- data/vendor/jsdoc/app/test/borrows2.js +23 -0
- data/vendor/jsdoc/app/test/config.js +22 -0
- data/vendor/jsdoc/app/test/constructs.js +18 -0
- data/vendor/jsdoc/app/test/encoding.js +10 -0
- data/vendor/jsdoc/app/test/encoding_other.js +12 -0
- data/vendor/jsdoc/app/test/event.js +54 -0
- data/vendor/jsdoc/app/test/exports.js +14 -0
- data/vendor/jsdoc/app/test/functions_anon.js +39 -0
- data/vendor/jsdoc/app/test/functions_nested.js +33 -0
- data/vendor/jsdoc/app/test/global.js +13 -0
- data/vendor/jsdoc/app/test/globals.js +25 -0
- data/vendor/jsdoc/app/test/ignore.js +10 -0
- data/vendor/jsdoc/app/test/inner.js +16 -0
- data/vendor/jsdoc/app/test/jsdoc_test.js +477 -0
- data/vendor/jsdoc/app/test/lend.js +33 -0
- data/vendor/jsdoc/app/test/memberof.js +19 -0
- data/vendor/jsdoc/app/test/memberof2.js +38 -0
- data/vendor/jsdoc/app/test/memberof3.js +33 -0
- data/vendor/jsdoc/app/test/memberof_constructor.js +17 -0
- data/vendor/jsdoc/app/test/module.js +17 -0
- data/vendor/jsdoc/app/test/multi_methods.js +25 -0
- data/vendor/jsdoc/app/test/name.js +19 -0
- data/vendor/jsdoc/app/test/namespace_nested.js +23 -0
- data/vendor/jsdoc/app/test/nocode.js +13 -0
- data/vendor/jsdoc/app/test/oblit_anon.js +20 -0
- data/vendor/jsdoc/app/test/overview.js +20 -0
- data/vendor/jsdoc/app/test/param_inline.js +37 -0
- data/vendor/jsdoc/app/test/params_optional.js +8 -0
- data/vendor/jsdoc/app/test/prototype.js +17 -0
- data/vendor/jsdoc/app/test/prototype_nested.js +9 -0
- data/vendor/jsdoc/app/test/prototype_oblit.js +13 -0
- data/vendor/jsdoc/app/test/prototype_oblit_constructor.js +24 -0
- data/vendor/jsdoc/app/test/public.js +10 -0
- data/vendor/jsdoc/app/test/scripts/code.js +5 -0
- data/vendor/jsdoc/app/test/scripts/notcode.txt +5 -0
- data/vendor/jsdoc/app/test/shared.js +42 -0
- data/vendor/jsdoc/app/test/shared2.js +2 -0
- data/vendor/jsdoc/app/test/shortcuts.js +22 -0
- data/vendor/jsdoc/app/test/static_this.js +13 -0
- data/vendor/jsdoc/app/test/synonyms.js +31 -0
- data/vendor/jsdoc/app/test/tosource.js +23 -0
- data/vendor/jsdoc/app/test/variable_redefine.js +14 -0
- data/vendor/jsdoc/changes.txt +127 -0
- data/vendor/jsdoc/conf/sample.conf +31 -0
- metadata +240 -0
data/.gitignore
ADDED
data/.gitmodules
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
sc-docs (0.0.1)
|
5
|
+
rack
|
6
|
+
thor
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: http://rubygems.org/
|
10
|
+
specs:
|
11
|
+
abstract (1.0.0)
|
12
|
+
chunky_png (1.1.2)
|
13
|
+
compass (0.11.1)
|
14
|
+
chunky_png (~> 1.1)
|
15
|
+
fssm (>= 0.2.7)
|
16
|
+
sass (~> 3.1)
|
17
|
+
daemons (1.1.3)
|
18
|
+
erubis (2.6.6)
|
19
|
+
abstract (>= 1.0.0)
|
20
|
+
eventmachine (0.12.10)
|
21
|
+
extlib (0.9.15)
|
22
|
+
fssm (0.2.7)
|
23
|
+
haml (3.1.1)
|
24
|
+
json_pure (1.4.6)
|
25
|
+
rack (1.2.2)
|
26
|
+
sass (3.1.1)
|
27
|
+
sproutcore (1.6.0.rc.1)
|
28
|
+
chunky_png (~> 1.1.0)
|
29
|
+
compass (~> 0.11.1)
|
30
|
+
erubis (~> 2.6.6)
|
31
|
+
extlib (~> 0.9.15)
|
32
|
+
haml (~> 3.1.1)
|
33
|
+
json_pure (~> 1.4.6)
|
34
|
+
rack (~> 1.2.1)
|
35
|
+
thin (~> 1.2.11)
|
36
|
+
thor (~> 0.14.3)
|
37
|
+
thin (1.2.11)
|
38
|
+
daemons (>= 1.0.9)
|
39
|
+
eventmachine (>= 0.12.6)
|
40
|
+
rack (>= 1.0.0)
|
41
|
+
thor (0.14.6)
|
42
|
+
|
43
|
+
PLATFORMS
|
44
|
+
ruby
|
45
|
+
|
46
|
+
DEPENDENCIES
|
47
|
+
sc-docs!
|
48
|
+
sproutcore (= 1.6.0.rc.1)
|
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Copyright (C) 2011 Apple Inc.
|
2
|
+
Portions Copyright (C) 2011 Strobe Inc.
|
3
|
+
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
5
|
+
of this software and associated documentation files (the "Software"), to deal
|
6
|
+
in the Software without restriction, including without limitation the rights
|
7
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
copies of the Software, and to permit persons to whom the Software is
|
9
|
+
furnished to do so, subject to the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be included in
|
12
|
+
all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
15
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
16
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
17
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
18
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
20
|
+
THE SOFTWARE.
|
21
|
+
|
data/README.md
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
SproutCore Documentation Generator
|
2
|
+
==================================
|
3
|
+
|
4
|
+
A tool to generate documentation for the SproutCore framework and SproutCore projects, using the JSDoc format.
|
5
|
+
|
6
|
+
**Authors**: Majd Taby, Peter Wagenet
|
7
|
+
|
8
|
+
Usage
|
9
|
+
-----
|
10
|
+
|
11
|
+
### Basic
|
12
|
+
|
13
|
+
sc-docs --input_dir INPUT_DIRECTORY_PATH
|
14
|
+
|
15
|
+
This documents the specified directory and then runs a preview sc-server instance.
|
16
|
+
|
17
|
+
### Deploy
|
18
|
+
|
19
|
+
sc-docs --input_dir INPUT_DIRECTORY_PATH --deploy --project PROJECT_NAME \
|
20
|
+
--output_dir = OUTPUT_DIRECTORY_PATH
|
21
|
+
|
22
|
+
The deploy flag runs sc-build and deploys to the specified directory. If no output_dir is specified then it is deployed to `/Library/WebServer/Documents/`.
|
23
|
+
|
24
|
+
### HTML Templates
|
25
|
+
|
26
|
+
sc-docs --input_dir INPUT_DIRECTORY_PATH --template TEMPLATE_PATH --html
|
27
|
+
|
28
|
+
By default sc-docs assumes that you want to generate docs for the SproutCore based Doc Viewer. However, you can also generate standard HTML templates.
|
29
|
+
|
30
|
+
Dependencies
|
31
|
+
------------
|
32
|
+
|
33
|
+
### Gems
|
34
|
+
|
35
|
+
* thor
|
36
|
+
* child_labor
|
37
|
+
* rack
|
38
|
+
* thin *(optional, but recommended)*
|
39
|
+
|
40
|
+
### Other
|
41
|
+
|
42
|
+
* **node.js**: We use a special (much faster) version of jsdoc-toolkit that requires node.js.
|
43
|
+
|
44
|
+
Templates
|
45
|
+
---------
|
46
|
+
|
47
|
+
### sc_fixture
|
48
|
+
|
49
|
+
Generates the docs in JSON format for use within an SC based viewer app.
|
50
|
+
|
51
|
+
### docs.sproutcore.com
|
52
|
+
|
53
|
+
The template used at docs.sproutcore.com. Designed by Matt Grantham and Ryan Mudryk with additional work by Avrohom Katz.
|
54
|
+
|
55
|
+
Credits
|
56
|
+
------
|
57
|
+
|
58
|
+
**jsdoc-toolkit**: Used for the heavy lifting of docs generation
|
59
|
+
|
data/bin/sc-docs
ADDED
data/lib/sc_docs.rb
ADDED
data/lib/sc_docs/cli.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'thor'
|
2
|
+
|
3
|
+
require 'sc_docs/generator'
|
4
|
+
|
5
|
+
module ScDocs
|
6
|
+
class CLI < Thor
|
7
|
+
|
8
|
+
class_option :input_dir, :aliases => ['-i'], :type => :string,
|
9
|
+
:banner => "Directory to generate docs for"
|
10
|
+
class_option :output_dir, :aliases => ['-o'], :type => :string,
|
11
|
+
:banner => "Directory to output docs to"
|
12
|
+
class_option :update, :aliases => ['-u'], :type => :boolean, :default => false,
|
13
|
+
:banner => "If input is a git repo, pull and rebase"
|
14
|
+
class_option :template, :aliases => ['-t'], :type => :string,
|
15
|
+
:banner => "Path to jsdoc template (forces HTML output)"
|
16
|
+
class_option :verbose, :aliases => ['-v'], :type => :boolean, :default => false
|
17
|
+
|
18
|
+
desc "generate", "Generate docs"
|
19
|
+
method_option :project, :aliases => ['-p'], :type => :string,
|
20
|
+
:banner => "SproutCore Project Name"
|
21
|
+
def generate
|
22
|
+
puts "Generating Documentation...\n\n"
|
23
|
+
run_generator
|
24
|
+
end
|
25
|
+
|
26
|
+
desc "preview", "Preview docs output"
|
27
|
+
def preview
|
28
|
+
puts "Building Documentation Preview...\n\n"
|
29
|
+
run_generator(true)
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def run_generator(preview=false)
|
35
|
+
update_repo if options[:update]
|
36
|
+
|
37
|
+
puts options[:template]
|
38
|
+
generator = (options[:template] ? HtmlGenerator : ScGenerator).new(options)
|
39
|
+
preview ? generator.preview : generator.generate
|
40
|
+
end
|
41
|
+
|
42
|
+
def update_repo
|
43
|
+
puts "Updating repository...\n\n" if options[:verbose]
|
44
|
+
|
45
|
+
if File.directory? input_dir and File.directory? "#{input_dir}/.git"
|
46
|
+
Dir.chdir input_dir do
|
47
|
+
run("git fetch", print_output)
|
48
|
+
run("git rebase origin master", print_output)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# ==========================================================================
|
2
|
+
# Project: SproutCore - JavaScript Application Framework
|
3
|
+
# Copyright: ©2008-2011 Apple Inc. All rights reserved.
|
4
|
+
# License: Licensed under MIT license (see license.js)
|
5
|
+
# ==========================================================================
|
6
|
+
|
7
|
+
|
8
|
+
config :all, :required => :sproutcore, :url_prefix => "sc_docs", :load_fixtures => true
|
@@ -0,0 +1,8 @@
|
|
1
|
+
==========================================================================
|
2
|
+
Project: SproutCore - JavaScript Application Framework
|
3
|
+
Copyright: ©2008-2011 Apple Inc. All rights reserved.
|
4
|
+
License: Licensed under MIT license (see license.js)
|
5
|
+
==========================================================================
|
6
|
+
|
7
|
+
TODO: Describe Your Project
|
8
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# ==========================================================================
|
2
|
+
# Project: SproutCore - JavaScript Application Framework
|
3
|
+
# Copyright: ©2008-2011 Apple Inc. All rights reserved.
|
4
|
+
# License: Licensed under MIT license (see license.js)
|
5
|
+
# ==========================================================================
|
6
|
+
|
7
|
+
# This is your Buildfile for your app, Docs. This tells SproutCore
|
8
|
+
# how to build your app. These settings override those in your project
|
9
|
+
# Buildfile, which contains default settings for all apps in your project.
|
10
|
+
#
|
11
|
+
# This line tells SproutCore's CSS preprocessor what class names to target.
|
12
|
+
# Since your app has a theme named 'docs', and it is based on SproutCore's
|
13
|
+
# Ace theme (named 'ace'), it is set to 'ace.docs'.
|
14
|
+
config :docs, :css_theme => 'ace.docs'
|
15
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2008-2011 Apple Inc. All rights reserved.
|
4
|
+
// License: Licensed under MIT license (see license.js)
|
5
|
+
// ==========================================================================
|
6
|
+
/*globals Docs */
|
7
|
+
|
8
|
+
/** @class
|
9
|
+
|
10
|
+
(Document Your Controller Here)
|
11
|
+
|
12
|
+
@extends SC.TreeController
|
13
|
+
*/
|
14
|
+
Docs.classesController = SC.ArrayController.create(
|
15
|
+
/** @scope Docs.classesController.prototype */ {
|
16
|
+
|
17
|
+
_selectionDidChange: function(){
|
18
|
+
|
19
|
+
var content = this.getPath('selection.firstObject');
|
20
|
+
|
21
|
+
if(content) {
|
22
|
+
SC.routes.set('location',content.get('displayName'));
|
23
|
+
}
|
24
|
+
|
25
|
+
}.observes('selection')
|
26
|
+
|
27
|
+
}) ;
|
@@ -0,0 +1,62 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2008-2011 Apple Inc. All rights reserved.
|
4
|
+
// License: Licensed under MIT license (see license.js)
|
5
|
+
// ==========================================================================
|
6
|
+
/*globals SC*/
|
7
|
+
|
8
|
+
/** @class
|
9
|
+
|
10
|
+
Manages the search feature
|
11
|
+
|
12
|
+
@author Majd Taby
|
13
|
+
@extends SC.Object
|
14
|
+
@since SproutCore 1.5
|
15
|
+
*/
|
16
|
+
Docs.searchController = SC.Object.create({
|
17
|
+
searchQuery: '',
|
18
|
+
|
19
|
+
runQuery: function(sender){
|
20
|
+
this._runSearch(sender.get('value'));
|
21
|
+
},
|
22
|
+
|
23
|
+
queryDidChange: function(){
|
24
|
+
var query = this.get('searchQuery');
|
25
|
+
if (!query) {
|
26
|
+
this._clearSearch();
|
27
|
+
}
|
28
|
+
|
29
|
+
this._runSearch(query);
|
30
|
+
|
31
|
+
}.observes('searchQuery'),
|
32
|
+
|
33
|
+
_clearSearch: function(){
|
34
|
+
Docs.classesController.set('content',Docs.allClassesRecordArray);
|
35
|
+
},
|
36
|
+
|
37
|
+
_runSearch: function(query){
|
38
|
+
|
39
|
+
var matches = this._findMatchesForQuery(query);
|
40
|
+
|
41
|
+
if (matches) {
|
42
|
+
Docs.classesController.set('content',matches);
|
43
|
+
}
|
44
|
+
},
|
45
|
+
|
46
|
+
_findMatchesForQuery: function(query) {
|
47
|
+
var indexHash = Docs.get('indexHash');
|
48
|
+
var classMatches = [];
|
49
|
+
var symbolMatches = null;
|
50
|
+
|
51
|
+
// Go through every symbol, try to match the name of the class first
|
52
|
+
for(var name in indexHash){
|
53
|
+
|
54
|
+
if (name.indexOf(query) !== -1) {
|
55
|
+
var storeObject = Docs.store.materializeRecord(indexHash[name]);
|
56
|
+
classMatches.push(storeObject);
|
57
|
+
}
|
58
|
+
};
|
59
|
+
|
60
|
+
return classMatches;
|
61
|
+
}
|
62
|
+
});
|
@@ -0,0 +1,143 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2008-2011 Apple Inc. All rights reserved.
|
4
|
+
// License: Licensed under MIT license (see license.js)
|
5
|
+
// ==========================================================================
|
6
|
+
/*globals Docs */
|
7
|
+
|
8
|
+
sc_require('system/jquery_ui');
|
9
|
+
|
10
|
+
/** @class
|
11
|
+
|
12
|
+
(Document Your Controller Here)
|
13
|
+
|
14
|
+
@extends SC.ObjectController
|
15
|
+
*/
|
16
|
+
Docs.selectedClassController = SC.ObjectController.create(
|
17
|
+
/** @scope Docs.selectedClassController.prototype */ {
|
18
|
+
|
19
|
+
contentBinding: SC.Binding.single('Docs.classesController.selection'),
|
20
|
+
nameBinding: SC.Binding.oneWay('.content.displayName'),
|
21
|
+
|
22
|
+
symbolSelection: null,
|
23
|
+
symbols: [],
|
24
|
+
properties: [],
|
25
|
+
methods: [],
|
26
|
+
|
27
|
+
_contentDidChange: function(){
|
28
|
+
var content = this.get('content');
|
29
|
+
if (!content) {return;}
|
30
|
+
|
31
|
+
var that = this;
|
32
|
+
// Give the browser a chance to render, we can wait
|
33
|
+
// for the next run loop
|
34
|
+
//that.invokeLater(function(){
|
35
|
+
|
36
|
+
var methods = content.get('methods').toArray().sortProperty('name');
|
37
|
+
var properties = content.get('properties').toArray().sortProperty('name');
|
38
|
+
|
39
|
+
that.set('symbols',properties.concat(methods));
|
40
|
+
|
41
|
+
that.set('properties',properties);
|
42
|
+
that.set('methods',methods);
|
43
|
+
|
44
|
+
that.invokeLater(function(){
|
45
|
+
that._updateDataTypeButtons();
|
46
|
+
});
|
47
|
+
//});
|
48
|
+
|
49
|
+
|
50
|
+
}.observes('content'),
|
51
|
+
|
52
|
+
_updateLocation: function(symbol) {
|
53
|
+
|
54
|
+
var location = SC.routes.get('location');
|
55
|
+
var prefix = "/";
|
56
|
+
if(location) {
|
57
|
+
prefix = location.split('/')[0]+'/';
|
58
|
+
}
|
59
|
+
SC.routes.set('location',prefix+symbol.get('name'));
|
60
|
+
|
61
|
+
},
|
62
|
+
|
63
|
+
_scrollToSymbol: function($symbol){
|
64
|
+
var container = SC.$('.class-detail');
|
65
|
+
var position = this._positionInContainer($symbol[0],container[0]);
|
66
|
+
|
67
|
+
container.stop();
|
68
|
+
container.animate({scrollTop: position.top}, 250,'swing');
|
69
|
+
$symbol.children('.header').effect("highlight", {}, 1000);
|
70
|
+
},
|
71
|
+
|
72
|
+
_selectionDidChange: function(){
|
73
|
+
var symbol = this.getPath('symbolSelection.firstObject');
|
74
|
+
if (!symbol) { return; }
|
75
|
+
|
76
|
+
var that = this;
|
77
|
+
this.invokeLater(function(){
|
78
|
+
that._updateLocation(symbol);
|
79
|
+
|
80
|
+
var $symbol = SC.$('div[name="'+symbol.get('name')+'"]');
|
81
|
+
if(!$symbol || !$symbol[0]) { return; }
|
82
|
+
|
83
|
+
that._scrollToSymbol($symbol);
|
84
|
+
});
|
85
|
+
|
86
|
+
}.observes('symbolSelection'),
|
87
|
+
|
88
|
+
_positionInContainer: function(obj,container) {
|
89
|
+
var curtop = 0;
|
90
|
+
var curleft = 0;
|
91
|
+
|
92
|
+
if (obj.offsetParent) {
|
93
|
+
do {
|
94
|
+
if (obj === container) { break; }
|
95
|
+
|
96
|
+
curleft += obj.offsetLeft;
|
97
|
+
curtop += obj.offsetTop;
|
98
|
+
} while (obj = obj.offsetParent);
|
99
|
+
}
|
100
|
+
|
101
|
+
return {left: curleft, top: curtop};
|
102
|
+
},
|
103
|
+
|
104
|
+
_updateDataTypeButtons: function() {
|
105
|
+
|
106
|
+
var that = this;
|
107
|
+
var dataTypes = SC.$('.class-detail .data-type');
|
108
|
+
var curClassName = that.getPath('content.displayName');
|
109
|
+
var symbols = this.get('symbols');
|
110
|
+
|
111
|
+
dataTypes.each(function(index){
|
112
|
+
|
113
|
+
var name = $(this).attr('name');
|
114
|
+
var indexHash = Docs.get('indexHash');
|
115
|
+
var valid = NO;
|
116
|
+
|
117
|
+
// Check if it's a top-level symbol
|
118
|
+
if (indexHash[name] && curClassName !== name) {
|
119
|
+
valid = YES;
|
120
|
+
}
|
121
|
+
// Assume it's a symbol in the current class
|
122
|
+
else if (symbols.findProperty('displayName',name)) {
|
123
|
+
valid = YES;
|
124
|
+
}
|
125
|
+
|
126
|
+
if (valid) {
|
127
|
+
var el = $(this);
|
128
|
+
el.addClass('clickable');
|
129
|
+
|
130
|
+
el.click(function(){
|
131
|
+
var name = el.attr('name');
|
132
|
+
|
133
|
+
if (name.indexOf('.') !== 0) {
|
134
|
+
Docs.routeToClass({'class': name});
|
135
|
+
}
|
136
|
+
else {
|
137
|
+
Docs.routeToSymbol({symbol: name});
|
138
|
+
}
|
139
|
+
});
|
140
|
+
}
|
141
|
+
});
|
142
|
+
}
|
143
|
+
}) ;
|