├── VERSION ├── lib ├── bezel.yml └── bezel.rb ├── site ├── assets │ ├── styles │ │ ├── color.css │ │ ├── reset.css │ │ ├── highlight.css │ │ └── layout.css │ ├── images │ │ ├── fade.png │ │ ├── icon.jpg │ │ ├── logo.jpg │ │ ├── ruby.png │ │ ├── uml.png │ │ ├── black.png │ │ ├── fork-me.png │ │ ├── ring_side.jpg │ │ ├── tuff_guy.jpg │ │ └── maria_chao.jpg │ └── scripts │ │ ├── jquery.tabs.js │ │ ├── highlight.js │ │ └── jquery.js └── index.html ├── pkg ├── .gitignore └── bezel.gemspec ├── demo ├── applique │ ├── ae.rb │ └── bezel.rb ├── fixtures │ ├── gems │ │ ├── tryme-1.0 │ │ │ └── lib │ │ │ │ ├── tryme.bezel │ │ │ │ ├── tryme │ │ │ │ └── extra.rb │ │ │ │ └── tryme.rb │ │ └── tryme-1.1 │ │ │ └── lib │ │ │ ├── tryme.bezel │ │ │ ├── tryme │ │ │ └── extra.rb │ │ │ └── tryme.rb │ └── specifications │ │ ├── tryme-1.0.gemspec │ │ └── tryme-1.1.gemspec ├── 02_example.rdoc └── 01_example.rdoc ├── Gemfile ├── .travis.yml ├── .gitignore ├── task ├── qed.watchr └── main.assembly ├── MANIFEST ├── Assembly ├── HISTORY.md ├── indexfile.rb ├── LICENSE.txt ├── .index └── README.md /VERSION: -------------------------------------------------------------------------------- 1 | 0.2.0 2 | -------------------------------------------------------------------------------- /lib/bezel.yml: -------------------------------------------------------------------------------- 1 | ,,/.index -------------------------------------------------------------------------------- /site/assets/styles/color.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pkg/.gitignore: -------------------------------------------------------------------------------- 1 | *.gem 2 | *.gz 3 | -------------------------------------------------------------------------------- /demo/applique/ae.rb: -------------------------------------------------------------------------------- 1 | require 'ae' 2 | -------------------------------------------------------------------------------- /demo/fixtures/gems/tryme-1.0/lib/tryme.bezel: -------------------------------------------------------------------------------- 1 | import 'tryme' 2 | -------------------------------------------------------------------------------- /demo/fixtures/gems/tryme-1.1/lib/tryme.bezel: -------------------------------------------------------------------------------- 1 | import 'tryme' 2 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "http://rubygems.org" 2 | gemspec :path=>'pkg' 3 | -------------------------------------------------------------------------------- /site/assets/styles/reset.css: -------------------------------------------------------------------------------- 1 | body { margin: 0; padding: 0; } 2 | div { margin: 0; padding: 0; } 3 | -------------------------------------------------------------------------------- /site/assets/images/fade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyworks/bezel/master/site/assets/images/fade.png -------------------------------------------------------------------------------- /site/assets/images/icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyworks/bezel/master/site/assets/images/icon.jpg -------------------------------------------------------------------------------- /site/assets/images/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyworks/bezel/master/site/assets/images/logo.jpg -------------------------------------------------------------------------------- /site/assets/images/ruby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyworks/bezel/master/site/assets/images/ruby.png -------------------------------------------------------------------------------- /site/assets/images/uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyworks/bezel/master/site/assets/images/uml.png -------------------------------------------------------------------------------- /site/assets/images/black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyworks/bezel/master/site/assets/images/black.png -------------------------------------------------------------------------------- /site/assets/images/fork-me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyworks/bezel/master/site/assets/images/fork-me.png -------------------------------------------------------------------------------- /site/assets/images/ring_side.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyworks/bezel/master/site/assets/images/ring_side.jpg -------------------------------------------------------------------------------- /site/assets/images/tuff_guy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyworks/bezel/master/site/assets/images/tuff_guy.jpg -------------------------------------------------------------------------------- /site/assets/images/maria_chao.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubyworks/bezel/master/site/assets/images/maria_chao.jpg -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | script: "bundle exec qed" 3 | rvm: 4 | - 1.9.2 5 | - 1.9.3 6 | - rbx-19mode 7 | - jruby-19mode 8 | 9 | -------------------------------------------------------------------------------- /demo/fixtures/gems/tryme-1.0/lib/tryme/extra.rb: -------------------------------------------------------------------------------- 1 | 2 | def self.extra 3 | "Something extra from version #{VERSION}!" 4 | end 5 | 6 | -------------------------------------------------------------------------------- /demo/fixtures/gems/tryme-1.1/lib/tryme/extra.rb: -------------------------------------------------------------------------------- 1 | 2 | def self.extra 3 | "Something extra from version #{VERSION}!" 4 | end 5 | 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .fire/digest 2 | .yardocs 3 | site/docs 4 | log 5 | ri 6 | work/sandbox 7 | site/readme.html 8 | web 9 | DEMO.md 10 | -------------------------------------------------------------------------------- /task/qed.watchr: -------------------------------------------------------------------------------- 1 | watch 'lib/.*\.rb' do |md| 2 | system "qed -t Bezel qed/" 3 | end 4 | 5 | watch 'qed/.*\.rdoc' do |md| 6 | system "qed -t Bezel qed/" 7 | end 8 | 9 | -------------------------------------------------------------------------------- /demo/fixtures/gems/tryme-1.1/lib/tryme.rb: -------------------------------------------------------------------------------- 1 | # TryMe 1.1 2 | 3 | VERSION = "1.1" 4 | 5 | def self.report 6 | "You are using version #{VERSION}!" 7 | end 8 | 9 | require "tryme/extra.rb" 10 | 11 | -------------------------------------------------------------------------------- /demo/fixtures/gems/tryme-1.0/lib/tryme.rb: -------------------------------------------------------------------------------- 1 | # TryMe 1.0 2 | 3 | VERSION = "1.0" 4 | 5 | def self.report 6 | "You are using version #{VERSION}!" 7 | end 8 | 9 | require "tryme/extra" 10 | 11 | 12 | -------------------------------------------------------------------------------- /demo/applique/bezel.rb: -------------------------------------------------------------------------------- 1 | # Use a dummy Gem location for this example. 2 | dummy_gem_home = File.expand_path('../fixtures', File.dirname(__FILE__)) 3 | 4 | ENV['GEM_HOME'] = dummy_gem_home 5 | Gem.path.unshift(dummy_gem_home) 6 | 7 | Gem::Specification.reset 8 | 9 | #p Gem::Specification.all_names 10 | #puts "Gem path added: #{dummy_gem_home}" 11 | 12 | # Require Bezel 13 | require 'bezel' 14 | 15 | -------------------------------------------------------------------------------- /MANIFEST: -------------------------------------------------------------------------------- 1 | #!mast .ruby .yardopts bin demo lib test [A-Z]*.* 2 | .ruby 3 | demo/01_example.rdoc 4 | demo/02_example.rdoc 5 | demo/applique/ae.rb 6 | demo/applique/bezel.rb 7 | demo/fixtures/gems/tryme-1.0/lib/tryme/extra.rb 8 | demo/fixtures/gems/tryme-1.0/lib/tryme.bezel 9 | demo/fixtures/gems/tryme-1.0/lib/tryme.rb 10 | demo/fixtures/gems/tryme-1.1/lib/tryme/extra.rb 11 | demo/fixtures/gems/tryme-1.1/lib/tryme.bezel 12 | demo/fixtures/gems/tryme-1.1/lib/tryme.rb 13 | demo/fixtures/specifications/tryme-1.0.gemspec 14 | demo/fixtures/specifications/tryme-1.1.gemspec 15 | lib/bezel.rb 16 | lib/bezel.yml 17 | HISTORY.rdoc 18 | LICENSE.txt 19 | README.md 20 | DEMO.md 21 | -------------------------------------------------------------------------------- /Assembly: -------------------------------------------------------------------------------- 1 | --- 2 | email: 3 | file: ~ 4 | subject: ~ 5 | mailto: 6 | - ruby-talk@ruby-lang.org 7 | - rubyworks-mailinglist@googlegroups.com 8 | #parts: [readme] 9 | 10 | gem: 11 | gemspec: pkg/bezel.gemspec 12 | active: true 13 | 14 | github: 15 | gh_pages: web 16 | 17 | dnote: 18 | title: Source Notes 19 | labels: ~ 20 | output: log/notes.html 21 | 22 | yard: 23 | active: false 24 | yardopts: true 25 | priority: 2 26 | 27 | qed: 28 | files: demo 29 | 30 | qedoc: 31 | title: Bezel Demonstrations 32 | files: demo 33 | output: DEMO.md 34 | 35 | vclog: 36 | active: false 37 | output: 38 | - log/history.html 39 | - log/changes.html 40 | 41 | -------------------------------------------------------------------------------- /HISTORY.md: -------------------------------------------------------------------------------- 1 | # RELEASE HISTORY 2 | 3 | ## 0.2.0 / 2012-05-23 4 | 5 | New release finally address a number of important issues. 6 | You can think of this release as a "beta" release, in that 7 | it is *almost* suitable for general use. The next release 8 | should provide the final polish for production usage. 9 | 10 | Changes: 11 | 12 | * Add development mode to always use latest version. 13 | * Depend on Finder gem for feature lookup. 14 | * No longer need to use #import for internal #require. 15 | 16 | 17 | ## 0.1.0 / 2010-02-19 18 | 19 | This is an alpha release of Bezel, an alternate load 20 | system for Ruby, just to put it out there and get 21 | some feedback. 22 | 23 | Changes: 24 | 25 | * Happy Birthday! 26 | 27 | -------------------------------------------------------------------------------- /demo/fixtures/specifications/tryme-1.0.gemspec: -------------------------------------------------------------------------------- 1 | # -*- encoding: utf-8 -*- 2 | 3 | Gem::Specification.new do |s| 4 | s.name = %q{tryme} 5 | s.version = "1.0" 6 | 7 | s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= 8 | s.authors = [%q{trans}] 9 | s.date = %q{2012-05-21} 10 | s.description = %q{TryMe is a dummy gem for testing purposes.} 11 | s.email = [%q{trans@transfire@gmail.com}] 12 | s.homepage = %q{http://github.com/rubyworks/bezel} 13 | s.require_paths = [%q{lib}] 14 | s.rubygems_version = %q{1.8.5} 15 | s.summary = %q{Dummy gem for testing.} 16 | 17 | if s.respond_to? :specification_version then 18 | s.specification_version = 3 19 | 20 | if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then 21 | else 22 | end 23 | else 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /demo/fixtures/specifications/tryme-1.1.gemspec: -------------------------------------------------------------------------------- 1 | # -*- encoding: utf-8 -*- 2 | 3 | Gem::Specification.new do |s| 4 | s.name = %q{tryme} 5 | s.version = "1.1" 6 | 7 | s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= 8 | s.authors = [%q{trans}] 9 | s.date = %q{2012-05-22} 10 | s.description = %q{TryMe is a dummy gem for testing purposes.} 11 | s.email = [%q{trans@transfire@gmail.com}] 12 | s.homepage = %q{http://github.com/rubyworks/bezel} 13 | s.require_paths = [%q{lib}] 14 | s.rubygems_version = %q{1.8.5} 15 | s.summary = %q{Dummy gem for testing.} 16 | 17 | if s.respond_to? :specification_version then 18 | s.specification_version = 3 19 | 20 | if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then 21 | else 22 | end 23 | else 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /indexfile.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # encoding: utf-8 3 | 4 | name( 5 | "bezel" 6 | ) 7 | 8 | version( 9 | "0.2.0" 10 | ) 11 | 12 | title( 13 | "Bezel" 14 | ) 15 | 16 | summary( 17 | "Alternate loading system for Ruby allowing version multiplicity." 18 | ) 19 | 20 | description( 21 | "Bezel is a load manager for Ruby which allows " \ 22 | "for version multiplicity." 23 | ) 24 | 25 | requirements( 26 | "finder 0.3~", 27 | "detroit (build)", 28 | "qed (test)", 29 | "ae (test)", 30 | "ansi 1.4.2 (test)" 31 | ) 32 | 33 | resources( 34 | "home" => "http://rubyworks.github.com/bezel", 35 | "code" => "http://github.com/rubyworks/bezel", 36 | "bugs" => "http://github.com/rubyworks/bezel/issues", 37 | "mail" => "http://groups.google.com/groups/rubyworks-mailinglist", 38 | "chat" => "irc://us.chat.freenode.net/rubyworks" 39 | ) 40 | 41 | repositories( 42 | "upstream" => "git://github.com/proutils/bezel.git" 43 | ) 44 | 45 | organizations( 46 | "Rubyworks" 47 | ) 48 | 49 | authors( 50 | "trans " 51 | ) 52 | 53 | copyrights( 54 | "2010 Rubyworks (BSD-2-Clause)" 55 | ) 56 | 57 | created "2010-02-19" 58 | 59 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2010 Thomas Sawyer 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | 23 | 24 | -------------------------------------------------------------------------------- /demo/02_example.rdoc: -------------------------------------------------------------------------------- 1 | = ANSI Example 2 | 3 | require 'bezel' 4 | 5 | ANSI_VERSION = '1.4.2' 6 | 7 | class ColorfulString 8 | X = lib('ansi', ANSI_VERSION) 9 | #include x 10 | 11 | COLORS = [:red, :yellow, :green, :blue, :magenta] 12 | 13 | def initialize(string) 14 | @string = string 15 | reset_colors 16 | end 17 | 18 | def to_s 19 | s = "" 20 | @string.split(//).each do |c| 21 | s << X::ANSI::Code.send(next_color) + c; 22 | end 23 | s << X::ANSI::Code::CLEAR 24 | reset_colors 25 | return s 26 | end 27 | 28 | def next_color 29 | color = @colors.shift 30 | @colors << color 31 | color 32 | end 33 | 34 | def reset_colors 35 | @colors = COLORS.dup 36 | end 37 | end 38 | 39 | Then 40 | 41 | cs = ColorfulString.new("Hello World!") 42 | 43 | #puts cs 44 | 45 | cs.to_s.assert == "\e[31mH\e[33me\e[32ml\e[34ml\e[35mo\e[31m \e[33mW\e[32mo\e[34mr\e[35ml\e[31md\e[33m!\e[0m" 46 | 47 | ANSI 1.2.6+ has been fine-tuned to work with Bezel. So even core extensions 48 | work. 49 | 50 | red = "How about this!".ansi(:red) 51 | 52 | red.assert == "\e[31mHow about this!\e[0m" 53 | 54 | -------------------------------------------------------------------------------- /demo/01_example.rdoc: -------------------------------------------------------------------------------- 1 | = Bezel 2 | 3 | First Bezel must be loaded. This has been done via the applique. 4 | It will also load RubyGems as Bezel currently uses the +Gem.path+ 5 | to locate Ruby libraries. We also use a dummy Gem location for 6 | this example (see +fixtures+). 7 | 8 | Now we can try it out. The dummy gem location houses two libraries 9 | of the same name but different versions. 10 | 11 | module Example1 12 | TryMe = lib('tryme', '1.0') 13 | end 14 | 15 | TryMe has a class method called #report and we should see that 16 | it works as expected. 17 | 18 | Example1::TryMe.report.assert == "You are using version 1.0!" 19 | 20 | It also imports a method called #extra from a seperate file. 21 | 22 | Example1::TryMe.extra.assert == "Something extra from version 1.0!" 23 | 24 | Now we should be able to do the same for TryMe v1.1 without any 25 | issues of interference between the two versions. 26 | 27 | module Example2 28 | TryMe = lib('tryme', '1.1') 29 | end 30 | 31 | Again we should see that the #report method works as expected, but this 32 | time reported form the new version. 33 | 34 | Example2::TryMe.report.assert == "You are using version 1.1!" 35 | 36 | And that it also imports a method called #extra from a seperate file. 37 | 38 | Example2::TryMe.extra.assert == "Something extra from version 1.1!" 39 | 40 | Just to be sure, let try v1.0 again. 41 | 42 | Example1::TryMe.report.assert == "You are using version 1.0!" 43 | Example1::TryMe.extra.assert == "Something extra from version 1.0!" 44 | 45 | That's all folks! 46 | 47 | -------------------------------------------------------------------------------- /.index: -------------------------------------------------------------------------------- 1 | --- 2 | type: ruby 3 | revision: 2013 4 | sources: 5 | - indexfile.rb 6 | - VERSION 7 | authors: 8 | - name: trans 9 | email: transfire@gmail.com 10 | organizations: 11 | - name: Rubyworks 12 | requirements: 13 | - version: 0.3~ 14 | name: finder 15 | - groups: 16 | - build 17 | development: true 18 | name: detroit 19 | - groups: 20 | - test 21 | development: true 22 | name: qed 23 | - groups: 24 | - test 25 | development: true 26 | name: ae 27 | - groups: 28 | - test 29 | version: 1.4.2 30 | development: true 31 | name: ansi 32 | conflicts: [] 33 | alternatives: [] 34 | resources: 35 | - type: home 36 | uri: http://rubyworks.github.com/bezel 37 | label: Homepage 38 | - type: code 39 | uri: http://github.com/rubyworks/bezel 40 | label: Source Code 41 | - type: bugs 42 | uri: http://github.com/rubyworks/bezel/issues 43 | label: Issue Tracker 44 | - type: mail 45 | uri: http://groups.google.com/groups/rubyworks-mailinglist 46 | label: Mailing List 47 | - type: chat 48 | uri: irc://us.chat.freenode.net/rubyworks 49 | label: IRC Channel 50 | repositories: 51 | - name: upstream 52 | scm: git 53 | uri: git://github.com/proutils/bezel.git 54 | categories: [] 55 | load_path: 56 | - lib 57 | copyrights: 58 | - holder: Rubyworks 59 | year: '2010' 60 | license: BSD-2-Clause 61 | name: bezel 62 | title: Bezel 63 | version: 0.2.0 64 | summary: Alternate loading system for Ruby allowing version multiplicity. 65 | description: Bezel is a load manager for Ruby which allows for version multiplicity. 66 | created: '2010-02-19' 67 | date: '2012-12-08' 68 | -------------------------------------------------------------------------------- /task/main.assembly: -------------------------------------------------------------------------------- 1 | --- 2 | email: 3 | service : Email 4 | file : ~ 5 | subject : ~ 6 | mailto : ruby-talk@ruby-lang.org 7 | from : <%= ENV['EMAIL_ACCOUNT'] %> 8 | server : <%= ENV['EMAIL_SERVER'] %> 9 | port : <%= ENV['EMAIL_PORT'] %> 10 | account : <%= ENV['EMAIL_ACCOUNT'] %> 11 | domain : <%= ENV['EMAIL_DOMAIN'] %> 12 | login : <%= ENV['EMAIL_LOGIN'] %> 13 | secure : <%= ENV['EMAIL_SECURE'] %> 14 | active : true 15 | 16 | gemcutter: 17 | service: GemCutter 18 | active: true 19 | 20 | grancher: 21 | service: Grancher 22 | active : true 23 | 24 | gem: 25 | service: Gem 26 | active : true 27 | 28 | syntax: 29 | service : Syntax 30 | loadpath : ~ 31 | exclude : ~ 32 | active : false 33 | 34 | #lemon: 35 | # service : lemon 36 | # tests : ~ 37 | # exclude : ~ 38 | # loadpath : ~ 39 | # requires : ~ 40 | # live : false 41 | # active : false 42 | 43 | ri: 44 | service: RI 45 | include: ~ 46 | exclude: ~ 47 | output : ri 48 | active : false 49 | 50 | rdoc: 51 | service : RDoc 52 | format : newfish 53 | include : [lib, README.md, LICENSE.txt] 54 | exclude : [Version] 55 | main : ~ 56 | extra : ~ 57 | output : site/docs/api 58 | active : true 59 | 60 | qedoc: 61 | service : custom 62 | document : | 63 | system "qedoc -t Bezel -o site/docs/qed qed/" 64 | 65 | dnote: 66 | service : DNote 67 | files : ~ 68 | labels : ~ 69 | output : ~ 70 | format : ~ 71 | active : true 72 | 73 | stats: 74 | service : Stats 75 | title : ~ 76 | loadpath : ~ 77 | exclude : ~ 78 | output : ~ 79 | active : true 80 | 81 | #vclog: 82 | # service : VClog 83 | # format : html # xml, txt 84 | # layout : rel # gnu 85 | # typed : false 86 | # output : ~ 87 | # active : false 88 | 89 | -------------------------------------------------------------------------------- /site/assets/styles/highlight.css: -------------------------------------------------------------------------------- 1 | /* github.com style (c) Vasily Polovnyov */ 2 | 3 | /* NOTE: This has been included in the rdoc.css stylesheet 4 | rather then have it's own file simply b/c I have not 5 | figured out how to utilize my own generator to be able 6 | to copy additional files. 7 | */ 8 | 9 | pre code { 10 | display: block; 11 | color: #000; 12 | background: #f8f8ff; 13 | background: #eee; 14 | -moz-border-radius: 10px; 15 | border-radius: 10px; 16 | } 17 | 18 | code .comment, .template_comment, .diff .header, .javadoc { 19 | color: #998; 20 | font-style: italic 21 | } 22 | 23 | code .keyword, .css .rule .keyword, .winutils, .javascript .title, .lisp .title, .subst { 24 | color: #000; 25 | font-weight: bold 26 | } 27 | 28 | code .number, .hexcolor { 29 | color: #40a070 30 | } 31 | 32 | code .string, .attribute .value, .phpdoc { 33 | color: #d14 34 | } 35 | 36 | code .title, .id { 37 | color: #900; 38 | font-weight: bold 39 | } 40 | 41 | code .javascript .title, .lisp .title, .subst { 42 | font-weight: normal 43 | } 44 | 45 | code .class .title { 46 | color: #458; 47 | font-weight: bold 48 | } 49 | 50 | code .tag, .css .keyword, .html .keyword, .tag .title, .django .tag .keyword { 51 | color: #000080; 52 | font-weight: normal 53 | } 54 | 55 | code .attribute, .variable, .instancevar, .lisp .body { 56 | color: #008080 57 | } 58 | 59 | code .regexp { 60 | color: #009926 61 | } 62 | 63 | code .class { 64 | color: #458; 65 | font-weight: bold 66 | } 67 | 68 | code .symbol, .lisp .keyword { 69 | color: #990073 70 | } 71 | 72 | code .builtin, .built_in, .lisp .title { 73 | color: #0086b3 74 | } 75 | 76 | code .preprocessor, .pi, .doctype, .shebang, .cdata { 77 | color: #999; 78 | font-weight: bold 79 | } 80 | 81 | code .deletion { 82 | background: #fdd 83 | } 84 | 85 | code .addition { 86 | background: #dfd 87 | } 88 | 89 | code .diff .change { 90 | background: #0086b3 91 | } 92 | 93 | code .chunk { 94 | color: #aaa 95 | } 96 | 97 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Bezel 2 | 3 | 4 | ## DESCRIPTION 5 | 6 | The idea of Bezel is to overcome the limitations of using different 7 | versions of the same package in the same Ruby process. 8 | 9 | 10 | ## RESOURCES 11 | 12 | * home: http://proutils.github.com/bezel 13 | * work: http://github.com/proutils/bezel 14 | * mail: http://googlegroups.com/group/rubyworks-mailinglist 15 | * chat: irc://chat.us.freenode.net/rubyworks 16 | 17 | 18 | ## USAGE 19 | 20 | It works like this. Let's say I wrote a library called TomsLib. Now I 21 | want to use TomsLib in my new fancy app, FancyApp. In my FancyApp 22 | namespace I have to create a reference to TomsLib. 23 | 24 | module FancyApp 25 | TomsLib = lib('tomslib', '1.5') 26 | ... 27 | 28 | Now I have access to TomsLib, but it is localized to my application. 29 | If Jane comes along and wants to use a different version of TomsLib 30 | but also utilizes my FancyApp, she could do so: 31 | 32 | module JanesProgram 33 | TomsLib = lib('tomslib', '1.0') 34 | FancyApp = lib('fancyapp') # use newest available 35 | ... 36 | 37 | How does this work? When you call lib(), Bezel looks for the package 38 | in the current Gem paths (and in the future, Roll ledger) then it 39 | reads the primary package file (eg. tomslib.rb) from the package and 40 | evals it into an anonymous module. 41 | 42 | This has a some important effects on how you write your Ruby programs: 43 | 44 | 1. Any reference to core/standard libraries must be referenced via '::' 45 | prefix (eg. ::Enumerable). 46 | 47 | 2. Core extensions are not version isolated. So when possible, avoid them 48 | or depend on highly stable standardized bases such as Ruby Facets 49 | and ActiveSupport. 50 | 51 | 3. Since Bezel is a completely different alternative to Ruby's normal 52 | load system, your program will require Bezel be installed by your 53 | users. No big deal. In other words, list it into your projects dependencies. 54 | 55 | 4. A project's main require file must be the same as the library's name. 56 | 57 | Despite these necessary practices for its use, Bezel is highly advantageous 58 | to the developers and end-users alike in that it puts an *absolute* end to 59 | the dreaded *Dependency Hell*. 60 | 61 | 62 | ## STATUS 63 | 64 | It may not be possible to test Bezel via Travis CI because of the way the tests 65 | change the GEM_HOME. Currently they fail because of this, even though they pass 66 | on local development machine. We'll leave this for now in hopes we will get it 67 | working at some point: 68 | [![Build Status](https://secure.travis-ci.org/rubyworks/bezel.png)](http://travis-ci.org/rubyworks/bezel) 69 | 70 | 71 | ## LICENSE 72 | 73 | Copyright (c) 2009 Thomas Sawyer 74 | 75 | Bezel is distributed under the same terms as Ruby 1.9+, namely the 76 | BSD 2-clause license. 77 | -------------------------------------------------------------------------------- /site/assets/scripts/jquery.tabs.js: -------------------------------------------------------------------------------- 1 | eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(5($){$.1G.g=5(9,2){4(P 9==\'2a\')2=9;2=$.1d({9:(9&&P 9==\'2r\'&&9>0)?--9:0,1c:j,19:j,1g:j,1e:j,Q:\'2d\',1z:j,1D:j,1K:1J,n:j,u:\'g-2e\',10:\'g-R\',N:\'1k\'},2||{});$.c.1l=$.c.C&&P 2f==\'5\';3 1h=5(){1A(0,0)};A 6.D(5(){3 l=6;4(r.7){$(\'>Z:q(0)>T>a\',6).D(5(i){4(6.7==r.7){2.9=i;4($.c.C){3 8=$(r.7);3 I=r.7.J(\'#\',\'\');8.t(\'\');O(5(){8.t(I)},2g)}1h();4($.c.2h)O(1h,2i);A 1J}})}3 g=$(\'>Z:q(0)>T>a\',6);$(\'>\'+2.N,6).2k(\':q(\'+2.9+\')\').U(2.10);$(\'>Z:q(0)>T:q(\'+2.9+\')\',6).U(2.u);4(2.1K){3 S=$(\'>\'+2.N,l);3 14=5(1L){3 18=$.2l(S.F(),5(v){3 h,1j=$(v);4(1L){4($.c.1l){v.y.2n(\'1M\');v.y.d=\'\';v.11=j}h=1j.B({\'1m-d\':\'\'}).d()}f{h=1j.d()}A h}).2o(5(a,b){A b-a});4($.c.1l){S.D(5(){6.11=18[0]+\'1B\';6.y.2p(\'1M\',\'6.y.d = 6.11 ? 6.11 : "1P"\')})}f{S.B({\'1m-d\':18[0]+\'1B\'})}};14();3 H=l.1r;3 1i=l.G;3 12=$(\'#g-1o-1O-16\').F(0)||$(\'<1u t="g-1o-1O-16">M\').B({1N:\'1Q\',1Z:\'1R\',1T:\'1s\'}).1U(m.17).F(0);3 V=12.G;1W(5(){3 L=l.1r;3 15=l.G;3 Y=12.G;4(15>1i||L!=H||Y!=V){14((L>H||Y0){4($.c.C){3 I=6.7.J(\'#\',\'\');8.t(\'\');O(5(){8.t(I)},0)}3 1H=6;3 z=$(\'>\'+2.N+\':23\',l);3 n;4(P 2.n==\'5\')n=5(){2.n.24(8[0],[8[0],z[0]])};3 p={},o={};3 w,s;4(2.19||2.1c){4(2.19){p[\'d\']=\'1b\';o[\'d\']=\'R\'}4(2.1c){p[\'E\']=\'1b\';o[\'E\']=\'R\'}w=s=2.Q}f{4(2.1g){p=$.1d(p,2.1g);w=2.1z||2.Q}f{p[\'E\']=\'1b\';w=1f}4(2.1e){o=$.1d(o,2.1e);s=2.1D||2.Q}f{o[\'E\']=\'R\';s=1f}}z.1w(o,s,5(){$(1H.1I).U(2.u).2b().1n(2.u);8.1n(2.10).1w(p,w,5(){4($.c.C){z[0].y.2m=\'\';z.U(2.10).B({1N:\'\',1p:\'\',d:\'\'})}8.B({d:\'\',1p:\'\'});4(n)n()})})}f{1S(\'1V 13 1X 1Y l.\')}}3 1C=1a.20||m.K&&m.K.1t||m.17.1t||0;3 1E=1a.22||m.K&&m.K.1x||m.17.1x||0;O(5(){1a.1A(1C,1E)},0);6.27()})})};$.1G.29=5(X){A 6.D(5(){3 i=X&&X>0&&X-1||0;3 x=$(\'>Z:q(0)>T>a\',6).q(i);3 7=x[0].7;4($(7).13(\':1s\')){4($.c.C){x.W();4($.k){$.k.1F(7)}r.7=7.J(\'#\',\'\')}f 4($.c.25){3 1v=$(\'<1q 26="\'+7+\'"><1k><28 2c="1y" 2j="h" />\').F(0);1v.1y();x.W();4($.k){$.k.1F(7)}}f{r.7=7.J(\'#\',\'\');4(!$.k){x.W()}}}})}})(2q);',62,152,'||settings|var|if|function|this|hash|toShow|initial|||browser|height||else|tabs|||null|history|container|document|callback|hideAnim|showAnim|eq|location|hideSpeed|id|selectedClass|el|showSpeed|tabToTrigger|style|toHide|return|css|msie|each|opacity|get|offsetHeight|cachedWidth|toShowId|replace|documentElement|currentWidth||tabStruct|setTimeout|typeof|fxSpeed|hide|tabsContents|li|addClass|cachedFontSize|click|tabIndex|currentFontSize|ul|hideClass|minHeight|watchFontSize|is|_setAutoHeight|currentHeight|size|body|heights|fxSlide|window|show|fxFade|extend|fxHide|50|fxShow|_unFocus|cachedHeight|jq|div|msie6|min|removeClass|watch|overflow|form|offsetWidth|hidden|scrollLeft|span|tempForm|animate|scrollTop|submit|fxShowSpeed|scrollTo|px|scrollX|fxHideSpeed|scrollY|setHash|fn|clicked|parentNode|false|fxAutoHeight|reset|behaviour|display|font|1px|block|absolute|alert|visibility|appendTo|There|setInterval|no|such|position|pageXOffset|observe|pageYOffset|visible|apply|safari|action|blur|input|triggerTab|object|siblings|type|normal|selected|XMLHttpRequest|500|opera|100|value|not|map|filter|removeExpression|sort|setExpression|jQuery|number'.split('|'),0,{})) 2 | -------------------------------------------------------------------------------- /site/assets/styles/layout.css: -------------------------------------------------------------------------------- 1 | /* #CSS */ 2 | 3 | /* 4 | 5 | "Each piece is an art piece." 6 | 7 | Sematic Html. 8 | 9 | 10 | Semantic Html 11 | 12 | 13 | Functional CSS. 14 | 15 | title onclick { 16 | // SASS or LESS & JQuery 17 | } 18 | 19 | */ 20 | 21 | /* BASE TAGS */ 22 | 23 | /* layout */ 24 | 25 | body {margin:0; padding:0; position:relative; } 26 | div {margin:0; padding:0;} 27 | h1 {margin:5px 0;} 28 | li {padding:3px 0;} 29 | pre {margin:10px 0;} 30 | pre code {padding:10px 10px;} 31 | img {border:none;} 32 | td {vertical-align: top;} 33 | 34 | /* fonts */ 35 | 36 | html { font-family: helvetica, sans-serif; font-size: 100%; } 37 | body { background: url(../images/ring_side.jpg) top 0px no-repeat #311; } 38 | pre { font-family: monospace; } 39 | td { text-align: left; } 40 | p { text-align: justify; font-size: 100%; font-weight: bold; line-height: 170%; } 41 | li { font-size: 90%; font-weight: bold; line-height: 130%; } 42 | a { text-decoration: none; } 43 | a:hover { text-decoration: underline; } 44 | 45 | /* color */ 46 | 47 | body { color: #FFFFFF; } 48 | h1 { } 49 | a { color: #DD0044; } 50 | pre { color: white; } 51 | 52 | /* USER TAGS */ 53 | 54 | /* header */ 55 | #header { width: 730px; margin: 0 auto; padding: 0; } 56 | #header .title { padding: 0; font-size: 1.3em; } 57 | #header .title h1 { padding: 0; margin: 0 0 0 -5px; text-shadow: 3px 3px #955; font-size: 96px; font-weight: bold; } 58 | #header .title h2 { padding: 0; margin: 20px 0; font-size: 1.4em; text-shadow: 1px 1px #888; } 59 | #header .logo img { padding: 0; margin: 20px 20px 20px -200px; border: 2px solid #ccc; } 60 | 61 | #header .title h1 { color: #EEE; } 62 | #header .title h2 { color: #DDD; } 63 | 64 | #header table td { vertical-align: bottom; } 65 | 66 | /* #main */ 67 | #main { width: 730px; margin: 0 auto; padding: 10px 0; background: url(../images/black.png); border-radius: 16px; } 68 | #main a { font-size: 100%; } 69 | #main a:hover { text-decoration: underline; } 70 | #main h2 { font-size: 2em; font-weight: bold; } 71 | #main h3 { font-style: italic;} 72 | 73 | /* #nav */ 74 | #nav { padding: 10px 20px; text-align: left; margin: 0; } 75 | #nav a { font-family: sans-serif; font-weight: bold; text-decoration: none; font-size: 1.2em; } 76 | #nav a:hover { text-decoration: underline; } 77 | #nav a:active { text-decoration: underline; } 78 | 79 | #nav { background: transparent; } 80 | #nav a { color: white; } 81 | 82 | #description { font-size: 2em; padding: 40px 20px; text-align: justify; font-family: times; } 83 | #description { color: #888; background: transparent; } 84 | 85 | /* readme */ 86 | #readme { background: #ccc; color: #444; margin: 0; padding: 20px; } 87 | #readme { font-family: sans-serif; font-weight: normal; line-height: 160%; } 88 | #readme a { color: #057D14; } 89 | #readme a:hover { } 90 | #readme p { } 91 | #readme h1 { color: #333; } 92 | #readme h2 { border-color: #85FD93; color: #333; font-size: 1.4em; } 93 | #readme h3 { border-color: #85FD93; } 94 | #readme li { padding: 0px 20px; margin: 10px; } 95 | #readme li p { padding: 0px; margin: 0px; } 96 | 97 | /* siderap */ 98 | #siderap { border: 0px solid #cc0000; height: 230px; margin: 0; padding: 20px; } 99 | #siderap { color: white; background: #433; } 100 | #siderap { font-size: 1.3em; } 101 | #siderap img { margin-right: 0; } 102 | #siderap .quote { padding: 20px; } 103 | #siderap p { font-style: italic; margin: 0; padding: 0; } 104 | #siderap .quote { margin-left: 190px; background: #cc0000; } 105 | 106 | #final_word { padding: 40px 20px 10px 20px; text-align: center; font-family: times; font-size: 1.4em; } 107 | 108 | /* #footer */ 109 | #footer { background: black; width: 730px; } 110 | #footer .advert { margin: 30px auto 0 auto; } 111 | #footer .copyright { margin: 5px auto; padding: 10px 10px; width: 720px; } 112 | #footer .copyright { font: bold .8em sans-serif; } 113 | #footer .copyright { color: #555; } 114 | 115 | -------------------------------------------------------------------------------- /pkg/bezel.gemspec: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | 3 | require 'yaml' 4 | 5 | module DotRuby 6 | 7 | # 8 | class GemSpec 9 | 10 | # 11 | DOTRUBY = '{../,}.ruby' unless defined?(DOTRUBY) 12 | 13 | # 14 | MANIFEST = '{../,}manifest{,.txt}' unless defined?(MANIFEST) 15 | 16 | # For which revision of .ruby is this gemspec intended? 17 | REVISION = 0 unless defined?(REVISION) 18 | 19 | # 20 | PATTERNS = { 21 | :bin_files => 'bin/*', 22 | :lib_files => 'lib/{**/}*.rb', 23 | :ext_files => 'ext/{**/}extconf.rb', 24 | :doc_files => '*.{txt,rdoc,md,markdown,tt,textile}', 25 | :test_files => '{test/{**/}*_test.rb,spec/{**/}*_spec.rb}' 26 | } unless defined?(PATTERNS) 27 | 28 | # 29 | def self.instance 30 | new.to_gemspec 31 | end 32 | 33 | attr :metadata 34 | 35 | attr :manifest 36 | 37 | # 38 | def initialize 39 | @metadata = YAML.load_file(Dir.glob(DOTRUBY).first) 40 | @manifest = Dir.glob(MANIFEST, File::FNM_CASEFOLD).first 41 | 42 | if @metadata['revision'].to_i != REVISION 43 | warn "You have the wrong revision. Trying anyway..." 44 | end 45 | end 46 | 47 | # 48 | def scm 49 | @scm ||= \ 50 | case 51 | when File.directory?('.git') 52 | :git 53 | end 54 | end 55 | 56 | # 57 | def files 58 | @files ||= \ 59 | #glob_files[patterns[:files]] 60 | case 61 | when manifest 62 | File.readlines(manifest). 63 | map{ |line| line.strip }. 64 | reject{ |line| line.empty? || line[0,1] == '#' } 65 | when scm == :git 66 | `git ls-files -z`.split("\0") 67 | else 68 | Dir.glob('{**/}{.*,*}') # TODO: be more specific using standard locations ? 69 | end.select{ |path| File.file?(path) } 70 | end 71 | 72 | # 73 | def glob_files(pattern) 74 | Dir.glob(pattern).select { |path| 75 | File.file?(path) && files.include?(path) 76 | } 77 | end 78 | 79 | # 80 | def patterns 81 | PATTERNS 82 | end 83 | 84 | # 85 | def executables 86 | @executables ||= \ 87 | glob_files(patterns[:bin_files]).map do |path| 88 | File.basename(path) 89 | end 90 | end 91 | 92 | def extensions 93 | @extensions ||= \ 94 | glob_files(patterns[:ext_files]).map do |path| 95 | File.basename(path) 96 | end 97 | end 98 | 99 | # 100 | def name 101 | metadata['name'] || metadata['title'].downcase.gsub(/\W+/,'_') 102 | end 103 | 104 | # 105 | def to_gemspec 106 | Gem::Specification.new do |gemspec| 107 | gemspec.name = name 108 | gemspec.version = metadata['version'] 109 | gemspec.summary = metadata['summary'] 110 | gemspec.description = metadata['description'] 111 | 112 | metadata['authors'].each do |author| 113 | gemspec.authors << author['name'] 114 | 115 | if author.has_key?('email') 116 | if gemspec.email 117 | gemspec.email << author['email'] 118 | else 119 | gemspec.email = [author['email']] 120 | end 121 | end 122 | end 123 | 124 | gemspec.licenses = metadata['copyrights'].map{ |c| c['license'] }.compact 125 | 126 | metadata['requirements'].each do |req| 127 | next if req['optional'] 128 | 129 | name = req['name'] 130 | version = req['version'] 131 | groups = req['groups'] || [] 132 | 133 | case version 134 | when /^(.*?)\+$/ 135 | version = ">= #{$1}" 136 | when /^(.*?)\-$/ 137 | version = "< #{$1}" 138 | when /^(.*?)\~$/ 139 | version = "~> #{$1}" 140 | end 141 | 142 | if groups.empty? or groups.include?('runtime') 143 | # populate runtime dependencies 144 | if gemspec.respond_to?(:add_runtime_dependency) 145 | gemspec.add_runtime_dependency(name,*version) 146 | else 147 | gemspec.add_dependency(name,*version) 148 | end 149 | else 150 | # populate development dependencies 151 | if gemspec.respond_to?(:add_development_dependency) 152 | gemspec.add_development_dependency(name,*version) 153 | else 154 | gemspec.add_dependency(name,*version) 155 | end 156 | end 157 | end 158 | 159 | # convert external dependencies into a requirements 160 | if metadata['external_dependencies'] 161 | ##gemspec.requirements = [] unless metadata['external_dependencies'].empty? 162 | metadata['external_dependencies'].each do |req| 163 | gemspec.requirements << req.to_s 164 | end 165 | end 166 | 167 | # determine homepage from resources 168 | homepage = metadata['resources'].find{ |r| r['type'] =~ /^home/ } || 169 | metadata['resources'].find{ |r| r['name'] =~ /^(home|web)/i } 170 | gemspec.homepage = homepage['uri'] if homepage 171 | 172 | gemspec.require_paths = metadata['load_path'] || ['lib'] 173 | gemspec.post_install_message = metadata['install_message'] 174 | 175 | # RubyGems specific metadata 176 | gemspec.files = files 177 | gemspec.extensions = extensions 178 | gemspec.executables = executables 179 | 180 | if Gem::VERSION < '1.7.' 181 | gemspec.default_executable = gemspec.executables.first 182 | end 183 | 184 | gemspec.test_files = glob_files(patterns[:test_files]) 185 | 186 | unless gemspec.files.include?('.document') 187 | gemspec.extra_rdoc_files = glob_files(patterns[:doc_files]) 188 | end 189 | end 190 | end 191 | 192 | end #class GemSpec 193 | 194 | end 195 | 196 | DotRuby::GemSpec.instance 197 | -------------------------------------------------------------------------------- /lib/bezel.rb: -------------------------------------------------------------------------------- 1 | # The idea of Bezel is to overcome the limitations of using 2 | # different versions of the same package in the same Ruby 3 | # proccess. 4 | # 5 | # It works like this. Let's say I wrote a library called TomsLib. 6 | # Now I want to use TomsLib in my new fancy app, FancyApp. In my 7 | # FancyApp namespace I have to create a reference to TomsLib. 8 | # 9 | # module FancyApp 10 | # TomsLib = lib('tomslib', '1.5') 11 | # ... 12 | # 13 | # Now I have access to TomsLib, but it is localized to my 14 | # application. If Jane comes along and wants to use a different 15 | # version of TomsLib but also utilizes my FancyApp, she 16 | # could do so: 17 | # 18 | # module JanesProgram 19 | # TomsLib = lib('tomslib', '1.0') 20 | # FancyApp = lib('fancyapp') # use newest available 21 | # ... 22 | # 23 | # How does this work? When you call lib(), Bezel looks for the 24 | # package in the current gem paths (and, in the future, Roll ledger) 25 | # then it reads the bezel file (e.g. lib/tomslib.rbz) from the package 26 | # and evals it into an anonymous module. 27 | # 28 | # This has a some important effects on how you write your Ruby programs: 29 | # 30 | # 1. Any reference to core/standard libraries must be referenced via 31 | # toplevel `::` prefix (eg. ::Enumerable). 32 | # 33 | # 2. Core extensions are not version controlled. So avoid them when 34 | # possible, or depend on highly stable standardized bases such as 35 | # Facets and ActiveSupport. 36 | # 37 | # 3. Since Bezel is a completely different alternative to Ruby's normal 38 | # load system, your program will require Bezel be installed by your 39 | # users. 40 | # 41 | # Despite these necessary practices for its use, Bezel is highly advantageous 42 | # to developers and end-users alike in that it puts an end to the dreaded 43 | # Dependency Hell. 44 | # 45 | # TODO: Consider how best to support alternate loadpaths beyond 'lib/'. 46 | 47 | class Bezel < Module 48 | require 'finder' 49 | 50 | # Cache of loaded modules. This speeds things 51 | # up if two libraries load the same third library. 52 | TABLE = Hash.new #{|h,k|h[k]={}} 53 | 54 | # Script cache. 55 | SCRIPT = {} 56 | 57 | # Load stack keeps track of what modules are in the process 58 | # of being loaded. 59 | STACK = [] 60 | 61 | # When in development mode, Bezel uses the latest and greatest 62 | # available version regardless of version settings. 63 | def self.development=(boolean) 64 | @development = !!boolean 65 | end 66 | 67 | # 68 | def self.development? 69 | @development 70 | end 71 | 72 | # Load library into a module namespace. 73 | def self.lib(name, version=nil) 74 | version = nil if development? 75 | 76 | ##path = find(name, version) 77 | ##raise LoadError, "#{name}-#{version} not found" unless path 78 | ## location of main requirement file 79 | ## TODO: should we require a dedicated bezel file instead? e.g. `*.rbz`. 80 | #main = File.join(path, 'lib', name + '.rb') #.rbz #TODO: LOADPATH 81 | 82 | main = Find.feature(name, :from=>name, :version=>version, :absolute=>true).first 83 | 84 | ## check cache 85 | return TABLE[main] if TABLE.key?(main) 86 | 87 | ## load error if no bezel file 88 | raise LoadError, "#{name}-#{version} has no bezel!" unless main && File.exist?(main) 89 | 90 | ## read in bezel file 91 | #script = File.read(main) 92 | 93 | ## create new Bezel module for file 94 | mod = new(name, version) #, main) 95 | 96 | ## put module on STACK 97 | STACK.push mod 98 | 99 | ## evaluate script in the context of module 100 | #mod.module_eval(script, main, 0) # r = 101 | mod.__load_feature__(main) 102 | 103 | ## pop module off STACK 104 | STACK.pop 105 | 106 | ## add module to cache, and return module 107 | TABLE[main] = mod 108 | end 109 | 110 | # 111 | def self.require(path) 112 | if current = STACK.last 113 | begin 114 | current.__load_feature__(path) ? true : false 115 | rescue LoadError 116 | require_without_bezel(path) 117 | end 118 | else 119 | require_without_bezel(path) 120 | end 121 | end 122 | 123 | # 124 | #def self.main(name, version=nil) 125 | # path = find(name, version) 126 | # File.join(path, 'lib', name + '.rb') 127 | #end 128 | 129 | # Construct new Bezel module. 130 | def initialize(name, version) #, path) 131 | @__name__ = name 132 | @__version__ = version 133 | #@__path__ = path 134 | @__features__ = [] 135 | super() 136 | end 137 | 138 | # Name of library. 139 | def __name__ 140 | @__name__ 141 | end 142 | 143 | # Version of library. 144 | def __version__ 145 | @__version__ 146 | end 147 | 148 | # Path to library. 149 | #def __path__ 150 | # @__path__ 151 | #end 152 | 153 | # 154 | def __features__ 155 | @__features__ 156 | end 157 | 158 | # 159 | def __load_feature__(path) 160 | if path =~ /^[\.\/]/ # if absolute path 161 | file = File.expand_path(path) 162 | else 163 | file = Find.feature(path, :from=>__name__, :version=>__version__, :absolute=>true).first 164 | end 165 | 166 | raise LoadError, "no such file to load -- #{file}" unless file 167 | 168 | if __features__.include?(file) 169 | return false 170 | else 171 | __features__ << file 172 | script = File.read(file) #(SCRIPT[file] ||= File.read(file)) 173 | module_eval(script, file, 0) 174 | end 175 | 176 | return file 177 | end 178 | 179 | end 180 | 181 | module Kernel 182 | # TODO require_relative 183 | 184 | class << self 185 | # Alias original require. 186 | alias require_without_bezel require 187 | 188 | # Override require to try bezel first. 189 | def require(fname) 190 | Bezel.require(fname) 191 | end 192 | end 193 | 194 | # Alias original require. 195 | alias require_without_bezel require 196 | 197 | # Override require to try bezel first. 198 | def require(fname) 199 | Bezel.require(fname) 200 | end 201 | 202 | # Retuns a new Bezel Module. 203 | def lib(name, version=nil) 204 | Bezel.lib(name, version) 205 | end 206 | end 207 | 208 | -------------------------------------------------------------------------------- /site/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Bezel 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 36 | 37 | 38 | 39 | 42 | 43 | 44 | 45 | 46 | 58 | 59 |
60 | 61 | 73 | 74 |
75 | Bezel overcomes the limitations of using different versions of the same 76 | library in the same Ruby process. 77 |
78 | 79 | 135 | 136 |
137 |
138 | 139 | Logo 140 | 141 |
142 |

I like Bezel, cuz...

143 |

Bezel is Cool, 144 | Bezel is Hip, 145 | Bezel is Pimp!


146 | ‐ DJ Bezel 147 |
148 |
149 | 150 | 159 | 160 | 161 | 171 | 172 |
173 | 174 |
175 |
177 |
178 | 179 |
180 |
181 | Where the UML Cats Drink! 182 |
183 | 184 | 205 | 206 |
207 | 208 |
209 | 210 |
211 | 212 |
213 | 214 |
215 | 216 | 217 | 218 |
219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | -------------------------------------------------------------------------------- /site/assets/scripts/highlight.js: -------------------------------------------------------------------------------- 1 | var hljs=new function(){var p={};var a={};function n(c){return c.replace(/&/gm,"&").replace(//gm,">")}function k(s,r){if(!s){return false}for(var c=0;c'+n(N[0])+""}else{Q+=n(N[0])}T=S.lR.lastIndex;N=S.lR.exec(P)}Q+=n(P.substr(T,P.length-T));return Q}function M(r,O){if(O.subLanguage&&a[O.subLanguage]){var N=g(O.subLanguage,r);u+=N.keyword_count;C+=N.r;return N.value}else{return G(r,O)}}function J(O,r){var N=O.nM?"":'';if(O.rB){c+=N;O.buffer=""}else{if(O.eB){c+=n(r)+N;O.buffer=""}else{c+=N;O.buffer=r}}D[D.length]=O}function F(R,N,S){var T=D[D.length-1];if(S){c+=M(T.buffer+R,T);return false}var O=A(N,T);if(O){c+=M(T.buffer+R,T);J(O,N);C+=O.r;return O.rB}var r=x(D.length-1,N);if(r){var Q=T.nM?"":"";if(T.rE){c+=M(T.buffer+R,T)+Q}else{if(T.eE){c+=M(T.buffer+R,T)+Q+n(N)}else{c+=M(T.buffer+R+N,T)+Q}}while(r>1){Q=D[D.length-2].nM?"":"";c+=Q;r--;D.length--}D.length--;D[D.length-1].buffer="";if(T.starts){for(var P=0;P1){throw"Illegal"}return{r:C,keyword_count:u,value:c}}catch(H){if(H=="Illegal"){return{r:0,keyword_count:0,value:n(E)}}else{throw H}}}function h(s){var r="";for(var c=0;c"}function B(C){return""}while(z.length||A.length){var w=v().splice(0,1)[0];x+=n(y.substr(s,w.offset-s));s=w.offset;if(w.event=="start"){x+=t(w.node);u.push(w.node)}else{if(w.event=="stop"){var r=u.length;do{r--;var c=u[r];x+=B(c)}while(c!=w.node);u.splice(r,1);while(rD){D=c;var B=t.value;v=E}}}if(B){if(C){B=B.replace(/^(\t+)/gm,function(r,I,H,G){return I.replace(/\t/g,C)})}var x=y.className;if(!x.match(v)){x+=" "+v}var s=d(y);if(s.length){var u=document.createElement("pre");u.innerHTML=B;B=m(s,d(u),F)}var A=document.createElement("div");A.innerHTML='
'+B+"
";var w=y.parentNode.parentNode;w.replaceChild(A.firstChild,y.parentNode)}}function e(s,r,c){var t="m"+(s.cI?"i":"")+(c?"g":"");return new RegExp(r,t)}function j(){for(var r in p){if(!p.hasOwnProperty(r)){continue}var s=p[r];for(var c=0;c|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:["escape"],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:["escape"],r:0};this.BE={cN:"escape",b:"\\\\.",e:"^",nM:true,r:0};this.CLCM={cN:"comment",b:"//",e:"$",r:0};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.CNM={cN:"number",b:this.CNR,e:"^",r:0}}();var initHighlightingOnLoad=hljs.initHighlightingOnLoad;hljs.LANGUAGES.cs={dM:{l:[hljs.UIR],c:["comment","string","number"],k:{"abstract":1,as:1,base:1,bool:1,"break":1,"byte":1,"case":1,"catch":1,"char":1,checked:1,"class":1,"const":1,"continue":1,decimal:1,"default":1,delegate:1,"do":1,"do":1,"double":1,"else":1,"enum":1,event:1,explicit:1,extern:1,"false":1,"finally":1,fixed:1,"float":1,"for":1,foreach:1,"goto":1,"if":1,implicit:1,"in":1,"int":1,"interface":1,internal:1,is:1,lock:1,"long":1,namespace:1,"new":1,"null":1,object:1,operator:1,out:1,override:1,params:1,"private":1,"protected":1,"public":1,readonly:1,ref:1,"return":1,sbyte:1,sealed:1,"short":1,sizeof:1,stackalloc:1,"static":1,string:1,struct:1,"switch":1,"this":1,"throw":1,"true":1,"try":1,"typeof":1,uint:1,ulong:1,unchecked:1,unsafe:1,ushort:1,using:1,virtual:1,"volatile":1,"void":1,"while":1,ascending:1,descending:1,from:1,get:1,group:1,into:1,join:1,let:1,orderby:1,partial:1,select:1,set:1,value:1,"var":1,where:1,yield:1}},m:[{cN:"comment",b:"///",e:"$",rB:true,c:["xmlDocTag"]},{cN:"xmlDocTag",b:"///|",e:"^"},{cN:"xmlDocTag",b:""},{cN:"string",b:'@"',e:'"',c:["quoteQuote"]},{cN:"quoteQuote",b:'""',e:"^"},hljs.CLCM,hljs.CBLCLM,hljs.ASM,hljs.QSM,hljs.BE,hljs.CNM]};hljs.LANGUAGES.cpp=function(){var a={keyword:{"false":1,"int":1,"float":1,"while":1,"private":1,"char":1,"catch":1,"export":1,virtual:1,operator:2,sizeof:2,dynamic_cast:2,typedef:2,const_cast:2,"const":1,struct:1,"for":1,static_cast:2,union:1,namespace:1,unsigned:1,"long":1,"throw":1,"volatile":2,"static":1,"protected":1,bool:1,template:1,mutable:1,"if":1,"public":1,friend:2,"do":1,"return":1,"goto":1,auto:1,"void":2,"enum":1,"else":1,"break":1,"new":1,extern:1,using:1,"true":1,"class":1,asm:1,"case":1,typeid:1,"short":1,reinterpret_cast:2,"default":1,"double":1,register:1,explicit:1,signed:1,typename:1,"try":1,"this":1,"switch":1,"continue":1,wchar_t:1,inline:1,"delete":1},built_in:{std:1,string:1,cin:1,cout:1,cerr:1,clog:1,stringstream:1,istringstream:1,ostringstream:1,auto_ptr:1,deque:1,list:1,queue:1,stack:1,vector:1,map:1,set:1,bitset:1,multiset:1,multimap:1}};return{dM:{l:[hljs.UIR],i:"",c:["stl_container"],l:[hljs.UIR],k:a,r:10}]}}();hljs.LANGUAGES.diff={cI:true,dM:{c:["chunk","header","addition","deletion","change"]},m:[{cN:"chunk",b:"^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$",e:"^",r:10},{cN:"chunk",b:"^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$",e:"^",r:10},{cN:"chunk",b:"^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$",e:"^",r:10},{cN:"header",b:"Index: ",e:"$"},{cN:"header",b:"=====",e:"=====$"},{cN:"header",b:"^\\-\\-\\-",e:"$"},{cN:"header",b:"^\\*{3} ",e:"$"},{cN:"header",b:"^\\+\\+\\+",e:"$"},{cN:"header",b:"\\*{5}",e:"\\*{5}$"},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]};hljs.XML_COMMENT={cN:"comment",b:""};hljs.XML_ATTR={cN:"attribute",b:"\\s[a-zA-Z\\:-]+=",e:"^",c:["value"]};hljs.XML_VALUE_QUOT={cN:"value",b:'"',e:'"'};hljs.XML_VALUE_APOS={cN:"value",b:"'",e:"'"};hljs.LANGUAGES.xml={dM:{c:["pi","comment","cdata","tag"]},cI:true,m:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},hljs.XML_COMMENT,{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>"},{cN:"tag",b:"",c:["title","tag_internal"],r:1.5},{cN:"title",b:"[A-Za-z:_][A-Za-z0-9\\._:-]+",e:"^",r:0},{cN:"tag_internal",b:"^",eW:true,nM:true,c:["attribute"],r:0,i:"[\\+\\.]"},hljs.XML_ATTR,hljs.XML_VALUE_QUOT,hljs.XML_VALUE_APOS]};hljs.HTML_TAGS={code:1,kbd:1,font:1,noscript:1,style:1,img:1,title:1,menu:1,tt:1,tr:1,param:1,li:1,tfoot:1,th:1,input:1,td:1,dl:1,blockquote:1,fieldset:1,big:1,dd:1,abbr:1,optgroup:1,dt:1,button:1,isindex:1,p:1,small:1,div:1,dir:1,em:1,frame:1,meta:1,sub:1,bdo:1,label:1,acronym:1,sup:1,body:1,xml:1,basefont:1,base:1,br:1,address:1,strong:1,legend:1,ol:1,script:1,caption:1,s:1,col:1,h2:1,h3:1,h1:1,h6:1,h4:1,h5:1,table:1,select:1,noframes:1,span:1,area:1,dfn:1,strike:1,cite:1,thead:1,head:1,option:1,form:1,hr:1,"var":1,link:1,b:1,colgroup:1,ul:1,applet:1,del:1,iframe:1,pre:1,frameset:1,ins:1,tbody:1,html:1,samp:1,map:1,object:1,a:1,xmlns:1,center:1,textarea:1,i:1,q:1,u:1};hljs.HTML_DOCTYPE={cN:"doctype",b:"",r:10};hljs.HTML_ATTR={cN:"attribute",b:"\\s[a-zA-Z\\:-]+=",e:"^",c:["value"]};hljs.HTML_SHORT_ATTR={cN:"attribute",b:" [a-zA-Z]+",e:"^"};hljs.HTML_VALUE={cN:"value",b:"[a-zA-Z0-9]+",e:"^"};hljs.LANGUAGES.html={dM:{c:["tag","comment","doctype","vbscript"]},cI:true,m:[hljs.XML_COMMENT,hljs.HTML_DOCTYPE,{cN:"tag",l:[hljs.IR],k:hljs.HTML_TAGS,b:"",c:["attribute"],i:"[\\+\\.]",starts:"css"},{cN:"tag",l:[hljs.IR],k:hljs.HTML_TAGS,b:"",c:["attribute"],i:"[\\+\\.]",starts:"javascript"},{cN:"tag",l:[hljs.IR],k:hljs.HTML_TAGS,b:"<[A-Za-z/]",e:">",c:["attribute"],i:"[\\+\\.]"},{cN:"css",e:"",rE:true,subLanguage:"css"},{cN:"javascript",e:"<\/script>",rE:true,subLanguage:"javascript"},hljs.HTML_ATTR,hljs.HTML_SHORT_ATTR,hljs.XML_VALUE_QUOT,hljs.XML_VALUE_APOS,hljs.HTML_VALUE,{cN:"vbscript",b:"<%",e:"%>",subLanguage:"vbscript"}]};hljs.LANGUAGES.css={dM:{c:["at_rule","id","class","attr_selector","pseudo","rules","comment"],k:hljs.HTML_TAGS,l:[hljs.IR],i:"="},cI:true,m:[{cN:"at_rule",b:"@",e:"[{;]",eE:true,l:[hljs.IR],k:{"import":1,page:1,media:1,charset:1,"font-face":1},c:["function","string","number","pseudo"]},{cN:"id",b:"\\#[A-Za-z0-9_-]+",e:"^"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",e:"^",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+",e:"^"},{cN:"rules",b:"{",e:"}",c:["rule","comment"],i:"[^\\s]"},{cN:"rule",b:"[A-Z\\_\\.\\-]+\\s*:",e:";",eW:true,l:["[A-Za-z-]+"],k:{"play-during":1,"counter-reset":1,"counter-increment":1,"min-height":1,quotes:1,"border-top":1,pitch:1,font:1,pause:1,"list-style-image":1,"border-width":1,cue:1,"outline-width":1,"border-left":1,elevation:1,richness:1,"speech-rate":1,"border-bottom":1,"border-spacing":1,background:1,"list-style-type":1,"text-align":1,"page-break-inside":1,orphans:1,"page-break-before":1,"text-transform":1,"line-height":1,"padding-left":1,"font-size":1,right:1,"word-spacing":1,"padding-top":1,"outline-style":1,bottom:1,content:1,"border-right-style":1,"padding-right":1,"border-left-style":1,"voice-family":1,"background-color":1,"border-bottom-color":1,"outline-color":1,"unicode-bidi":1,"max-width":1,"font-family":1,"caption-side":1,"border-right-width":1,"pause-before":1,"border-top-style":1,color:1,"border-collapse":1,"border-bottom-width":1,"float":1,height:1,"max-height":1,"margin-right":1,"border-top-width":1,speak:1,"speak-header":1,top:1,"cue-before":1,"min-width":1,width:1,"font-variant":1,"border-top-color":1,"background-position":1,"empty-cells":1,direction:1,"border-right":1,visibility:1,padding:1,"border-style":1,"background-attachment":1,overflow:1,"border-bottom-style":1,cursor:1,margin:1,display:1,"border-left-width":1,"letter-spacing":1,"vertical-align":1,clip:1,"border-color":1,"list-style":1,"padding-bottom":1,"pause-after":1,"speak-numeral":1,"margin-left":1,widows:1,border:1,"font-style":1,"border-left-color":1,"pitch-range":1,"background-repeat":1,"table-layout":1,"margin-bottom":1,"speak-punctuation":1,"font-weight":1,"border-right-color":1,"page-break-after":1,position:1,"white-space":1,"text-indent":1,"background-image":1,volume:1,stress:1,outline:1,clear:1,"z-index":1,"text-decoration":1,"margin-top":1,azimuth:1,"cue-after":1,left:1,"list-style-position":1},c:["value"]},hljs.CBLCLM,{cN:"value",b:"^",eW:true,eE:true,c:["function","number","hexcolor","string"]},{cN:"number",b:hljs.NR,e:"^"},{cN:"hexcolor",b:"\\#[0-9A-F]+",e:"^"},{cN:"function",b:hljs.IR+"\\(",e:"\\)",c:["params"]},{cN:"params",b:"^",eW:true,eE:true,c:["number","string"]},hljs.ASM,hljs.QSM]};hljs.LANGUAGES.ini={cI:true,dM:{c:["comment","title","setting"],i:"[^\\s]"},m:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9_\\[\\]]+[ \\t]*=[ \\t]*",e:"$",c:["value"]},{cN:"value",b:"^",eW:true,c:["string","number"],l:[hljs.IR],k:{on:1,off:1,"true":1,"false":1,yes:1,no:1}},hljs.QSM,hljs.BE,{cN:"number",b:"\\d+",e:"^"}]};hljs.LANGUAGES.javascript={dM:{l:[hljs.UIR],c:["string","comment","number","regexp_container","function"],k:{keyword:{"in":1,"if":1,"for":1,"while":1,"finally":1,"var":1,"new":1,"function":1,"do":1,"return":1,"void":1,"else":1,"break":1,"catch":1,"instanceof":1,"with":1,"throw":1,"case":1,"default":1,"try":1,"this":1,"switch":1,"continue":1,"typeof":1,"delete":1},literal:{"true":1,"false":1,"null":1}}},m:[hljs.CLCM,hljs.CBLCLM,hljs.CNM,hljs.ASM,hljs.QSM,hljs.BE,{cN:"regexp_container",b:"("+hljs.RSR+"|case|return|throw)\\s*",e:"^",nM:true,l:[hljs.IR],k:{"return":1,"throw":1,"case":1},c:["comment","regexp"],r:0},{cN:"regexp",b:"/.*?[^\\\\/]/[gim]*",e:"^"},{cN:"function",b:"\\bfunction\\b",e:"{",l:[hljs.UIR],k:{"function":1},c:["title","params"]},{cN:"title",b:"[A-Za-z$_][0-9A-Za-z$_]*",e:"^"},{cN:"params",b:"\\(",e:"\\)",c:["string","comment"]}]};hljs.LANGUAGES.ruby=function(){var a="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var b=["comment","string","char","class","function","module_name","symbol","number","variable","regexp_container"];var c={keyword:{and:1,"false":1,then:1,defined:1,module:1,"in":1,"return":1,redo:1,"if":1,BEGIN:1,retry:1,end:1,"for":1,"true":1,self:1,when:1,next:1,until:1,"do":1,begin:1,unless:1,END:1,rescue:1,nil:1,"else":1,"break":1,undef:1,not:1,"super":1,"class":1,"case":1,require:1,yield:1,alias:1,"while":1,ensure:1,elsif:1,or:1,def:1},keymethods:{__id__:1,__send__:1,abort:1,abs:1,"all?":1,allocate:1,ancestors:1,"any?":1,arity:1,assoc:1,at:1,at_exit:1,autoload:1,"autoload?":1,"between?":1,binding:1,binmode:1,"block_given?":1,call:1,callcc:1,caller:1,capitalize:1,"capitalize!":1,casecmp:1,"catch":1,ceil:1,center:1,chomp:1,"chomp!":1,chop:1,"chop!":1,chr:1,"class":1,class_eval:1,"class_variable_defined?":1,class_variables:1,clear:1,clone:1,close:1,close_read:1,close_write:1,"closed?":1,coerce:1,collect:1,"collect!":1,compact:1,"compact!":1,concat:1,"const_defined?":1,const_get:1,const_missing:1,const_set:1,constants:1,count:1,crypt:1,"default":1,default_proc:1,"delete":1,"delete!":1,delete_at:1,delete_if:1,detect:1,display:1,div:1,divmod:1,downcase:1,"downcase!":1,downto:1,dump:1,dup:1,each:1,each_byte:1,each_index:1,each_key:1,each_line:1,each_pair:1,each_value:1,each_with_index:1,"empty?":1,entries:1,eof:1,"eof?":1,"eql?":1,"equal?":1,"eval":1,exec:1,exit:1,"exit!":1,extend:1,fail:1,fcntl:1,fetch:1,fileno:1,fill:1,find:1,find_all:1,first:1,flatten:1,"flatten!":1,floor:1,flush:1,for_fd:1,foreach:1,fork:1,format:1,freeze:1,"frozen?":1,fsync:1,getc:1,gets:1,global_variables:1,grep:1,gsub:1,"gsub!":1,"has_key?":1,"has_value?":1,hash:1,hex:1,id:1,"include?":1,included_modules:1,index:1,indexes:1,indices:1,induced_from:1,inject:1,insert:1,inspect:1,instance_eval:1,instance_method:1,instance_methods:1,"instance_of?":1,"instance_variable_defined?":1,instance_variable_get:1,instance_variable_set:1,instance_variables:1,"integer?":1,intern:1,invert:1,ioctl:1,"is_a?":1,isatty:1,"iterator?":1,join:1,"key?":1,keys:1,"kind_of?":1,lambda:1,last:1,length:1,lineno:1,ljust:1,load:1,local_variables:1,loop:1,lstrip:1,"lstrip!":1,map:1,"map!":1,match:1,max:1,"member?":1,merge:1,"merge!":1,method:1,"method_defined?":1,method_missing:1,methods:1,min:1,module_eval:1,modulo:1,name:1,nesting:1,"new":1,next:1,"next!":1,"nil?":1,nitems:1,"nonzero?":1,object_id:1,oct:1,open:1,pack:1,partition:1,pid:1,pipe:1,pop:1,popen:1,pos:1,prec:1,prec_f:1,prec_i:1,print:1,printf:1,private_class_method:1,private_instance_methods:1,"private_method_defined?":1,private_methods:1,proc:1,protected_instance_methods:1,"protected_method_defined?":1,protected_methods:1,public_class_method:1,public_instance_methods:1,"public_method_defined?":1,public_methods:1,push:1,putc:1,puts:1,quo:1,raise:1,rand:1,rassoc:1,read:1,read_nonblock:1,readchar:1,readline:1,readlines:1,readpartial:1,rehash:1,reject:1,"reject!":1,remainder:1,reopen:1,replace:1,require:1,"respond_to?":1,reverse:1,"reverse!":1,reverse_each:1,rewind:1,rindex:1,rjust:1,round:1,rstrip:1,"rstrip!":1,scan:1,seek:1,select:1,send:1,set_trace_func:1,shift:1,singleton_method_added:1,singleton_methods:1,size:1,sleep:1,slice:1,"slice!":1,sort:1,"sort!":1,sort_by:1,split:1,sprintf:1,squeeze:1,"squeeze!":1,srand:1,stat:1,step:1,store:1,strip:1,"strip!":1,sub:1,"sub!":1,succ:1,"succ!":1,sum:1,superclass:1,swapcase:1,"swapcase!":1,sync:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,taint:1,"tainted?":1,tell:1,test:1,"throw":1,times:1,to_a:1,to_ary:1,to_f:1,to_hash:1,to_i:1,to_int:1,to_io:1,to_proc:1,to_s:1,to_str:1,to_sym:1,tr:1,"tr!":1,tr_s:1,"tr_s!":1,trace_var:1,transpose:1,trap:1,truncate:1,"tty?":1,type:1,ungetc:1,uniq:1,"uniq!":1,unpack:1,unshift:1,untaint:1,untrace_var:1,upcase:1,"upcase!":1,update:1,upto:1,"value?":1,values:1,values_at:1,warn:1,write:1,write_nonblock:1,"zero?":1,zip:1}};return{dM:{l:[a],c:b,k:c},m:[hljs.HCM,{cN:"comment",b:"^\\=begin",e:"^\\=end",r:10},{cN:"comment",b:"^__END__",e:"\\n$"},{cN:"params",b:"\\(",e:"\\)",l:[a],k:c,c:b},{cN:"function",b:"\\bdef\\b",e:"$|;",l:[a],k:c,c:["title","params","comment"]},{cN:"class",b:"\\b(class|module)\\b",e:"$",l:[hljs.UIR],k:c,c:["title","inheritance","comment"],k:{"class":1,module:1}},{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",e:"^",r:0},{cN:"inheritance",b:"<\\s*",e:"^",c:["parent"]},{cN:"parent",b:"("+hljs.IR+"::)?"+hljs.IR,e:"^"},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",e:"^",r:0},{cN:"number",b:"\\?\\w",e:"^"},{cN:"string",b:"'",e:"'",c:["escape","subst"],r:0},{cN:"string",b:'"',e:'"',c:["escape","subst"],r:0},{cN:"string",b:"%[qw]?\\(",e:"\\)",c:["escape","subst"],r:10},{cN:"string",b:"%[qw]?\\[",e:"\\]",c:["escape","subst"],r:10},{cN:"string",b:"%[qw]?{",e:"}",c:["escape","subst"],r:10},{cN:"string",b:"%[qw]?<",e:">",c:["escape","subst"],r:10},{cN:"string",b:"%[qw]?/",e:"/",c:["escape","subst"],r:10},{cN:"string",b:"%[qw]?%",e:"%",c:["escape","subst"],r:10},{cN:"string",b:"%[qw]?-",e:"-",c:["escape","subst"],r:10},{cN:"string",b:"%[qw]?\\|",e:"\\|",c:["escape","subst"],r:10},{cN:"module_name",b:":{2}"+a,e:"^",nM:true},{cN:"symbol",b:":"+a,e:"^"},{cN:"symbol",b:":",e:"^",c:["string"]},hljs.BE,{cN:"subst",b:"#\\{",e:"}",l:[a],k:c,c:b},{cN:"regexp_container",b:"("+hljs.RSR+")\\s*",e:"^",nM:true,c:["comment","regexp"],r:0},{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:["escape"]},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))",e:"^"}]}}();hljs.LANGUAGES.sql={cI:true,dM:{l:[hljs.IR],c:["string","number","comment"],k:{keyword:{all:1,partial:1,global:1,month:1,current_timestamp:1,using:1,go:1,revoke:1,smallint:1,indicator:1,"end-exec":1,disconnect:1,zone:1,"with":1,character:1,assertion:1,to:1,add:1,current_user:1,usage:1,input:1,local:1,alter:1,match:1,collate:1,real:1,then:1,rollback:1,get:1,read:1,timestamp:1,session_user:1,not:1,integer:1,bit:1,unique:1,day:1,minute:1,desc:1,insert:1,execute:1,like:1,ilike:2,level:1,decimal:1,drop:1,"continue":1,isolation:1,found:1,where:1,constraints:1,domain:1,right:1,national:1,some:1,module:1,transaction:1,relative:1,second:1,connect:1,escape:1,close:1,system_user:1,"for":1,deferred:1,section:1,cast:1,current:1,sqlstate:1,allocate:1,intersect:1,deallocate:1,numeric:1,"public":1,preserve:1,full:1,"goto":1,initially:1,asc:1,no:1,key:1,output:1,collation:1,group:1,by:1,union:1,session:1,both:1,last:1,language:1,constraint:1,column:1,of:1,space:1,foreign:1,deferrable:1,prior:1,connection:1,unknown:1,action:1,commit:1,view:1,or:1,first:1,into:1,"float":1,year:1,primary:1,cascaded:1,except:1,restrict:1,set:1,references:1,names:1,table:1,outer:1,open:1,select:1,size:1,are:1,rows:1,from:1,prepare:1,distinct:1,leading:1,create:1,only:1,next:1,inner:1,authorization:1,schema:1,corresponding:1,option:1,declare:1,precision:1,immediate:1,"else":1,timezone_minute:1,external:1,varying:1,translation:1,"true":1,"case":1,exception:1,join:1,hour:1,"default":1,"double":1,scroll:1,value:1,cursor:1,descriptor:1,values:1,dec:1,fetch:1,procedure:1,"delete":1,and:1,"false":1,"int":1,is:1,describe:1,"char":1,as:1,at:1,"in":1,varchar:1,"null":1,trailing:1,any:1,absolute:1,current_time:1,end:1,grant:1,privileges:1,when:1,cross:1,check:1,write:1,current_date:1,pad:1,begin:1,temporary:1,exec:1,time:1,update:1,catalog:1,user:1,sql:1,date:1,on:1,identity:1,timezone_hour:1,natural:1,whenever:1,interval:1,work:1,order:1,cascade:1,diagnostics:1,nchar:1,having:1,left:1},aggregate:{count:1,sum:1,min:1,max:1,avg:1}}},m:[hljs.CNM,hljs.CBLCLM,{cN:"comment",b:"--",e:"$"},{cN:"string",b:"'",e:"'",c:["escape","squote"],r:0},{cN:"squote",b:"''",e:"^",nM:true},{cN:"string",b:'"',e:'"',c:["escape","dquote"],r:0},{cN:"dquote",b:'""',e:"^",nM:true},{cN:"string",b:"`",e:"`",c:["escape"]},hljs.BE]};hljs.LANGUAGES.java={dM:{l:[hljs.UIR],c:["javadoc","comment","string","class","number","annotation"],k:{"false":1,"synchronized":1,"int":1,"abstract":1,"float":1,"private":1,"char":1,"interface":1,"boolean":1,"static":1,"null":1,"if":1,"const":1,"for":1,"true":1,"while":1,"long":1,"throw":1,strictfp:1,"finally":1,"protected":1,"extends":1,"import":1,"native":1,"final":1,"implements":1,"return":1,"void":1,"enum":1,"else":1,"break":1,"transient":1,"new":1,"catch":1,"instanceof":1,"byte":1,"super":1,"class":1,"volatile":1,"case":1,assert:1,"short":1,"package":1,"default":1,"double":1,"public":1,"try":1,"this":1,"switch":1,"continue":1,"throws":1}},m:[{cN:"class",l:[hljs.UIR],b:"(class |interface )",e:"{",i:":",k:{"class":1,"interface":1},c:["inheritance","title"]},{cN:"inheritance",b:"(implements|extends)",e:"^",nM:true,l:[hljs.IR],k:{"extends":1,"implements":1},r:10},{cN:"title",b:hljs.UIR,e:"^"},{cN:"params",b:"\\(",e:"\\)",c:["string","annotation"]},hljs.CNM,hljs.ASM,hljs.QSM,hljs.BE,hljs.CLCM,{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:["javadoctag"],r:10},{cN:"javadoctag",b:"@[A-Za-z]+",e:"^"},hljs.CBLCLM,{cN:"annotation",b:"@[A-Za-z]+",e:"^"}]};hljs.LANGUAGES.bash=function(){var a={"true":1,"false":1};return{dM:{l:[hljs.IR],c:["string","shebang","comment","number","test_condition","string","variable"],k:{keyword:{"if":1,then:1,"else":1,fi:1,"for":1,"break":1,"continue":1,"while":1,"in":1,"do":1,done:1,echo:1,exit:1,"return":1,set:1,declare:1},literal:a}},cI:false,m:[{cN:"shebang",b:"(#!\\/bin\\/bash)|(#!\\/bin\\/sh)",e:"^",r:10},hljs.HCM,{cN:"test_condition",b:"\\[ ",e:" \\]",c:["string","variable","number"],l:[hljs.IR],k:{literal:a},r:0},{cN:"test_condition",b:"\\[\\[ ",e:" \\]\\]",c:["string","variable","number"],l:[hljs.IR],k:{literal:a}},{cN:"variable",b:"\\$([a-zA-Z0-9_]+)\\b",e:"^"},{cN:"variable",b:"\\$\\{(([^}])|(\\\\}))+\\}",e:"^",c:["number"]},{cN:"string",b:'"',e:'"',i:"\\n",c:["escape","variable"],r:0},{cN:"string",b:'"',e:'"',i:"\\n",c:["escape","variable"],r:0},hljs.BE,hljs.CNM,{cN:"comment",b:"\\/\\/",e:"$",i:"."}]}}(); -------------------------------------------------------------------------------- /site/assets/scripts/jquery.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery JavaScript Library v1.3.2 3 | * http://jquery.com/ 4 | * 5 | * Copyright (c) 2009 John Resig 6 | * Dual licensed under the MIT and GPL licenses. 7 | * http://docs.jquery.com/License 8 | * 9 | * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) 10 | * Revision: 6246 11 | */ 12 | (function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); 13 | /* 14 | * Sizzle CSS Selector Engine - v0.9.3 15 | * Copyright 2009, The Dojo Foundation 16 | * Released under the MIT, BSD, and GPL Licenses. 17 | * More information: http://sizzlejs.com/ 18 | */ 19 | (function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); --------------------------------------------------------------------------------