├── .fswatch.json
├── .gitignore
├── .gopack.yml
├── .travis.yml
├── Dockerfile
├── Godeps
├── Godeps.json
├── Readme
└── _workspace
│ ├── .gitignore
│ └── src
│ ├── github.com
│ ├── Unknwon
│ │ ├── com
│ │ │ ├── .gitignore
│ │ │ ├── .travis.yml
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── cmd.go
│ │ │ ├── cmd_test.go
│ │ │ ├── convert.go
│ │ │ ├── convert_test.go
│ │ │ ├── dir.go
│ │ │ ├── dir_test.go
│ │ │ ├── example_test.go
│ │ │ ├── file.go
│ │ │ ├── file_test.go
│ │ │ ├── html.go
│ │ │ ├── html_test.go
│ │ │ ├── http.go
│ │ │ ├── http_test.go
│ │ │ ├── math.go
│ │ │ ├── math_test.go
│ │ │ ├── path.go
│ │ │ ├── path_test.go
│ │ │ ├── regex.go
│ │ │ ├── regex_test.go
│ │ │ ├── slice.go
│ │ │ ├── slice_test.go
│ │ │ ├── string.go
│ │ │ ├── string_test.go
│ │ │ ├── testdata
│ │ │ │ ├── SaveFile.txt
│ │ │ │ ├── SaveFileS.txt
│ │ │ │ ├── sample_file.txt
│ │ │ │ └── statDir
│ │ │ │ │ ├── SaveFile.txt
│ │ │ │ │ ├── SaveFileS.txt
│ │ │ │ │ ├── sample_file.txt
│ │ │ │ │ └── secondLevel
│ │ │ │ │ ├── SaveFile.txt
│ │ │ │ │ ├── SaveFileS.txt
│ │ │ │ │ └── sample_file.txt
│ │ │ ├── time.go
│ │ │ └── url.go
│ │ └── macaron
│ │ │ ├── .gitignore
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── context.go
│ │ │ ├── context_test.go
│ │ │ ├── fixtures
│ │ │ ├── basic
│ │ │ │ ├── admin
│ │ │ │ │ └── index.tmpl
│ │ │ │ ├── another_layout.tmpl
│ │ │ │ ├── content.tmpl
│ │ │ │ ├── current_layout.tmpl
│ │ │ │ ├── delims.tmpl
│ │ │ │ ├── hello.tmpl
│ │ │ │ ├── hypertext.html
│ │ │ │ └── layout.tmpl
│ │ │ ├── basic2
│ │ │ │ ├── hello.tmpl
│ │ │ │ └── hello2.tmpl
│ │ │ └── custom_funcs
│ │ │ │ └── index.tmpl
│ │ │ ├── gzip.go
│ │ │ ├── gzip_test.go
│ │ │ ├── inject
│ │ │ ├── README.md
│ │ │ ├── inject.go
│ │ │ ├── inject.goconvey
│ │ │ └── inject_test.go
│ │ │ ├── logger.go
│ │ │ ├── logger_test.go
│ │ │ ├── macaron.go
│ │ │ ├── macaron_test.go
│ │ │ ├── macaronlogo.png
│ │ │ ├── recovery.go
│ │ │ ├── recovery_test.go
│ │ │ ├── render.go
│ │ │ ├── render_test.go
│ │ │ ├── response_writer.go
│ │ │ ├── response_writer_test.go
│ │ │ ├── return_handler.go
│ │ │ ├── return_handler_test.go
│ │ │ ├── router.go
│ │ │ ├── router_test.go
│ │ │ ├── static.go
│ │ │ ├── static_test.go
│ │ │ ├── tree.go
│ │ │ └── tree_test.go
│ ├── go-sql-driver
│ │ └── mysql
│ │ │ ├── .gitignore
│ │ │ ├── .travis.yml
│ │ │ ├── AUTHORS
│ │ │ ├── CHANGELOG.md
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── appengine.go
│ │ │ ├── benchmark_test.go
│ │ │ ├── buffer.go
│ │ │ ├── collations.go
│ │ │ ├── connection.go
│ │ │ ├── const.go
│ │ │ ├── driver.go
│ │ │ ├── driver_test.go
│ │ │ ├── errors.go
│ │ │ ├── errors_test.go
│ │ │ ├── infile.go
│ │ │ ├── packets.go
│ │ │ ├── result.go
│ │ │ ├── rows.go
│ │ │ ├── statement.go
│ │ │ ├── transaction.go
│ │ │ ├── utils.go
│ │ │ └── utils_test.go
│ ├── go-xorm
│ │ ├── core
│ │ │ ├── .gitignore
│ │ │ ├── README.md
│ │ │ ├── benchmark.sh
│ │ │ ├── cache.go
│ │ │ ├── column.go
│ │ │ ├── converstion.go
│ │ │ ├── db.go
│ │ │ ├── db_test.go
│ │ │ ├── dialect.go
│ │ │ ├── driver.go
│ │ │ ├── error.go
│ │ │ ├── filter.go
│ │ │ ├── ilogger.go
│ │ │ ├── index.go
│ │ │ ├── mapper.go
│ │ │ ├── mapper_test.go
│ │ │ ├── pk.go
│ │ │ ├── pk_test.go
│ │ │ ├── table.go
│ │ │ └── type.go
│ │ └── xorm
│ │ │ ├── .gitignore
│ │ │ ├── .gitmodules
│ │ │ ├── .gopmfile
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── README_CN.md
│ │ │ ├── VERSION
│ │ │ ├── doc.go
│ │ │ ├── docs
│ │ │ ├── README.md
│ │ │ └── images
│ │ │ │ ├── cache_design.graffle
│ │ │ │ └── cache_design.png
│ │ │ ├── engine.go
│ │ │ ├── error.go
│ │ │ ├── examples
│ │ │ ├── cache.go
│ │ │ ├── cachegoroutine.go
│ │ │ ├── conversion.go
│ │ │ ├── derive.go
│ │ │ ├── goroutine.go
│ │ │ ├── maxconnect.go
│ │ │ ├── singlemapping.go
│ │ │ ├── sync.go
│ │ │ └── tables.go
│ │ │ ├── gen_reserved.sh
│ │ │ ├── goracle_driver.go
│ │ │ ├── helpers.go
│ │ │ ├── logger.go
│ │ │ ├── lru_cacher.go
│ │ │ ├── memroy_store.go
│ │ │ ├── mssql_dialect.go
│ │ │ ├── mymysql_driver.go
│ │ │ ├── mysql_dialect.go
│ │ │ ├── mysql_driver.go
│ │ │ ├── oci8_driver.go
│ │ │ ├── odbc_driver.go
│ │ │ ├── oracle_dialect.go
│ │ │ ├── pg_reserved.txt
│ │ │ ├── postgres_dialect.go
│ │ │ ├── pq_driver.go
│ │ │ ├── processors.go
│ │ │ ├── rows.go
│ │ │ ├── session.go
│ │ │ ├── sqlite3_dialect.go
│ │ │ ├── sqlite3_driver.go
│ │ │ ├── statement.go
│ │ │ ├── syslogger.go
│ │ │ └── xorm.go
│ ├── gorilla
│ │ └── websocket
│ │ │ ├── .gitignore
│ │ │ ├── .travis.yml
│ │ │ ├── AUTHORS
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── bench_test.go
│ │ │ ├── client.go
│ │ │ ├── client_server_test.go
│ │ │ ├── client_test.go
│ │ │ ├── conn.go
│ │ │ ├── conn_test.go
│ │ │ ├── doc.go
│ │ │ ├── examples
│ │ │ ├── autobahn
│ │ │ │ ├── README.md
│ │ │ │ ├── fuzzingclient.json
│ │ │ │ └── server.go
│ │ │ ├── chat
│ │ │ │ ├── README.md
│ │ │ │ ├── conn.go
│ │ │ │ ├── home.html
│ │ │ │ ├── hub.go
│ │ │ │ └── main.go
│ │ │ └── filewatch
│ │ │ │ ├── README.md
│ │ │ │ └── main.go
│ │ │ ├── json.go
│ │ │ ├── json_test.go
│ │ │ ├── server.go
│ │ │ ├── server_test.go
│ │ │ ├── util.go
│ │ │ └── util_test.go
│ ├── mattn
│ │ └── go-sqlite3
│ │ │ ├── .gitignore
│ │ │ ├── .travis.yml
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── backup.go
│ │ │ ├── code
│ │ │ ├── sqlite3-binding.c
│ │ │ ├── sqlite3-binding.h
│ │ │ └── sqlite3ext.h
│ │ │ ├── doc.go
│ │ │ ├── error.go
│ │ │ ├── error_test.go
│ │ │ ├── sqlite3-binding.c
│ │ │ ├── sqlite3-binding.h
│ │ │ ├── sqlite3.go
│ │ │ ├── sqlite3_fts3_test.go
│ │ │ ├── sqlite3_icu.go
│ │ │ ├── sqlite3_libsqlite3.go
│ │ │ ├── sqlite3_other.go
│ │ │ ├── sqlite3_test.go
│ │ │ ├── sqlite3_test
│ │ │ └── sqltest.go
│ │ │ └── sqlite3_windows.go
│ ├── qiniu
│ │ └── log
│ │ │ ├── .gitignore
│ │ │ ├── README.md
│ │ │ ├── logext.go
│ │ │ └── logext_test.go
│ └── robfig
│ │ └── cron
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── constantdelay.go
│ │ ├── constantdelay_test.go
│ │ ├── cron.go
│ │ ├── cron_test.go
│ │ ├── doc.go
│ │ ├── parser.go
│ │ ├── parser_test.go
│ │ ├── spec.go
│ │ └── spec_test.go
│ └── gopkg.in
│ └── ini.v1
│ ├── .gitignore
│ ├── LICENSE
│ ├── README.md
│ ├── README_ZH.md
│ ├── ini.go
│ ├── ini_test.go
│ ├── struct.go
│ ├── struct_test.go
│ └── testdata
│ └── conf.ini
├── LICENSE
├── Makefile
├── Procfile
├── README.md
├── assetfs.go
├── broadcast.go
├── cron.go
├── keeper.go
├── public
├── bower.json
├── bower_components
│ ├── angular-scroll
│ │ ├── .bower.json
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── angular-scroll.js
│ │ ├── angular-scroll.min.js
│ │ ├── angular-scroll.min.js.map
│ │ ├── bower.json
│ │ ├── example
│ │ │ ├── container.html
│ │ │ ├── index.html
│ │ │ └── toc.html
│ │ └── gulpfile.js
│ ├── angular
│ │ ├── .bower.json
│ │ ├── README.md
│ │ ├── angular-csp.css
│ │ ├── angular.js
│ │ ├── angular.min.js
│ │ ├── angular.min.js.gzip
│ │ ├── angular.min.js.map
│ │ ├── bower.json
│ │ ├── index.js
│ │ └── package.json
│ ├── angularjs-humanize
│ │ ├── .bower.json
│ │ ├── .gitignore
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── bower.json
│ │ ├── example
│ │ │ ├── example.js
│ │ │ ├── humanize.js
│ │ │ └── index.html
│ │ ├── package.json
│ │ └── src
│ │ │ └── angular-humanize.js
│ ├── angularjs
│ │ ├── .bower.json
│ │ ├── README.md
│ │ ├── angular-csp.css
│ │ ├── angular.js
│ │ ├── angular.min.js
│ │ ├── angular.min.js.gzip
│ │ ├── angular.min.js.map
│ │ ├── bower.json
│ │ ├── index.js
│ │ └── package.json
│ ├── bootstrap-switch
│ │ ├── .bower.json
│ │ ├── .bowerrc
│ │ ├── .gitignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── bower.json
│ │ ├── dist
│ │ │ ├── css
│ │ │ │ ├── bootstrap2
│ │ │ │ │ ├── bootstrap-switch.css
│ │ │ │ │ └── bootstrap-switch.min.css
│ │ │ │ └── bootstrap3
│ │ │ │ │ ├── bootstrap-switch.css
│ │ │ │ │ └── bootstrap-switch.min.css
│ │ │ └── js
│ │ │ │ ├── bootstrap-switch.js
│ │ │ │ └── bootstrap-switch.min.js
│ │ ├── documentation-2.html
│ │ ├── events.html
│ │ ├── examples.html
│ │ ├── karma.json
│ │ ├── main.html
│ │ ├── methods.html
│ │ ├── options.html
│ │ └── src
│ │ │ ├── coffee
│ │ │ ├── bootstrap-switch.coffee
│ │ │ └── bootstrap-switch.tests.coffee
│ │ │ └── less
│ │ │ ├── bootstrap2
│ │ │ ├── bootstrap-switch.less
│ │ │ ├── build.less
│ │ │ ├── mixins.less
│ │ │ └── variables.less
│ │ │ └── bootstrap3
│ │ │ ├── bootstrap-switch.less
│ │ │ ├── build.less
│ │ │ ├── mixins.less
│ │ │ └── variables.less
│ ├── bootstrap
│ │ ├── .bower.json
│ │ ├── Gruntfile.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── bower.json
│ │ ├── dist
│ │ │ ├── css
│ │ │ │ ├── bootstrap-theme.css
│ │ │ │ ├── bootstrap-theme.css.map
│ │ │ │ ├── bootstrap-theme.min.css
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.css.map
│ │ │ │ └── bootstrap.min.css
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ │ └── glyphicons-halflings-regular.woff2
│ │ │ └── js
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ └── npm.js
│ │ ├── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ └── glyphicons-halflings-regular.woff2
│ │ ├── grunt
│ │ │ ├── .jshintrc
│ │ │ ├── bs-commonjs-generator.js
│ │ │ ├── bs-glyphicons-data-generator.js
│ │ │ ├── bs-lessdoc-parser.js
│ │ │ ├── bs-raw-files-generator.js
│ │ │ ├── configBridge.json
│ │ │ └── sauce_browsers.yml
│ │ ├── js
│ │ │ ├── .jscsrc
│ │ │ ├── .jshintrc
│ │ │ ├── affix.js
│ │ │ ├── alert.js
│ │ │ ├── button.js
│ │ │ ├── carousel.js
│ │ │ ├── collapse.js
│ │ │ ├── dropdown.js
│ │ │ ├── modal.js
│ │ │ ├── popover.js
│ │ │ ├── scrollspy.js
│ │ │ ├── tab.js
│ │ │ ├── tooltip.js
│ │ │ └── transition.js
│ │ ├── less
│ │ │ ├── .csscomb.json
│ │ │ ├── .csslintrc
│ │ │ ├── alerts.less
│ │ │ ├── badges.less
│ │ │ ├── bootstrap.less
│ │ │ ├── breadcrumbs.less
│ │ │ ├── button-groups.less
│ │ │ ├── buttons.less
│ │ │ ├── carousel.less
│ │ │ ├── close.less
│ │ │ ├── code.less
│ │ │ ├── component-animations.less
│ │ │ ├── dropdowns.less
│ │ │ ├── forms.less
│ │ │ ├── glyphicons.less
│ │ │ ├── grid.less
│ │ │ ├── input-groups.less
│ │ │ ├── jumbotron.less
│ │ │ ├── labels.less
│ │ │ ├── list-group.less
│ │ │ ├── media.less
│ │ │ ├── mixins.less
│ │ │ ├── mixins
│ │ │ │ ├── alerts.less
│ │ │ │ ├── background-variant.less
│ │ │ │ ├── border-radius.less
│ │ │ │ ├── buttons.less
│ │ │ │ ├── center-block.less
│ │ │ │ ├── clearfix.less
│ │ │ │ ├── forms.less
│ │ │ │ ├── gradients.less
│ │ │ │ ├── grid-framework.less
│ │ │ │ ├── grid.less
│ │ │ │ ├── hide-text.less
│ │ │ │ ├── image.less
│ │ │ │ ├── labels.less
│ │ │ │ ├── list-group.less
│ │ │ │ ├── nav-divider.less
│ │ │ │ ├── nav-vertical-align.less
│ │ │ │ ├── opacity.less
│ │ │ │ ├── pagination.less
│ │ │ │ ├── panels.less
│ │ │ │ ├── progress-bar.less
│ │ │ │ ├── reset-filter.less
│ │ │ │ ├── reset-text.less
│ │ │ │ ├── resize.less
│ │ │ │ ├── responsive-visibility.less
│ │ │ │ ├── size.less
│ │ │ │ ├── tab-focus.less
│ │ │ │ ├── table-row.less
│ │ │ │ ├── text-emphasis.less
│ │ │ │ ├── text-overflow.less
│ │ │ │ └── vendor-prefixes.less
│ │ │ ├── modals.less
│ │ │ ├── navbar.less
│ │ │ ├── navs.less
│ │ │ ├── normalize.less
│ │ │ ├── pager.less
│ │ │ ├── pagination.less
│ │ │ ├── panels.less
│ │ │ ├── popovers.less
│ │ │ ├── print.less
│ │ │ ├── progress-bars.less
│ │ │ ├── responsive-embed.less
│ │ │ ├── responsive-utilities.less
│ │ │ ├── scaffolding.less
│ │ │ ├── tables.less
│ │ │ ├── theme.less
│ │ │ ├── thumbnails.less
│ │ │ ├── tooltip.less
│ │ │ ├── type.less
│ │ │ ├── utilities.less
│ │ │ ├── variables.less
│ │ │ └── wells.less
│ │ ├── package.js
│ │ └── package.json
│ ├── humanize
│ │ ├── .bower.json
│ │ ├── .gitignore
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── bower.json
│ │ ├── humanize.js
│ │ ├── package.json
│ │ └── specs
│ │ │ ├── dateData.js
│ │ │ └── humanize.spec.js
│ ├── jquery
│ │ ├── .bower.json
│ │ ├── MIT-LICENSE.txt
│ │ ├── bower.json
│ │ ├── dist
│ │ │ ├── jquery.js
│ │ │ ├── jquery.min.js
│ │ │ └── jquery.min.map
│ │ └── src
│ │ │ ├── ajax.js
│ │ │ ├── ajax
│ │ │ ├── jsonp.js
│ │ │ ├── load.js
│ │ │ ├── parseJSON.js
│ │ │ ├── parseXML.js
│ │ │ ├── script.js
│ │ │ ├── var
│ │ │ │ ├── nonce.js
│ │ │ │ └── rquery.js
│ │ │ └── xhr.js
│ │ │ ├── attributes.js
│ │ │ ├── attributes
│ │ │ ├── attr.js
│ │ │ ├── classes.js
│ │ │ ├── prop.js
│ │ │ ├── support.js
│ │ │ └── val.js
│ │ │ ├── callbacks.js
│ │ │ ├── core.js
│ │ │ ├── core
│ │ │ ├── access.js
│ │ │ ├── init.js
│ │ │ ├── parseHTML.js
│ │ │ ├── ready.js
│ │ │ └── var
│ │ │ │ └── rsingleTag.js
│ │ │ ├── css.js
│ │ │ ├── css
│ │ │ ├── addGetHookIf.js
│ │ │ ├── curCSS.js
│ │ │ ├── defaultDisplay.js
│ │ │ ├── hiddenVisibleSelectors.js
│ │ │ ├── support.js
│ │ │ ├── swap.js
│ │ │ └── var
│ │ │ │ ├── cssExpand.js
│ │ │ │ ├── getStyles.js
│ │ │ │ ├── isHidden.js
│ │ │ │ ├── rmargin.js
│ │ │ │ └── rnumnonpx.js
│ │ │ ├── data.js
│ │ │ ├── data
│ │ │ ├── Data.js
│ │ │ ├── accepts.js
│ │ │ └── var
│ │ │ │ ├── data_priv.js
│ │ │ │ └── data_user.js
│ │ │ ├── deferred.js
│ │ │ ├── deprecated.js
│ │ │ ├── dimensions.js
│ │ │ ├── effects.js
│ │ │ ├── effects
│ │ │ ├── Tween.js
│ │ │ └── animatedSelector.js
│ │ │ ├── event.js
│ │ │ ├── event
│ │ │ ├── ajax.js
│ │ │ ├── alias.js
│ │ │ └── support.js
│ │ │ ├── exports
│ │ │ ├── amd.js
│ │ │ └── global.js
│ │ │ ├── intro.js
│ │ │ ├── jquery.js
│ │ │ ├── manipulation.js
│ │ │ ├── manipulation
│ │ │ ├── _evalUrl.js
│ │ │ ├── support.js
│ │ │ └── var
│ │ │ │ └── rcheckableType.js
│ │ │ ├── offset.js
│ │ │ ├── outro.js
│ │ │ ├── queue.js
│ │ │ ├── queue
│ │ │ └── delay.js
│ │ │ ├── selector-native.js
│ │ │ ├── selector-sizzle.js
│ │ │ ├── selector.js
│ │ │ ├── serialize.js
│ │ │ ├── sizzle
│ │ │ └── dist
│ │ │ │ ├── sizzle.js
│ │ │ │ ├── sizzle.min.js
│ │ │ │ └── sizzle.min.map
│ │ │ ├── traversing.js
│ │ │ ├── traversing
│ │ │ ├── findFilter.js
│ │ │ └── var
│ │ │ │ └── rneedsContext.js
│ │ │ ├── var
│ │ │ ├── arr.js
│ │ │ ├── class2type.js
│ │ │ ├── concat.js
│ │ │ ├── hasOwn.js
│ │ │ ├── indexOf.js
│ │ │ ├── pnum.js
│ │ │ ├── push.js
│ │ │ ├── rnotwhite.js
│ │ │ ├── slice.js
│ │ │ ├── strundefined.js
│ │ │ ├── support.js
│ │ │ └── toString.js
│ │ │ └── wrap.js
│ └── ng-notify
│ │ ├── .bower.json
│ │ ├── CHANGELOG.md
│ │ ├── CONTRIBUTORS.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── bower.json
│ │ ├── dist
│ │ ├── ng-notify.min.css
│ │ ├── ng-notify.min.js
│ │ └── ng-notify.min.js.map
│ │ └── src
│ │ ├── scripts
│ │ └── ng-notify.js
│ │ └── styles
│ │ ├── ng-notify.css
│ │ ├── ng-notify.css.map
│ │ └── ng-notify.sass
├── css
│ ├── bootstrap-glyphicons.css
│ ├── homepage.css
│ └── settings.css
├── favicon.ico
├── fonts
│ ├── glyphiconshalflings-regular.eot
│ ├── glyphiconshalflings-regular.ttf
│ └── glyphiconshalflings-regular.woff
└── schedule_april_96px_516578_easyicon.net.png
├── sched.json
├── scripts
├── hello.go
└── homepage.png
├── templates
├── footer.html
├── header.html
├── homepage.html
├── index.html
└── settings.html
└── web.go
/.fswatch.json:
--------------------------------------------------------------------------------
1 | {
2 | "paths": [
3 | "."
4 | ],
5 | "depth": 1,
6 | "exclude": [],
7 | "include": [
8 | "\\.(go|py|php|java|cpp|h|rb)$"
9 | ],
10 | "command": "go build",
11 | "env": {
12 | "POWERD_BY": "github.com/codeskyblue/fswatch"
13 | },
14 | "autorestart": false,
15 | "restart-interval": 0,
16 | "kill-signal": "KILL"
17 | }
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files, Static and Dynamic libs (Shared Objects)
2 | *.o
3 | *.a
4 | *.so
5 |
6 | # Folders
7 | _obj
8 | _test
9 |
10 | # Architecture specific extensions/prefixes
11 | *.[568vq]
12 | [568vq].out
13 |
14 | *.cgo1.go
15 | *.cgo2.c
16 | _cgo_defun.c
17 | _cgo_gotypes.go
18 | _cgo_export.*
19 |
20 | _testmain.go
21 |
22 | *.exe
23 | *.test
24 |
25 |
--------------------------------------------------------------------------------
/.gopack.yml:
--------------------------------------------------------------------------------
1 | author: shengxiang
2 | description: '...'
3 | includes:
4 | - README.md
5 | - LICENSE
6 | - conf
7 | - templates
8 | - public
9 | excludes:
10 | - \.git
11 | script:
12 | - godep go build
13 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 | go:
3 | - 1.5
4 | script:
5 | - go test -v ./...
6 | after_success:
7 | - bash -c "$(curl -fsSL http://bitly.com/gorelease)" gorelease
8 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM google/golang:latest
2 | MAINTAINER codeskyblue@gmail.com
3 |
4 | COPY . /gopath/src/github.com/codeskyblue/webcrontab
5 | WORKDIR /gopath/src/github.com/codeskyblue/webcrontab
6 |
7 | RUN go get -v
8 | RUN go build
9 |
10 | EXPOSE 80
11 | ENTRYPOINT []
12 | CMD ["./webcrontab", "-port", "80"]
13 |
14 |
--------------------------------------------------------------------------------
/Godeps/Godeps.json:
--------------------------------------------------------------------------------
1 | {
2 | "ImportPath": "webcrontab",
3 | "GoVersion": "go1.4.2",
4 | "Deps": [
5 | {
6 | "ImportPath": "github.com/Unknwon/com",
7 | "Rev": "47d7d2b81a44157600669037e11e9ddfbf16745f"
8 | },
9 | {
10 | "ImportPath": "github.com/Unknwon/macaron",
11 | "Rev": "635c89ac7410dd20df967e37e8f7f173e126cedd"
12 | },
13 | {
14 | "ImportPath": "github.com/go-sql-driver/mysql",
15 | "Comment": "v1.2-118-g3dd7008",
16 | "Rev": "3dd7008ac1529aca1bcd8a9db75228a71ba23cac"
17 | },
18 | {
19 | "ImportPath": "github.com/go-xorm/core",
20 | "Rev": "4813c0110dc4ea27e05d77425385b4cd4abfe81b"
21 | },
22 | {
23 | "ImportPath": "github.com/go-xorm/xorm",
24 | "Comment": "v0.4.3-34-ga01186e",
25 | "Rev": "a01186e3cdc3f3e28019d53d62fe782108fc1b45"
26 | },
27 | {
28 | "ImportPath": "github.com/gorilla/websocket",
29 | "Rev": "b6ab76f1fe9803ee1d59e7e5b2a797c1fe897ce5"
30 | },
31 | {
32 | "ImportPath": "github.com/mattn/go-sqlite3",
33 | "Comment": "v1.0.0-6-g8897bf1",
34 | "Rev": "8897bf145272af4dd0305518cfb725a5b6d0541c"
35 | },
36 | {
37 | "ImportPath": "github.com/qiniu/log",
38 | "Comment": "v1.0.00-2-ge002bc2",
39 | "Rev": "e002bc2020b19bfa61ed378cc5407383dbd2f346"
40 | },
41 | {
42 | "ImportPath": "github.com/robfig/cron",
43 | "Comment": "v1-2-g67823cd",
44 | "Rev": "67823cd24dece1b04cced3a0a0b3ca2bc84d875e"
45 | },
46 | {
47 | "ImportPath": "gopkg.in/ini.v1",
48 | "Comment": "v0-32-g45bf59e",
49 | "Rev": "45bf59e51e747b1d61b3108a97549497a6efd3bc"
50 | }
51 | ]
52 | }
53 |
--------------------------------------------------------------------------------
/Godeps/Readme:
--------------------------------------------------------------------------------
1 | This directory tree is generated automatically by godep.
2 |
3 | Please do not edit.
4 |
5 | See https://github.com/tools/godep for more information.
6 |
--------------------------------------------------------------------------------
/Godeps/_workspace/.gitignore:
--------------------------------------------------------------------------------
1 | /pkg
2 | /bin
3 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files, Static and Dynamic libs (Shared Objects)
2 | *.o
3 | *.a
4 | *.so
5 |
6 | # Folders
7 | _obj
8 | _test
9 | .idea
10 |
11 | # Architecture specific extensions/prefixes
12 | *.[568vq]
13 | [568vq].out
14 |
15 | *.cgo1.go
16 | *.cgo2.c
17 | _cgo_defun.c
18 | _cgo_gotypes.go
19 | _cgo_export.*
20 |
21 | _testmain.go
22 |
23 | *.exe
24 | *.iml
25 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 |
3 | go:
4 | - 1.2
5 | - 1.3
6 | - 1.4
7 | - tip
8 |
9 | install: go get -v -t
10 |
11 | notifications:
12 | email:
13 | - u@gogs.io
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/README.md:
--------------------------------------------------------------------------------
1 | Common Functions
2 | ================
3 |
4 | [](https://travis-ci.org/Unknwon/com) [](http://gowalker.org/github.com/Unknwon/com)
5 |
6 | This is an open source project for commonly used functions for the Go programming language.
7 |
8 | This package need >= **go 1.2**
9 |
10 | Code Convention: based on [Go Code Convention](https://github.com/Unknwon/go-code-convention).
11 |
12 | ## Contribute
13 |
14 | Your contribute is welcome, but you have to check following steps after you added some functions and commit them:
15 |
16 | 1. Make sure you wrote user-friendly comments for **all functions** .
17 | 2. Make sure you wrote test cases with any possible condition for **all functions** in file `*_test.go`.
18 | 3. Make sure you wrote benchmarks for **all functions** in file `*_test.go`.
19 | 4. Make sure you wrote useful examples for **all functions** in file `example_test.go`.
20 | 5. Make sure you ran `go test` and got **PASS** .
21 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/convert_test.go:
--------------------------------------------------------------------------------
1 | // Copyright 2014 com authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License"): you may
4 | // not use this file except in compliance with the License. You may obtain
5 | // a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 | // License for the specific language governing permissions and limitations
13 | // under the License.
14 |
15 | package com
16 |
17 | import (
18 | "testing"
19 |
20 | . "github.com/smartystreets/goconvey/convey"
21 | )
22 |
23 | func TestHexStr2int(t *testing.T) {
24 | Convey("Convert hex format string to decimal", t, func() {
25 | hexDecs := map[string]int{
26 | "1": 1,
27 | "002": 2,
28 | "011": 17,
29 | "0a1": 161,
30 | "35e": 862,
31 | }
32 |
33 | for hex, dec := range hexDecs {
34 | val, err := HexStr2int(hex)
35 | So(err, ShouldBeNil)
36 | So(val, ShouldEqual, dec)
37 | }
38 | })
39 | }
40 |
41 | func TestInt2HexStr(t *testing.T) {
42 | Convey("Convert decimal to hex format string", t, func() {
43 | decHexs := map[int]string{
44 | 1: "1",
45 | 2: "2",
46 | 17: "11",
47 | 161: "a1",
48 | 862: "35e",
49 | }
50 |
51 | for dec, hex := range decHexs {
52 | val := Int2HexStr(dec)
53 | So(val, ShouldEqual, hex)
54 | }
55 | })
56 | }
57 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/dir_test.go:
--------------------------------------------------------------------------------
1 | // Copyright 2013 com authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License"): you may
4 | // not use this file except in compliance with the License. You may obtain
5 | // a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 | // License for the specific language governing permissions and limitations
13 | // under the License.
14 |
15 | package com
16 |
17 | import (
18 | "os"
19 | "testing"
20 |
21 | . "github.com/smartystreets/goconvey/convey"
22 | )
23 |
24 | func TestIsDir(t *testing.T) {
25 | Convey("Check if given path is a directory", t, func() {
26 | Convey("Pass a file name", func() {
27 | So(IsDir("file.go"), ShouldEqual, false)
28 | })
29 | Convey("Pass a directory name", func() {
30 | So(IsDir("testdata"), ShouldEqual, true)
31 | })
32 | Convey("Pass a invalid path", func() {
33 | So(IsDir("foo"), ShouldEqual, false)
34 | })
35 | })
36 | }
37 |
38 | func TestCopyDir(t *testing.T) {
39 | Convey("Items of two slices should be same", t, func() {
40 | _, err := StatDir("testdata", true)
41 | So(err, ShouldEqual, nil)
42 |
43 | err = CopyDir("testdata", "testdata2")
44 | So(err, ShouldEqual, nil)
45 |
46 | _, err = StatDir("testdata2", true)
47 | os.RemoveAll("testdata2")
48 | So(err, ShouldEqual, nil)
49 | })
50 | }
51 |
52 | func BenchmarkIsDir(b *testing.B) {
53 | for i := 0; i < b.N; i++ {
54 | IsDir("file.go")
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/file_test.go:
--------------------------------------------------------------------------------
1 | // Copyright 2013 com authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License"): you may
4 | // not use this file except in compliance with the License. You may obtain
5 | // a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 | // License for the specific language governing permissions and limitations
13 | // under the License.
14 |
15 | package com
16 |
17 | import (
18 | "testing"
19 |
20 | . "github.com/smartystreets/goconvey/convey"
21 | )
22 |
23 | func TestIsFile(t *testing.T) {
24 | if !IsFile("file.go") {
25 | t.Errorf("IsExist:\n Expect => %v\n Got => %v\n", true, false)
26 | }
27 |
28 | if IsFile("testdata") {
29 | t.Errorf("IsExist:\n Expect => %v\n Got => %v\n", false, true)
30 | }
31 |
32 | if IsFile("files.go") {
33 | t.Errorf("IsExist:\n Expect => %v\n Got => %v\n", false, true)
34 | }
35 | }
36 |
37 | func TestIsExist(t *testing.T) {
38 | Convey("Check if file or directory exists", t, func() {
39 | Convey("Pass a file name that exists", func() {
40 | So(IsExist("file.go"), ShouldEqual, true)
41 | })
42 | Convey("Pass a directory name that exists", func() {
43 | So(IsExist("testdata"), ShouldEqual, true)
44 | })
45 | Convey("Pass a directory name that does not exist", func() {
46 | So(IsExist(".hg"), ShouldEqual, false)
47 | })
48 | })
49 | }
50 |
51 | func BenchmarkIsFile(b *testing.B) {
52 | for i := 0; i < b.N; i++ {
53 | IsFile("file.go")
54 | }
55 | }
56 |
57 | func BenchmarkIsExist(b *testing.B) {
58 | for i := 0; i < b.N; i++ {
59 | IsExist("file.go")
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/html_test.go:
--------------------------------------------------------------------------------
1 | // Copyright 2013 com authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License"): you may
4 | // not use this file except in compliance with the License. You may obtain
5 | // a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 | // License for the specific language governing permissions and limitations
13 | // under the License.
14 |
15 | package com
16 |
17 | import (
18 | "testing"
19 | )
20 |
21 | func TestHtml2JS(t *testing.T) {
22 | htm := "
Click me
\n\r"
23 | js := string(Html2JS([]byte(htm)))
24 | jsR := `Click me
\n`
25 | if js != jsR {
26 | t.Errorf("Html2JS:\n Expect => %s\n Got => %s\n", jsR, js)
27 | }
28 | }
29 |
30 | func BenchmarkHtml2JS(b *testing.B) {
31 | htm := "Click me
\n\r"
32 | for i := 0; i < b.N; i++ {
33 | Html2JS([]byte(htm))
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/math.go:
--------------------------------------------------------------------------------
1 | // Copyright 2014 com authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License"): you may
4 | // not use this file except in compliance with the License. You may obtain
5 | // a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 | // License for the specific language governing permissions and limitations
13 | // under the License.
14 |
15 | package com
16 |
17 | // PowInt is int type of math.Pow function.
18 | func PowInt(x int, y int) int {
19 | if y <= 0 {
20 | return 1
21 | } else {
22 | if y % 2 == 0 {
23 | sqrt := PowInt(x, y/2)
24 | return sqrt * sqrt
25 | } else {
26 | return PowInt(x, y-1) * x
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/math_test.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 com authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License"): you may
4 | // not use this file except in compliance with the License. You may obtain
5 | // a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 | // License for the specific language governing permissions and limitations
13 | // under the License.
14 |
15 | package com
16 |
17 | import (
18 | "math"
19 | "math/rand"
20 | "testing"
21 |
22 | . "github.com/smartystreets/goconvey/convey"
23 | )
24 |
25 | func Test_Pow(t *testing.T) {
26 | Convey("Power int", t, func() {
27 | for x := 0; x < 10; x++ {
28 | for y := 0; y < 8; y++ {
29 | result := PowInt(x, y)
30 | result_float := math.Pow(float64(x), float64(y))
31 | So(result, ShouldEqual, int(result_float))
32 | }
33 | }
34 | })
35 | }
36 |
37 | func BenchmarkPow(b *testing.B) {
38 | x := rand.Intn(100)
39 | y := rand.Intn(6)
40 | b.ResetTimer()
41 | for n := 0; n < b.N; n++ {
42 | PowInt(x, y)
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/testdata/SaveFile.txt:
--------------------------------------------------------------------------------
1 | TestSaveFile
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/testdata/SaveFileS.txt:
--------------------------------------------------------------------------------
1 | TestSaveFileS
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/testdata/sample_file.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codeskyblue/webcron/ddf4bcd3dbce0245f32c4c1e987867614eb419b3/Godeps/_workspace/src/github.com/Unknwon/com/testdata/sample_file.txt
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/testdata/statDir/SaveFile.txt:
--------------------------------------------------------------------------------
1 | TestSaveFile
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/testdata/statDir/SaveFileS.txt:
--------------------------------------------------------------------------------
1 | TestSaveFileS
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/testdata/statDir/sample_file.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codeskyblue/webcron/ddf4bcd3dbce0245f32c4c1e987867614eb419b3/Godeps/_workspace/src/github.com/Unknwon/com/testdata/statDir/sample_file.txt
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/testdata/statDir/secondLevel/SaveFile.txt:
--------------------------------------------------------------------------------
1 | TestSaveFile
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/testdata/statDir/secondLevel/SaveFileS.txt:
--------------------------------------------------------------------------------
1 | TestSaveFileS
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/testdata/statDir/secondLevel/sample_file.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codeskyblue/webcron/ddf4bcd3dbce0245f32c4c1e987867614eb419b3/Godeps/_workspace/src/github.com/Unknwon/com/testdata/statDir/secondLevel/sample_file.txt
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/com/url.go:
--------------------------------------------------------------------------------
1 | // Copyright 2013 com authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License"): you may
4 | // not use this file except in compliance with the License. You may obtain
5 | // a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 | // License for the specific language governing permissions and limitations
13 | // under the License.
14 |
15 | package com
16 |
17 | import (
18 | "encoding/base64"
19 | "net/url"
20 | )
21 |
22 | // url encode string, is + not %20
23 | func UrlEncode(str string) string {
24 | return url.QueryEscape(str)
25 | }
26 |
27 | // url decode string
28 | func UrlDecode(str string) (string, error) {
29 | return url.QueryUnescape(str)
30 | }
31 |
32 | // base64 encode
33 | func Base64Encode(str string) string {
34 | return base64.StdEncoding.EncodeToString([]byte(str))
35 | }
36 |
37 | // base64 decode
38 | func Base64Decode(str string) (string, error) {
39 | s, e := base64.StdEncoding.DecodeString(str)
40 | return string(s), e
41 | }
42 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/macaron/.gitignore:
--------------------------------------------------------------------------------
1 | macaron.sublime-project
2 | macaron.sublime-workspace
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/macaron/fixtures/basic/admin/index.tmpl:
--------------------------------------------------------------------------------
1 | Admin {{.}}
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/macaron/fixtures/basic/another_layout.tmpl:
--------------------------------------------------------------------------------
1 | another head{{ yield }}another foot
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/macaron/fixtures/basic/content.tmpl:
--------------------------------------------------------------------------------
1 | {{ . }}
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/macaron/fixtures/basic/current_layout.tmpl:
--------------------------------------------------------------------------------
1 | {{ current }} head{{ yield }}{{ current }} foot
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/macaron/fixtures/basic/delims.tmpl:
--------------------------------------------------------------------------------
1 | Hello {[{.}]}
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/macaron/fixtures/basic/hello.tmpl:
--------------------------------------------------------------------------------
1 | Hello {{.}}
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/macaron/fixtures/basic/hypertext.html:
--------------------------------------------------------------------------------
1 | Hypertext!
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/macaron/fixtures/basic/layout.tmpl:
--------------------------------------------------------------------------------
1 | head{{ yield }}foot
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/macaron/fixtures/basic2/hello.tmpl:
--------------------------------------------------------------------------------
1 | What's up, {{.}}
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/macaron/fixtures/basic2/hello2.tmpl:
--------------------------------------------------------------------------------
1 | Hello {{.Name}}
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/macaron/fixtures/custom_funcs/index.tmpl:
--------------------------------------------------------------------------------
1 | {{ myCustomFunc }}
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/macaron/inject/README.md:
--------------------------------------------------------------------------------
1 | inject
2 | ======
3 |
4 | Dependency injection for go
5 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/macaron/inject/inject.goconvey:
--------------------------------------------------------------------------------
1 | ignore
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/Unknwon/macaron/macaronlogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codeskyblue/webcron/ddf4bcd3dbce0245f32c4c1e987867614eb419b3/Godeps/_workspace/src/github.com/Unknwon/macaron/macaronlogo.png
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-sql-driver/mysql/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .DS_Store?
3 | ._*
4 | .Spotlight-V100
5 | .Trashes
6 | Icon?
7 | ehthumbs.db
8 | Thumbs.db
9 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-sql-driver/mysql/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | language: go
3 | go:
4 | - 1.2
5 | - 1.3
6 | - 1.4
7 | - tip
8 |
9 | before_script:
10 | - mysql -e 'create database gotest;'
11 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-sql-driver/mysql/AUTHORS:
--------------------------------------------------------------------------------
1 | # This is the official list of Go-MySQL-Driver authors for copyright purposes.
2 |
3 | # If you are submitting a patch, please add your name or the name of the
4 | # organization which holds the copyright to this list in alphabetical order.
5 |
6 | # Names should be added to this file as
7 | # Name
8 | # The email address is not required for organizations.
9 | # Please keep the list sorted.
10 |
11 |
12 | # Individual Persons
13 |
14 | Aaron Hopkins
15 | Arne Hormann
16 | Carlos Nieto
17 | Chris Moos
18 | DisposaBoy
19 | Frederick Mayle
20 | Gustavo Kristic
21 | Hanno Braun
22 | Henri Yandell
23 | INADA Naoki
24 | James Harr
25 | Jian Zhen
26 | Joshua Prunier
27 | Julien Schmidt
28 | Kamil Dziedzic
29 | Leonardo YongUk Kim
30 | Lucas Liu
31 | Luke Scott
32 | Michael Woolnough
33 | Nicola Peduzzi
34 | Runrioter Wung
35 | Soroush Pour
36 | Stan Putrya
37 | Xiaobing Jiang
38 | Xiuming Chen
39 |
40 | # Organizations
41 |
42 | Barracuda Networks, Inc.
43 | Google Inc.
44 | Stripe Inc.
45 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-sql-driver/mysql/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing Guidelines
2 |
3 | ## Reporting Issues
4 |
5 | Before creating a new Issue, please check first if a similar Issue [already exists](https://github.com/go-sql-driver/mysql/issues?state=open) or was [recently closed](https://github.com/go-sql-driver/mysql/issues?direction=desc&page=1&sort=updated&state=closed).
6 |
7 | Please provide the following minimum information:
8 | * Your Go-MySQL-Driver version (or git SHA)
9 | * Your Go version (run `go version` in your console)
10 | * A detailed issue description
11 | * Error Log if present
12 | * If possible, a short example
13 |
14 |
15 | ## Contributing Code
16 |
17 | By contributing to this project, you share your code under the Mozilla Public License 2, as specified in the LICENSE file.
18 | Don't forget to add yourself to the AUTHORS file.
19 |
20 | ### Pull Requests Checklist
21 |
22 | Please check the following points before submitting your pull request:
23 | - [x] Code compiles correctly
24 | - [x] Created tests, if possible
25 | - [x] All tests pass
26 | - [x] Extended the README / documentation, if necessary
27 | - [x] Added yourself to the AUTHORS file
28 |
29 | ### Code Review
30 |
31 | Everyone is invited to review and comment on pull requests.
32 | If it looks fine to you, comment with "LGTM" (Looks good to me).
33 |
34 | If changes are required, notice the reviewers with "PTAL" (Please take another look) after committing the fixes.
35 |
36 | Before merging the Pull Request, at least one [team member](https://github.com/go-sql-driver?tab=members) must have commented with "LGTM".
37 |
38 | ## Development Ideas
39 |
40 | If you are looking for ideas for code contributions, please check our [Development Ideas](https://github.com/go-sql-driver/mysql/wiki/Development-Ideas) Wiki page.
41 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-sql-driver/mysql/appengine.go:
--------------------------------------------------------------------------------
1 | // Go MySQL Driver - A MySQL-Driver for Go's database/sql package
2 | //
3 | // Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved.
4 | //
5 | // This Source Code Form is subject to the terms of the Mozilla Public
6 | // License, v. 2.0. If a copy of the MPL was not distributed with this file,
7 | // You can obtain one at http://mozilla.org/MPL/2.0/.
8 |
9 | // +build appengine
10 |
11 | package mysql
12 |
13 | import (
14 | "appengine/cloudsql"
15 | )
16 |
17 | func init() {
18 | RegisterDial("cloudsql", cloudsql.Dial)
19 | }
20 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-sql-driver/mysql/errors_test.go:
--------------------------------------------------------------------------------
1 | // Go MySQL Driver - A MySQL-Driver for Go's database/sql package
2 | //
3 | // Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved.
4 | //
5 | // This Source Code Form is subject to the terms of the Mozilla Public
6 | // License, v. 2.0. If a copy of the MPL was not distributed with this file,
7 | // You can obtain one at http://mozilla.org/MPL/2.0/.
8 |
9 | package mysql
10 |
11 | import (
12 | "bytes"
13 | "log"
14 | "testing"
15 | )
16 |
17 | func TestErrorsSetLogger(t *testing.T) {
18 | previous := errLog
19 | defer func() {
20 | errLog = previous
21 | }()
22 |
23 | // set up logger
24 | const expected = "prefix: test\n"
25 | buffer := bytes.NewBuffer(make([]byte, 0, 64))
26 | logger := log.New(buffer, "prefix: ", 0)
27 |
28 | // print
29 | SetLogger(logger)
30 | errLog.Print("test")
31 |
32 | // check result
33 | if actual := buffer.String(); actual != expected {
34 | t.Errorf("expected %q, got %q", expected, actual)
35 | }
36 | }
37 |
38 | func TestErrorsStrictIgnoreNotes(t *testing.T) {
39 | runTests(t, dsn+"&sql_notes=false", func(dbt *DBTest) {
40 | dbt.mustExec("DROP TABLE IF EXISTS does_not_exist")
41 | })
42 | }
43 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-sql-driver/mysql/result.go:
--------------------------------------------------------------------------------
1 | // Go MySQL Driver - A MySQL-Driver for Go's database/sql package
2 | //
3 | // Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved.
4 | //
5 | // This Source Code Form is subject to the terms of the Mozilla Public
6 | // License, v. 2.0. If a copy of the MPL was not distributed with this file,
7 | // You can obtain one at http://mozilla.org/MPL/2.0/.
8 |
9 | package mysql
10 |
11 | type mysqlResult struct {
12 | affectedRows int64
13 | insertId int64
14 | }
15 |
16 | func (res *mysqlResult) LastInsertId() (int64, error) {
17 | return res.insertId, nil
18 | }
19 |
20 | func (res *mysqlResult) RowsAffected() (int64, error) {
21 | return res.affectedRows, nil
22 | }
23 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-sql-driver/mysql/transaction.go:
--------------------------------------------------------------------------------
1 | // Go MySQL Driver - A MySQL-Driver for Go's database/sql package
2 | //
3 | // Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved.
4 | //
5 | // This Source Code Form is subject to the terms of the Mozilla Public
6 | // License, v. 2.0. If a copy of the MPL was not distributed with this file,
7 | // You can obtain one at http://mozilla.org/MPL/2.0/.
8 |
9 | package mysql
10 |
11 | type mysqlTx struct {
12 | mc *mysqlConn
13 | }
14 |
15 | func (tx *mysqlTx) Commit() (err error) {
16 | if tx.mc == nil || tx.mc.netConn == nil {
17 | return ErrInvalidConn
18 | }
19 | err = tx.mc.exec("COMMIT")
20 | tx.mc = nil
21 | return
22 | }
23 |
24 | func (tx *mysqlTx) Rollback() (err error) {
25 | if tx.mc == nil || tx.mc.netConn == nil {
26 | return ErrInvalidConn
27 | }
28 | err = tx.mc.exec("ROLLBACK")
29 | tx.mc = nil
30 | return
31 | }
32 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/core/.gitignore:
--------------------------------------------------------------------------------
1 | *.db
2 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/core/benchmark.sh:
--------------------------------------------------------------------------------
1 | go test -v -bench=. -run=XXX
2 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/core/converstion.go:
--------------------------------------------------------------------------------
1 | package core
2 |
3 | // Conversion is an interface. A type implements Conversion will according
4 | // the custom method to fill into database and retrieve from database.
5 | type Conversion interface {
6 | FromDB([]byte) error
7 | ToDB() ([]byte, error)
8 | }
9 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/core/driver.go:
--------------------------------------------------------------------------------
1 | package core
2 |
3 | type Driver interface {
4 | Parse(string, string) (*Uri, error)
5 | }
6 |
7 | var (
8 | drivers = map[string]Driver{}
9 | )
10 |
11 | func RegisterDriver(driverName string, driver Driver) {
12 | if driver == nil {
13 | panic("core: Register driver is nil")
14 | }
15 | if _, dup := drivers[driverName]; dup {
16 | panic("core: Register called twice for driver " + driverName)
17 | }
18 | drivers[driverName] = driver
19 | }
20 |
21 | func QueryDriver(driverName string) Driver {
22 | return drivers[driverName]
23 | }
24 |
25 | func RegisteredDriverSize() int {
26 | return len(drivers)
27 | }
28 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/core/error.go:
--------------------------------------------------------------------------------
1 | package core
2 |
3 | import "errors"
4 |
5 | var (
6 | ErrNoMapPointer = errors.New("mp should be a map's pointer")
7 | ErrNoStructPointer = errors.New("mp should be a map's pointer")
8 | //ErrNotExist = errors.New("Not exist")
9 | //ErrIgnore = errors.New("Ignore")
10 | )
11 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/core/filter.go:
--------------------------------------------------------------------------------
1 | package core
2 |
3 | import (
4 | "fmt"
5 | "strings"
6 | )
7 |
8 | // Filter is an interface to filter SQL
9 | type Filter interface {
10 | Do(sql string, dialect Dialect, table *Table) string
11 | }
12 |
13 | // QuoteFilter filter SQL replace ` to database's own quote character
14 | type QuoteFilter struct {
15 | }
16 |
17 | func (s *QuoteFilter) Do(sql string, dialect Dialect, table *Table) string {
18 | return strings.Replace(sql, "`", dialect.QuoteStr(), -1)
19 | }
20 |
21 | // IdFilter filter SQL replace (id) to primary key column name
22 | type IdFilter struct {
23 | }
24 |
25 | type Quoter struct {
26 | dialect Dialect
27 | }
28 |
29 | func NewQuoter(dialect Dialect) *Quoter {
30 | return &Quoter{dialect}
31 | }
32 |
33 | func (q *Quoter) Quote(content string) string {
34 | return q.dialect.QuoteStr() + content + q.dialect.QuoteStr()
35 | }
36 |
37 | func (i *IdFilter) Do(sql string, dialect Dialect, table *Table) string {
38 | quoter := NewQuoter(dialect)
39 | if table != nil && len(table.PrimaryKeys) == 1 {
40 | sql = strings.Replace(sql, "`(id)`", quoter.Quote(table.PrimaryKeys[0]), -1)
41 | sql = strings.Replace(sql, quoter.Quote("(id)"), quoter.Quote(table.PrimaryKeys[0]), -1)
42 | return strings.Replace(sql, "(id)", quoter.Quote(table.PrimaryKeys[0]), -1)
43 | }
44 | return sql
45 | }
46 |
47 | // SeqFilter filter SQL replace ?, ? ... to $1, $2 ...
48 | type SeqFilter struct {
49 | Prefix string
50 | Start int
51 | }
52 |
53 | func (s *SeqFilter) Do(sql string, dialect Dialect, table *Table) string {
54 | segs := strings.Split(sql, "?")
55 | size := len(segs)
56 | res := ""
57 | for i, c := range segs {
58 | if i < size-1 {
59 | res += c + fmt.Sprintf("%s%v", s.Prefix, i+s.Start)
60 | }
61 | }
62 | res += segs[size-1]
63 | return res
64 | }
65 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/core/ilogger.go:
--------------------------------------------------------------------------------
1 | package core
2 |
3 | type LogLevel int
4 |
5 | const (
6 | // !nashtsai! following level also match syslog.Priority value
7 | LOG_UNKNOWN LogLevel = iota - 2
8 | LOG_OFF LogLevel = iota - 1
9 | LOG_ERR LogLevel = iota + 3
10 | LOG_WARNING
11 | LOG_INFO LogLevel = iota + 6
12 | LOG_DEBUG
13 | )
14 |
15 | // logger interface
16 | type ILogger interface {
17 | Debug(v ...interface{}) (err error)
18 | Debugf(format string, v ...interface{}) (err error)
19 | Err(v ...interface{}) (err error)
20 | Errf(format string, v ...interface{}) (err error)
21 | Info(v ...interface{}) (err error)
22 | Infof(format string, v ...interface{}) (err error)
23 | Warning(v ...interface{}) (err error)
24 | Warningf(format string, v ...interface{}) (err error)
25 |
26 | Level() LogLevel
27 | SetLevel(l LogLevel) (err error)
28 | }
29 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/core/index.go:
--------------------------------------------------------------------------------
1 | package core
2 |
3 | import (
4 | "fmt"
5 | "sort"
6 | "strings"
7 | )
8 |
9 | const (
10 | IndexType = iota + 1
11 | UniqueType
12 | )
13 |
14 | // database index
15 | type Index struct {
16 | IsRegular bool
17 | Name string
18 | Type int
19 | Cols []string
20 | }
21 |
22 | func (index *Index) XName(tableName string) string {
23 | if !strings.HasPrefix(index.Name, "UQE_") &&
24 | !strings.HasPrefix(index.Name, "IDX_") {
25 | if index.Type == UniqueType {
26 | return fmt.Sprintf("UQE_%v_%v", tableName, index.Name)
27 | }
28 | return fmt.Sprintf("IDX_%v_%v", tableName, index.Name)
29 | }
30 | return index.Name
31 | }
32 |
33 | // add columns which will be composite index
34 | func (index *Index) AddColumn(cols ...string) {
35 | for _, col := range cols {
36 | index.Cols = append(index.Cols, col)
37 | }
38 | }
39 |
40 | func (index *Index) Equal(dst *Index) bool {
41 | if index.Type != dst.Type {
42 | return false
43 | }
44 | if len(index.Cols) != len(dst.Cols) {
45 | return false
46 | }
47 | sort.StringSlice(index.Cols).Sort()
48 | sort.StringSlice(dst.Cols).Sort()
49 |
50 | for i := 0; i < len(index.Cols); i++ {
51 | if index.Cols[i] != dst.Cols[i] {
52 | return false
53 | }
54 | }
55 | return true
56 | }
57 |
58 | // new an index
59 | func NewIndex(name string, indexType int) *Index {
60 | return &Index{true, name, indexType, make([]string, 0)}
61 | }
62 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/core/mapper_test.go:
--------------------------------------------------------------------------------
1 | package core
2 |
3 | import (
4 | "testing"
5 | )
6 |
7 | func TestGonicMapperFromObj(t *testing.T) {
8 | testCases := map[string]string{
9 | "HTTPLib": "http_lib",
10 | "id": "id",
11 | "ID": "id",
12 | "IDa": "i_da",
13 | "iDa": "i_da",
14 | "IDAa": "id_aa",
15 | "aID": "a_id",
16 | "aaID": "aa_id",
17 | "aaaID": "aaa_id",
18 | "MyREalFunkYLONgNAME": "my_r_eal_funk_ylo_ng_name",
19 | }
20 |
21 | for in, expected := range testCases {
22 | out := gonicCasedName(in)
23 | if out != expected {
24 | t.Errorf("Given %s, expected %s but got %s", in, expected, out)
25 | }
26 | }
27 | }
28 |
29 | func TestGonicMapperToObj(t *testing.T) {
30 | testCases := map[string]string{
31 | "http_lib": "HTTPLib",
32 | "id": "ID",
33 | "ida": "Ida",
34 | "id_aa": "IDAa",
35 | "aa_id": "AaID",
36 | "my_r_eal_funk_ylo_ng_name": "MyREalFunkYloNgName",
37 | }
38 |
39 | for in, expected := range testCases {
40 | out := LintGonicMapper.Table2Obj(in)
41 | if out != expected {
42 | t.Errorf("Given %s, expected %s but got %s", in, expected, out)
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/core/pk.go:
--------------------------------------------------------------------------------
1 | package core
2 |
3 | import (
4 | "bytes"
5 | "encoding/gob"
6 | )
7 |
8 | type PK []interface{}
9 |
10 | func NewPK(pks ...interface{}) *PK {
11 | p := PK(pks)
12 | return &p
13 | }
14 |
15 | func (p *PK) ToString() (string, error) {
16 | buf := new(bytes.Buffer)
17 | enc := gob.NewEncoder(buf)
18 | err := enc.Encode(*p)
19 | return buf.String(), err
20 | }
21 |
22 | func (p *PK) FromString(content string) error {
23 | dec := gob.NewDecoder(bytes.NewBufferString(content))
24 | err := dec.Decode(p)
25 | return err
26 | }
27 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/core/pk_test.go:
--------------------------------------------------------------------------------
1 | package core
2 |
3 | import (
4 | "fmt"
5 | "reflect"
6 | "testing"
7 | )
8 |
9 | func TestPK(t *testing.T) {
10 | p := NewPK(1, 3, "string")
11 | str, err := p.ToString()
12 | if err != nil {
13 | t.Error(err)
14 | }
15 | fmt.Println(str)
16 |
17 | s := &PK{}
18 | err = s.FromString(str)
19 | if err != nil {
20 | t.Error(err)
21 | }
22 | fmt.Println(s)
23 |
24 | if len(*p) != len(*s) {
25 | t.Fatal("p", *p, "should be equal", *s)
26 | }
27 |
28 | for i, ori := range *p {
29 | if ori != (*s)[i] {
30 | t.Fatal("ori", ori, reflect.ValueOf(ori), "should be equal", (*s)[i], reflect.ValueOf((*s)[i]))
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files, Static and Dynamic libs (Shared Objects)
2 | *.o
3 | *.a
4 | *.so
5 | *.db
6 |
7 | # Folders
8 | _obj
9 | _test
10 |
11 | # Architecture specific extensions/prefixes
12 | *.[568vq]
13 | [568vq].out
14 |
15 | *.cgo1.go
16 | *.cgo2.c
17 | _cgo_defun.c
18 | _cgo_gotypes.go
19 | _cgo_export.*
20 |
21 | _testmain.go
22 |
23 | *.exe
24 | vendor
25 |
26 | *.log
27 | .vendor
28 | temp_test.go
29 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "docs/manual-en-US"]
2 | path = docs/manual-en-US
3 | url = https://github.com/go-xorm/manual-en-US.git
4 | [submodule "docs/manual-zh-CN"]
5 | path = docs/manual-zh-CN
6 | url = https://github.com/go-xorm/manual-zh-CN.git
7 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/.gopmfile:
--------------------------------------------------------------------------------
1 | [target]
2 | path = github.com/go-xorm/xorm
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2013 - 2015
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | * Redistributions of source code must retain the above copyright notice, this
8 | list of conditions and the following disclaimer.
9 |
10 | * Redistributions in binary form must reproduce the above copyright notice,
11 | this list of conditions and the following disclaimer in the documentation
12 | and/or other materials provided with the distribution.
13 |
14 | * Neither the name of the {organization} nor the names of its
15 | contributors may be used to endorse or promote products derived from
16 | this software without specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/VERSION:
--------------------------------------------------------------------------------
1 | xorm v0.4.3.0824
2 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/docs/README.md:
--------------------------------------------------------------------------------
1 | # Xorm Manuals
2 |
3 | Please visit [xorm.io/docs](http://xorm.io/docs)
4 |
5 | # Contributing
6 |
7 | If you have any suggestion about docs, please pull request.
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/docs/images/cache_design.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codeskyblue/webcron/ddf4bcd3dbce0245f32c4c1e987867614eb419b3/Godeps/_workspace/src/github.com/go-xorm/xorm/docs/images/cache_design.png
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/error.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Xorm Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package xorm
6 |
7 | import (
8 | "errors"
9 | )
10 |
11 | var (
12 | ErrParamsType error = errors.New("Params type error")
13 | ErrTableNotFound error = errors.New("Not found table")
14 | ErrUnSupportedType error = errors.New("Unsupported type error")
15 | ErrNotExist error = errors.New("Not exist error")
16 | ErrCacheFailed error = errors.New("Cache failed")
17 | ErrNeedDeletedCond error = errors.New("Delete need at least one condition")
18 | ErrNotImplemented error = errors.New("Not implemented.")
19 | )
20 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/examples/conversion.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "errors"
5 | "fmt"
6 | "os"
7 |
8 | "github.com/go-xorm/xorm"
9 | _ "github.com/mattn/go-sqlite3"
10 | )
11 |
12 | type Status struct {
13 | Name string
14 | Color string
15 | }
16 |
17 | var (
18 | Registed Status = Status{"Registed", "white"}
19 | Approved Status = Status{"Approved", "green"}
20 | Removed Status = Status{"Removed", "red"}
21 | Statuses map[string]Status = map[string]Status{
22 | Registed.Name: Registed,
23 | Approved.Name: Approved,
24 | Removed.Name: Removed,
25 | }
26 | )
27 |
28 | func (s *Status) FromDB(bytes []byte) error {
29 | if r, ok := Statuses[string(bytes)]; ok {
30 | *s = r
31 | return nil
32 | } else {
33 | return errors.New("no this data")
34 | }
35 | }
36 |
37 | func (s *Status) ToDB() ([]byte, error) {
38 | return []byte(s.Name), nil
39 | }
40 |
41 | type User struct {
42 | Id int64
43 | Name string
44 | Status Status `xorm:"varchar(40)"`
45 | }
46 |
47 | func main() {
48 | f := "conversion.db"
49 | os.Remove(f)
50 |
51 | Orm, err := xorm.NewEngine("sqlite3", f)
52 | if err != nil {
53 | fmt.Println(err)
54 | return
55 | }
56 | Orm.ShowSQL = true
57 | err = Orm.CreateTables(&User{})
58 | if err != nil {
59 | fmt.Println(err)
60 | return
61 | }
62 |
63 | _, err = Orm.Insert(&User{1, "xlw", Registed})
64 | if err != nil {
65 | fmt.Println(err)
66 | return
67 | }
68 |
69 | users := make([]User, 0)
70 | err = Orm.Find(&users)
71 | if err != nil {
72 | fmt.Println(err)
73 | return
74 | }
75 |
76 | fmt.Println(users)
77 | }
78 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/examples/derive.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "fmt"
5 | "os"
6 |
7 | "github.com/go-xorm/xorm"
8 | _ "github.com/mattn/go-sqlite3"
9 | )
10 |
11 | type User struct {
12 | Id int64
13 | Name string
14 | }
15 |
16 | type LoginInfo struct {
17 | Id int64
18 | IP string
19 | UserId int64
20 | }
21 |
22 | type LoginInfo1 struct {
23 | LoginInfo `xorm:"extends"`
24 | UserName string
25 | }
26 |
27 | func main() {
28 | f := "derive.db"
29 | os.Remove(f)
30 |
31 | Orm, err := xorm.NewEngine("sqlite3", f)
32 | if err != nil {
33 | fmt.Println(err)
34 | return
35 | }
36 | defer Orm.Close()
37 | Orm.ShowSQL = true
38 | err = Orm.CreateTables(&User{}, &LoginInfo{})
39 | if err != nil {
40 | fmt.Println(err)
41 | return
42 | }
43 |
44 | _, err = Orm.Insert(&User{1, "xlw"}, &LoginInfo{1, "127.0.0.1", 1})
45 | if err != nil {
46 | fmt.Println(err)
47 | return
48 | }
49 |
50 | info := LoginInfo{}
51 | _, err = Orm.Id(1).Get(&info)
52 | if err != nil {
53 | fmt.Println(err)
54 | return
55 | }
56 | fmt.Println(info)
57 |
58 | infos := make([]LoginInfo1, 0)
59 | err = Orm.Sql(`select *, (select name from user where id = login_info.user_id) as user_name from
60 | login_info limit 10`).Find(&infos)
61 | if err != nil {
62 | fmt.Println(err)
63 | return
64 | }
65 |
66 | fmt.Println(infos)
67 | }
68 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/examples/singlemapping.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "fmt"
5 | "os"
6 |
7 | "github.com/go-xorm/xorm"
8 | _ "github.com/mattn/go-sqlite3"
9 | )
10 |
11 | type User struct {
12 | Id int64
13 | Name string
14 | }
15 |
16 | type LoginInfo struct {
17 | Id int64
18 | IP string
19 | UserId int64
20 | // timestamp should be updated by database, so only allow get from db
21 | TimeStamp string `xorm:"<-"`
22 | // assume
23 | Nonuse int `xorm:"->"`
24 | }
25 |
26 | func main() {
27 | f := "singleMapping.db"
28 | os.Remove(f)
29 |
30 | Orm, err := xorm.NewEngine("sqlite3", f)
31 | if err != nil {
32 | fmt.Println(err)
33 | return
34 | }
35 | Orm.ShowSQL = true
36 | err = Orm.CreateTables(&User{}, &LoginInfo{})
37 | if err != nil {
38 | fmt.Println(err)
39 | return
40 | }
41 |
42 | _, err = Orm.Insert(&User{1, "xlw"}, &LoginInfo{1, "127.0.0.1", 1, "", 23})
43 | if err != nil {
44 | fmt.Println(err)
45 | return
46 | }
47 |
48 | info := LoginInfo{}
49 | _, err = Orm.Id(1).Get(&info)
50 | if err != nil {
51 | fmt.Println(err)
52 | return
53 | }
54 | fmt.Println(info)
55 | }
56 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/examples/tables.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "fmt"
5 | "os"
6 |
7 | "github.com/go-xorm/xorm"
8 | _ "github.com/mattn/go-sqlite3"
9 | )
10 |
11 | func main() {
12 | if len(os.Args) < 2 {
13 | fmt.Println("need db path")
14 | return
15 | }
16 |
17 | orm, err := xorm.NewEngine("sqlite3", os.Args[1])
18 | if err != nil {
19 | fmt.Println(err)
20 | return
21 | }
22 | defer orm.Close()
23 | orm.ShowSQL = true
24 |
25 | tables, err := orm.DBMetas()
26 | if err != nil {
27 | fmt.Println(err)
28 | return
29 | }
30 |
31 | for _, table := range tables {
32 | fmt.Println(table.Name)
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/gen_reserved.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | if [ -f $1 ];then
3 | cat $1| awk '{printf("\""$1"\":true,\n")}'
4 | else
5 | echo "argument $1 if not a file!"
6 | fi
7 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/goracle_driver.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Xorm Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package xorm
6 |
7 | import (
8 | "errors"
9 | "regexp"
10 |
11 | "github.com/go-xorm/core"
12 | )
13 |
14 | // func init() {
15 | // core.RegisterDriver("goracle", &goracleDriver{})
16 | // }
17 |
18 | type goracleDriver struct {
19 | }
20 |
21 | func (cfg *goracleDriver) Parse(driverName, dataSourceName string) (*core.Uri, error) {
22 | db := &core.Uri{DbType: core.ORACLE}
23 | dsnPattern := regexp.MustCompile(
24 | `^(?:(?P.*?)(?::(?P.*))?@)?` + // [user[:password]@]
25 | `(?:(?P[^\(]*)(?:\((?P[^\)]*)\))?)?` + // [net[(addr)]]
26 | `\/(?P.*?)` + // /dbname
27 | `(?:\?(?P[^\?]*))?$`) // [?param1=value1¶mN=valueN]
28 | matches := dsnPattern.FindStringSubmatch(dataSourceName)
29 | //tlsConfigRegister := make(map[string]*tls.Config)
30 | names := dsnPattern.SubexpNames()
31 |
32 | for i, match := range matches {
33 | switch names[i] {
34 | case "dbname":
35 | db.DbName = match
36 | }
37 | }
38 | if db.DbName == "" {
39 | return nil, errors.New("dbname is empty")
40 | }
41 | return db, nil
42 | }
43 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/memroy_store.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Xorm Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package xorm
6 |
7 | import (
8 | "sync"
9 |
10 | "github.com/go-xorm/core"
11 | )
12 |
13 | var _ core.CacheStore = NewMemoryStore()
14 |
15 | // memory store
16 | type MemoryStore struct {
17 | store map[interface{}]interface{}
18 | mutex sync.RWMutex
19 | }
20 |
21 | func NewMemoryStore() *MemoryStore {
22 | return &MemoryStore{store: make(map[interface{}]interface{})}
23 | }
24 |
25 | func (s *MemoryStore) Put(key string, value interface{}) error {
26 | s.mutex.Lock()
27 | defer s.mutex.Unlock()
28 | s.store[key] = value
29 | return nil
30 | }
31 |
32 | func (s *MemoryStore) Get(key string) (interface{}, error) {
33 | s.mutex.RLock()
34 | defer s.mutex.RUnlock()
35 | if v, ok := s.store[key]; ok {
36 | return v, nil
37 | }
38 |
39 | return nil, ErrNotExist
40 | }
41 |
42 | func (s *MemoryStore) Del(key string) error {
43 | s.mutex.Lock()
44 | defer s.mutex.Unlock()
45 | delete(s.store, key)
46 | return nil
47 | }
48 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/mymysql_driver.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Xorm Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package xorm
6 |
7 | import (
8 | "errors"
9 | "strings"
10 | "time"
11 |
12 | "github.com/go-xorm/core"
13 | )
14 |
15 | // func init() {
16 | // core.RegisterDriver("mymysql", &mymysqlDriver{})
17 | // }
18 |
19 | type mymysqlDriver struct {
20 | }
21 |
22 | func (p *mymysqlDriver) Parse(driverName, dataSourceName string) (*core.Uri, error) {
23 | db := &core.Uri{DbType: core.MYSQL}
24 |
25 | pd := strings.SplitN(dataSourceName, "*", 2)
26 | if len(pd) == 2 {
27 | // Parse protocol part of URI
28 | p := strings.SplitN(pd[0], ":", 2)
29 | if len(p) != 2 {
30 | return nil, errors.New("Wrong protocol part of URI")
31 | }
32 | db.Proto = p[0]
33 | options := strings.Split(p[1], ",")
34 | db.Raddr = options[0]
35 | for _, o := range options[1:] {
36 | kv := strings.SplitN(o, "=", 2)
37 | var k, v string
38 | if len(kv) == 2 {
39 | k, v = kv[0], kv[1]
40 | } else {
41 | k, v = o, "true"
42 | }
43 | switch k {
44 | case "laddr":
45 | db.Laddr = v
46 | case "timeout":
47 | to, err := time.ParseDuration(v)
48 | if err != nil {
49 | return nil, err
50 | }
51 | db.Timeout = to
52 | default:
53 | return nil, errors.New("Unknown option: " + k)
54 | }
55 | }
56 | // Remove protocol part
57 | pd = pd[1:]
58 | }
59 | // Parse database part of URI
60 | dup := strings.SplitN(pd[0], "/", 3)
61 | if len(dup) != 3 {
62 | return nil, errors.New("Wrong database part of URI")
63 | }
64 | db.DbName = dup[0]
65 | db.User = dup[1]
66 | db.Passwd = dup[2]
67 |
68 | return db, nil
69 | }
70 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/mysql_driver.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Xorm Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package xorm
6 |
7 | import (
8 | "regexp"
9 | "strings"
10 |
11 | "github.com/go-xorm/core"
12 | )
13 |
14 | // func init() {
15 | // core.RegisterDriver("mysql", &mysqlDriver{})
16 | // }
17 |
18 | type mysqlDriver struct {
19 | }
20 |
21 | func (p *mysqlDriver) Parse(driverName, dataSourceName string) (*core.Uri, error) {
22 | dsnPattern := regexp.MustCompile(
23 | `^(?:(?P.*?)(?::(?P.*))?@)?` + // [user[:password]@]
24 | `(?:(?P[^\(]*)(?:\((?P[^\)]*)\))?)?` + // [net[(addr)]]
25 | `\/(?P.*?)` + // /dbname
26 | `(?:\?(?P[^\?]*))?$`) // [?param1=value1¶mN=valueN]
27 | matches := dsnPattern.FindStringSubmatch(dataSourceName)
28 | //tlsConfigRegister := make(map[string]*tls.Config)
29 | names := dsnPattern.SubexpNames()
30 |
31 | uri := &core.Uri{DbType: core.MYSQL}
32 |
33 | for i, match := range matches {
34 | switch names[i] {
35 | case "dbname":
36 | uri.DbName = match
37 | case "params":
38 | if len(match) > 0 {
39 | kvs := strings.Split(match, "&")
40 | for _, kv := range kvs {
41 | splits := strings.Split(kv, "=")
42 | if len(splits) == 2 {
43 | switch splits[0] {
44 | case "charset":
45 | uri.Charset = splits[1]
46 | }
47 | }
48 | }
49 | }
50 |
51 | }
52 | }
53 | return uri, nil
54 | }
55 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/oci8_driver.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Xorm Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package xorm
6 |
7 | import (
8 | "errors"
9 | "regexp"
10 |
11 | "github.com/go-xorm/core"
12 | )
13 |
14 | // func init() {
15 | // core.RegisterDriver("oci8", &oci8Driver{})
16 | // }
17 |
18 | type oci8Driver struct {
19 | }
20 |
21 | //dataSourceName=user/password@ipv4:port/dbname
22 | //dataSourceName=user/password@[ipv6]:port/dbname
23 | func (p *oci8Driver) Parse(driverName, dataSourceName string) (*core.Uri, error) {
24 | db := &core.Uri{DbType: core.ORACLE}
25 | dsnPattern := regexp.MustCompile(
26 | `^(?P.*)\/(?P.*)@` + // user:password@
27 | `(?P.*)` + // ip:port
28 | `\/(?P.*)`) // dbname
29 | matches := dsnPattern.FindStringSubmatch(dataSourceName)
30 | names := dsnPattern.SubexpNames()
31 | for i, match := range matches {
32 | switch names[i] {
33 | case "dbname":
34 | db.DbName = match
35 | }
36 | }
37 | if db.DbName == "" {
38 | return nil, errors.New("dbname is empty")
39 | }
40 | return db, nil
41 | }
42 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/odbc_driver.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Xorm Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package xorm
6 |
7 | import (
8 | "errors"
9 | "strings"
10 |
11 | "github.com/go-xorm/core"
12 | )
13 |
14 | // func init() {
15 | // core.RegisterDriver("odbc", &odbcDriver{})
16 | // }
17 |
18 | type odbcDriver struct {
19 | }
20 |
21 | func (p *odbcDriver) Parse(driverName, dataSourceName string) (*core.Uri, error) {
22 | kv := strings.Split(dataSourceName, ";")
23 | var dbName string
24 |
25 | for _, c := range kv {
26 | vv := strings.Split(strings.TrimSpace(c), "=")
27 | if len(vv) == 2 {
28 | switch strings.ToLower(vv[0]) {
29 | case "database":
30 | dbName = vv[1]
31 | }
32 | }
33 | }
34 | if dbName == "" {
35 | return nil, errors.New("no db name provided")
36 | }
37 | return &core.Uri{DbName: dbName, DbType: core.MSSQL}, nil
38 | }
39 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/processors.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Xorm Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package xorm
6 |
7 | // Executed before an object is initially persisted to the database
8 | type BeforeInsertProcessor interface {
9 | BeforeInsert()
10 | }
11 |
12 | // Executed before an object is updated
13 | type BeforeUpdateProcessor interface {
14 | BeforeUpdate()
15 | }
16 |
17 | // Executed before an object is deleted
18 | type BeforeDeleteProcessor interface {
19 | BeforeDelete()
20 | }
21 |
22 | type BeforeSetProcessor interface {
23 | BeforeSet(string, Cell)
24 | }
25 |
26 | type AfterSetProcessor interface {
27 | AfterSet(string, Cell)
28 | }
29 |
30 | // !nashtsai! TODO enable BeforeValidateProcessor when xorm start to support validations
31 | //// Executed before an object is validated
32 | //type BeforeValidateProcessor interface {
33 | // BeforeValidate()
34 | //}
35 | // --
36 |
37 | // Executed after an object is persisted to the database
38 | type AfterInsertProcessor interface {
39 | AfterInsert()
40 | }
41 |
42 | // Executed after an object has been updated
43 | type AfterUpdateProcessor interface {
44 | AfterUpdate()
45 | }
46 |
47 | // Executed after an object has been deleted
48 | type AfterDeleteProcessor interface {
49 | AfterDelete()
50 | }
51 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/go-xorm/xorm/sqlite3_driver.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The Xorm Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package xorm
6 |
7 | import (
8 | "github.com/go-xorm/core"
9 | )
10 |
11 | // func init() {
12 | // core.RegisterDriver("sqlite3", &sqlite3Driver{})
13 | // }
14 |
15 | type sqlite3Driver struct {
16 | }
17 |
18 | func (p *sqlite3Driver) Parse(driverName, dataSourceName string) (*core.Uri, error) {
19 | return &core.Uri{DbType: core.SQLITE, DbName: dataSourceName}, nil
20 | }
21 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/gorilla/websocket/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files, Static and Dynamic libs (Shared Objects)
2 | *.o
3 | *.a
4 | *.so
5 |
6 | # Folders
7 | _obj
8 | _test
9 |
10 | # Architecture specific extensions/prefixes
11 | *.[568vq]
12 | [568vq].out
13 |
14 | *.cgo1.go
15 | *.cgo2.c
16 | _cgo_defun.c
17 | _cgo_gotypes.go
18 | _cgo_export.*
19 |
20 | _testmain.go
21 |
22 | *.exe
23 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/gorilla/websocket/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 |
3 | go:
4 | - 1.1
5 | - 1.2
6 | - tip
7 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/gorilla/websocket/AUTHORS:
--------------------------------------------------------------------------------
1 | # This is the official list of Gorilla WebSocket authors for copyright
2 | # purposes.
3 | #
4 | # Please keep the list sorted.
5 |
6 | Gary Burd
7 | Joachim Bauch
8 |
9 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/gorilla/websocket/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2013 The Gorilla WebSocket Authors. All rights reserved.
2 |
3 | Redistribution and use in source and binary forms, with or without
4 | modification, are permitted provided that the following conditions are met:
5 |
6 | Redistributions of source code must retain the above copyright notice, this
7 | list of conditions and the following disclaimer.
8 |
9 | Redistributions in binary form must reproduce the above copyright notice,
10 | this list of conditions and the following disclaimer in the documentation
11 | and/or other materials provided with the distribution.
12 |
13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
14 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
17 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
20 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
21 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/gorilla/websocket/bench_test.go:
--------------------------------------------------------------------------------
1 | // Copyright 2014 The Gorilla WebSocket Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package websocket
6 |
7 | import (
8 | "testing"
9 | )
10 |
11 | func BenchmarkMaskBytes(b *testing.B) {
12 | var key [4]byte
13 | data := make([]byte, 1024)
14 | pos := 0
15 | for i := 0; i < b.N; i++ {
16 | pos = maskBytes(key, pos, data)
17 | }
18 | b.SetBytes(int64(len(data)))
19 | }
20 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/gorilla/websocket/examples/autobahn/README.md:
--------------------------------------------------------------------------------
1 | # Test Server
2 |
3 | This package contains a server for the [Autobahn WebSockets Test Suite](http://autobahn.ws/testsuite).
4 |
5 | To test the server, run
6 |
7 | go run server.go
8 |
9 | and start the client test driver
10 |
11 | wstest -m fuzzingclient -s fuzzingclient.json
12 |
13 | When the client completes, it writes a report to reports/clients/index.html.
14 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/gorilla/websocket/examples/autobahn/fuzzingclient.json:
--------------------------------------------------------------------------------
1 |
2 | {
3 | "options": {"failByDrop": false},
4 | "outdir": "./reports/clients",
5 | "servers": [
6 | {"agent": "ReadAllWriteMessage", "url": "ws://localhost:9000/m", "options": {"version": 18}},
7 | {"agent": "ReadAllWrite", "url": "ws://localhost:9000/r", "options": {"version": 18}},
8 | {"agent": "CopyFull", "url": "ws://localhost:9000/f", "options": {"version": 18}},
9 | {"agent": "CopyWriterOnly", "url": "ws://localhost:9000/c", "options": {"version": 18}}
10 | ],
11 | "cases": ["*"],
12 | "exclude-cases": [],
13 | "exclude-agent-cases": {}
14 | }
15 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/gorilla/websocket/examples/chat/README.md:
--------------------------------------------------------------------------------
1 | # Chat Example
2 |
3 | This application shows how to use use the
4 | [websocket](https://github.com/gorilla/websocket) package and
5 | [jQuery](http://jquery.com) to implement a simple web chat application.
6 |
7 | ## Running the example
8 |
9 | The example requires a working Go development environment. The [Getting
10 | Started](http://golang.org/doc/install) page describes how to install the
11 | development environment.
12 |
13 | Once you have Go up and running, you can download, build and run the example
14 | using the following commands.
15 |
16 | $ go get github.com/gorilla/websocket
17 | $ cd `go list -f '{{.Dir}}' github.com/gorilla/websocket/examples/chat`
18 | $ go run *.go
19 |
20 | To use the chat example, open http://localhost:8080/ in your browser.
21 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/gorilla/websocket/examples/chat/hub.go:
--------------------------------------------------------------------------------
1 | // Copyright 2013 The Gorilla WebSocket Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package main
6 |
7 | // hub maintains the set of active connections and broadcasts messages to the
8 | // connections.
9 | type hub struct {
10 | // Registered connections.
11 | connections map[*connection]bool
12 |
13 | // Inbound messages from the connections.
14 | broadcast chan []byte
15 |
16 | // Register requests from the connections.
17 | register chan *connection
18 |
19 | // Unregister requests from connections.
20 | unregister chan *connection
21 | }
22 |
23 | var h = hub{
24 | broadcast: make(chan []byte),
25 | register: make(chan *connection),
26 | unregister: make(chan *connection),
27 | connections: make(map[*connection]bool),
28 | }
29 |
30 | func (h *hub) run() {
31 | for {
32 | select {
33 | case c := <-h.register:
34 | h.connections[c] = true
35 | case c := <-h.unregister:
36 | if _, ok := h.connections[c]; ok {
37 | delete(h.connections, c)
38 | close(c.send)
39 | }
40 | case m := <-h.broadcast:
41 | for c := range h.connections {
42 | select {
43 | case c.send <- m:
44 | default:
45 | close(c.send)
46 | delete(h.connections, c)
47 | }
48 | }
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/gorilla/websocket/examples/chat/main.go:
--------------------------------------------------------------------------------
1 | // Copyright 2013 The Gorilla WebSocket Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package main
6 |
7 | import (
8 | "flag"
9 | "log"
10 | "net/http"
11 | "text/template"
12 | )
13 |
14 | var addr = flag.String("addr", ":8080", "http service address")
15 | var homeTempl = template.Must(template.ParseFiles("home.html"))
16 |
17 | func serveHome(w http.ResponseWriter, r *http.Request) {
18 | if r.URL.Path != "/" {
19 | http.Error(w, "Not found", 404)
20 | return
21 | }
22 | if r.Method != "GET" {
23 | http.Error(w, "Method not allowed", 405)
24 | return
25 | }
26 | w.Header().Set("Content-Type", "text/html; charset=utf-8")
27 | homeTempl.Execute(w, r.Host)
28 | }
29 |
30 | func main() {
31 | flag.Parse()
32 | go h.run()
33 | http.HandleFunc("/", serveHome)
34 | http.HandleFunc("/ws", serveWs)
35 | err := http.ListenAndServe(*addr, nil)
36 | if err != nil {
37 | log.Fatal("ListenAndServe: ", err)
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/gorilla/websocket/examples/filewatch/README.md:
--------------------------------------------------------------------------------
1 | # File Watch example.
2 |
3 | This example sends a file to the browser client for display whenever the file is modified.
4 |
5 | $ go get github.com/gorilla/websocket
6 | $ cd `go list -f '{{.Dir}}' github.com/gorilla/websocket/examples/filewatch`
7 | $ go run main.go
8 | # Open http://localhost:8080/ .
9 | # Modify the file to see it update in the browser.
10 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/gorilla/websocket/json.go:
--------------------------------------------------------------------------------
1 | // Copyright 2013 The Gorilla WebSocket Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package websocket
6 |
7 | import (
8 | "encoding/json"
9 | "io"
10 | )
11 |
12 | // WriteJSON is deprecated, use c.WriteJSON instead.
13 | func WriteJSON(c *Conn, v interface{}) error {
14 | return c.WriteJSON(v)
15 | }
16 |
17 | // WriteJSON writes the JSON encoding of v to the connection.
18 | //
19 | // See the documentation for encoding/json Marshal for details about the
20 | // conversion of Go values to JSON.
21 | func (c *Conn) WriteJSON(v interface{}) error {
22 | w, err := c.NextWriter(TextMessage)
23 | if err != nil {
24 | return err
25 | }
26 | err1 := json.NewEncoder(w).Encode(v)
27 | err2 := w.Close()
28 | if err1 != nil {
29 | return err1
30 | }
31 | return err2
32 | }
33 |
34 | // ReadJSON is deprecated, use c.ReadJSON instead.
35 | func ReadJSON(c *Conn, v interface{}) error {
36 | return c.ReadJSON(v)
37 | }
38 |
39 | // ReadJSON reads the next JSON-encoded message from the connection and stores
40 | // it in the value pointed to by v.
41 | //
42 | // See the documentation for the encoding/json Unmarshal function for details
43 | // about the conversion of JSON to a Go value.
44 | func (c *Conn) ReadJSON(v interface{}) error {
45 | _, r, err := c.NextReader()
46 | if err != nil {
47 | return err
48 | }
49 | err = json.NewDecoder(r).Decode(v)
50 | if err == io.EOF {
51 | // One value is expected in the message.
52 | err = io.ErrUnexpectedEOF
53 | }
54 | return err
55 | }
56 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/gorilla/websocket/server_test.go:
--------------------------------------------------------------------------------
1 | // Copyright 2013 The Gorilla WebSocket Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package websocket
6 |
7 | import (
8 | "net/http"
9 | "reflect"
10 | "testing"
11 | )
12 |
13 | var subprotocolTests = []struct {
14 | h string
15 | protocols []string
16 | }{
17 | {"", nil},
18 | {"foo", []string{"foo"}},
19 | {"foo,bar", []string{"foo", "bar"}},
20 | {"foo, bar", []string{"foo", "bar"}},
21 | {" foo, bar", []string{"foo", "bar"}},
22 | {" foo, bar ", []string{"foo", "bar"}},
23 | }
24 |
25 | func TestSubprotocols(t *testing.T) {
26 | for _, st := range subprotocolTests {
27 | r := http.Request{Header: http.Header{"Sec-Websocket-Protocol": {st.h}}}
28 | protocols := Subprotocols(&r)
29 | if !reflect.DeepEqual(st.protocols, protocols) {
30 | t.Errorf("SubProtocols(%q) returned %#v, want %#v", st.h, protocols, st.protocols)
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/gorilla/websocket/util.go:
--------------------------------------------------------------------------------
1 | // Copyright 2013 The Gorilla WebSocket Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package websocket
6 |
7 | import (
8 | "crypto/rand"
9 | "crypto/sha1"
10 | "encoding/base64"
11 | "io"
12 | "net/http"
13 | "strings"
14 | )
15 |
16 | // tokenListContainsValue returns true if the 1#token header with the given
17 | // name contains token.
18 | func tokenListContainsValue(header http.Header, name string, value string) bool {
19 | for _, v := range header[name] {
20 | for _, s := range strings.Split(v, ",") {
21 | if strings.EqualFold(value, strings.TrimSpace(s)) {
22 | return true
23 | }
24 | }
25 | }
26 | return false
27 | }
28 |
29 | var keyGUID = []byte("258EAFA5-E914-47DA-95CA-C5AB0DC85B11")
30 |
31 | func computeAcceptKey(challengeKey string) string {
32 | h := sha1.New()
33 | h.Write([]byte(challengeKey))
34 | h.Write(keyGUID)
35 | return base64.StdEncoding.EncodeToString(h.Sum(nil))
36 | }
37 |
38 | func generateChallengeKey() (string, error) {
39 | p := make([]byte, 16)
40 | if _, err := io.ReadFull(rand.Reader, p); err != nil {
41 | return "", err
42 | }
43 | return base64.StdEncoding.EncodeToString(p), nil
44 | }
45 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/gorilla/websocket/util_test.go:
--------------------------------------------------------------------------------
1 | // Copyright 2014 The Gorilla WebSocket Authors. All rights reserved.
2 | // Use of this source code is governed by a BSD-style
3 | // license that can be found in the LICENSE file.
4 |
5 | package websocket
6 |
7 | import (
8 | "net/http"
9 | "testing"
10 | )
11 |
12 | var tokenListContainsValueTests = []struct {
13 | value string
14 | ok bool
15 | }{
16 | {"WebSocket", true},
17 | {"WEBSOCKET", true},
18 | {"websocket", true},
19 | {"websockets", false},
20 | {"x websocket", false},
21 | {"websocket x", false},
22 | {"other,websocket,more", true},
23 | {"other, websocket, more", true},
24 | }
25 |
26 | func TestTokenListContainsValue(t *testing.T) {
27 | for _, tt := range tokenListContainsValueTests {
28 | h := http.Header{"Upgrade": {tt.value}}
29 | ok := tokenListContainsValue(h, "Upgrade", "websocket")
30 | if ok != tt.ok {
31 | t.Errorf("tokenListContainsValue(h, n, %q) = %v, want %v", tt.value, ok, tt.ok)
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/mattn/go-sqlite3/.gitignore:
--------------------------------------------------------------------------------
1 | *.db
2 | *.exe
3 | *.dll
4 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/mattn/go-sqlite3/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 | go:
3 | - tip
4 | before_install:
5 | - go get github.com/axw/gocov/gocov
6 | - go get github.com/mattn/goveralls
7 | - go get golang.org/x/tools/cmd/cover
8 | script:
9 | - $HOME/gopath/bin/goveralls -repotoken 3qJVUE0iQwqnCbmNcDsjYu1nh4J4KIFXx
10 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/mattn/go-sqlite3/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Yasuhiro Matsumoto
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 all
13 | 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 THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/mattn/go-sqlite3/sqlite3-binding.c:
--------------------------------------------------------------------------------
1 | #ifndef USE_LIBSQLITE3
2 | # include "code/sqlite3-binding.c"
3 | #endif
4 |
5 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/mattn/go-sqlite3/sqlite3-binding.h:
--------------------------------------------------------------------------------
1 | #ifndef USE_LIBSQLITE3
2 | #include "code/sqlite3-binding.h"
3 | #else
4 | #include
5 | #endif
6 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/mattn/go-sqlite3/sqlite3_icu.go:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2014 Yasuhiro Matsumoto .
2 | //
3 | // Use of this source code is governed by an MIT-style
4 | // license that can be found in the LICENSE file.
5 | // +build icu
6 |
7 | package sqlite3
8 |
9 | /*
10 | #cgo LDFLAGS: -licuuc -licui18n
11 | #cgo CFLAGS: -DSQLITE_ENABLE_ICU
12 | */
13 | import "C"
14 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/mattn/go-sqlite3/sqlite3_libsqlite3.go:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2014 Yasuhiro Matsumoto .
2 | //
3 | // Use of this source code is governed by an MIT-style
4 | // license that can be found in the LICENSE file.
5 | // +build libsqlite3
6 |
7 | package sqlite3
8 |
9 | /*
10 | #cgo CFLAGS: -DUSE_LIBSQLITE3
11 | #cgo LDFLAGS: -lsqlite3
12 | */
13 | import "C"
14 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/mattn/go-sqlite3/sqlite3_other.go:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2014 Yasuhiro Matsumoto .
2 | //
3 | // Use of this source code is governed by an MIT-style
4 | // license that can be found in the LICENSE file.
5 | // +build !windows
6 |
7 | package sqlite3
8 |
9 | /*
10 | #cgo CFLAGS: -I.
11 | #cgo linux LDFLAGS: -ldl
12 | */
13 | import "C"
14 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/mattn/go-sqlite3/sqlite3_windows.go:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2014 Yasuhiro Matsumoto .
2 | //
3 | // Use of this source code is governed by an MIT-style
4 | // license that can be found in the LICENSE file.
5 | // +build windows
6 |
7 | package sqlite3
8 |
9 | /*
10 | #cgo CFLAGS: -I. -fno-stack-check -fno-stack-protector -mno-stack-arg-probe
11 | #cgo windows,386 CFLAGS: -D_localtime32=localtime
12 | #cgo LDFLAGS: -lmingwex -lmingw32
13 | */
14 | import "C"
15 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/qiniu/log/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files, Static and Dynamic libs (Shared Objects)
2 | *.o
3 | *.a
4 | *.so
5 |
6 | # Folders
7 | _obj
8 | _test
9 |
10 | # Architecture specific extensions/prefixes
11 | *.[568vq]
12 | [568vq].out
13 |
14 | *.cgo1.go
15 | *.cgo2.c
16 | _cgo_defun.c
17 | _cgo_gotypes.go
18 | _cgo_export.*
19 |
20 | _testmain.go
21 |
22 | *.exe
23 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/qiniu/log/README.md:
--------------------------------------------------------------------------------
1 | log
2 | ===
3 |
4 | Extension module of golang logging
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/qiniu/log/logext_test.go:
--------------------------------------------------------------------------------
1 | package log
2 |
3 | import (
4 | "testing"
5 | )
6 |
7 | func TestLog(t *testing.T) {
8 |
9 | SetOutputLevel(Ldebug)
10 |
11 | Debugf("Debug: foo\n")
12 | Debug("Debug: foo")
13 |
14 | Infof("Info: foo\n")
15 | Info("Info: foo")
16 |
17 | Warnf("Warn: foo\n")
18 | Warn("Warn: foo")
19 |
20 | Errorf("Error: foo\n")
21 | Error("Error: foo")
22 |
23 | SetOutputLevel(Linfo)
24 |
25 | Debugf("Debug: foo\n")
26 | Debug("Debug: foo")
27 |
28 | Infof("Info: foo\n")
29 | Info("Info: foo")
30 |
31 | Warnf("Warn: foo\n")
32 | Warn("Warn: foo")
33 |
34 | Errorf("Error: foo\n")
35 | Error("Error: foo")
36 | }
37 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/robfig/cron/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files, Static and Dynamic libs (Shared Objects)
2 | *.o
3 | *.a
4 | *.so
5 |
6 | # Folders
7 | _obj
8 | _test
9 |
10 | # Architecture specific extensions/prefixes
11 | *.[568vq]
12 | [568vq].out
13 |
14 | *.cgo1.go
15 | *.cgo2.c
16 | _cgo_defun.c
17 | _cgo_gotypes.go
18 | _cgo_export.*
19 |
20 | _testmain.go
21 |
22 | *.exe
23 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/robfig/cron/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/robfig/cron/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (C) 2012 Rob Figueiredo
2 | All Rights Reserved.
3 |
4 | MIT LICENSE
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy of
7 | this software and associated documentation files (the "Software"), to deal in
8 | the Software without restriction, including without limitation the rights to
9 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
10 | the Software, and to permit persons to whom the Software is furnished to do so,
11 | subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in all
14 | copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
18 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
19 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/robfig/cron/README.md:
--------------------------------------------------------------------------------
1 | [](http://godoc.org/github.com/robfig/cron)
2 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/github.com/robfig/cron/constantdelay.go:
--------------------------------------------------------------------------------
1 | package cron
2 |
3 | import "time"
4 |
5 | // ConstantDelaySchedule represents a simple recurring duty cycle, e.g. "Every 5 minutes".
6 | // It does not support jobs more frequent than once a second.
7 | type ConstantDelaySchedule struct {
8 | Delay time.Duration
9 | }
10 |
11 | // Every returns a crontab Schedule that activates once every duration.
12 | // Delays of less than a second are not supported (will round up to 1 second).
13 | // Any fields less than a Second are truncated.
14 | func Every(duration time.Duration) ConstantDelaySchedule {
15 | if duration < time.Second {
16 | duration = time.Second
17 | }
18 | return ConstantDelaySchedule{
19 | Delay: duration - time.Duration(duration.Nanoseconds())%time.Second,
20 | }
21 | }
22 |
23 | // Next returns the next time this should be run.
24 | // This rounds so that the next activation time will be on the second.
25 | func (schedule ConstantDelaySchedule) Next(t time.Time) time.Time {
26 | return t.Add(schedule.Delay - time.Duration(t.Nanosecond())*time.Nanosecond)
27 | }
28 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/gopkg.in/ini.v1/.gitignore:
--------------------------------------------------------------------------------
1 | testdata/conf_out.ini
2 | ini.sublime-project
3 | ini.sublime-workspace
4 | testdata/conf_reflect.ini
5 |
--------------------------------------------------------------------------------
/Godeps/_workspace/src/gopkg.in/ini.v1/testdata/conf.ini:
--------------------------------------------------------------------------------
1 | [author]
2 | E-MAIL = u@gogs.io
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Michał Rączka
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 all
13 | 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 THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | develop:
2 | go build
3 |
4 | standalone:
5 | go-bindata-assetfs data/...
6 | go build -tags "bindata"
7 |
8 | dep:
9 | go get -v github.com/jteeuwen/go-bindata/...
10 | go get -v github.com/elazarl/go-bindata-assetfs/...
11 |
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | web: webcrontab -port $PORT
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # webcrontab
2 |
3 | Web based crontab.
4 |
5 | Demo page:
6 |
7 | 
8 |
9 | ## Build
10 | ```
11 | # Install godep
12 | go get -v github.com/tools/godep
13 |
14 | # Build
15 | git clone https://github.com/codeskyblue/webcrontab.git
16 | cd webcrontab
17 | godep go build
18 |
19 | # Start
20 | ./webcrontab
21 | ```
22 |
23 | ## ChangeLog
24 | - 2015-08-26: First release. Heroku support.
25 |
26 | ## Contribute
27 | Since the first ok version is released. This really takes me a lot of time, finally get it works. Very happy.
28 |
29 | Pull request are welcomed, but make sure code have been tested.
30 |
31 | ## Thanks
32 | * db engine **xorm**:
33 | *
34 | * Icon from:
35 |
36 | ## LICENSE
37 | [MIT](LICENSE)
38 |
--------------------------------------------------------------------------------
/assetfs.go:
--------------------------------------------------------------------------------
1 | // +build bindata
2 |
3 | package main
4 |
5 | import (
6 | "log"
7 | "net/http"
8 | )
9 |
10 | func init() {
11 | log.Println("Enable bindata fs")
12 | http.Handle("/-/", http.StripPrefix("/-/", http.FileServer(assetFS())))
13 | }
14 |
--------------------------------------------------------------------------------
/public/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "go-cron",
3 | "version": "0.0.2",
4 | "homepage": "https://github.com/codeskyblue/go-cron",
5 | "authors": [
6 | "shengxiang ",
20 | "license": "MIT",
21 | "bugs": {
22 | "url": "https://github.com/angular/angular.js/issues"
23 | },
24 | "homepage": "http://angularjs.org"
25 | }
26 |
--------------------------------------------------------------------------------
/public/bower_components/angularjs-humanize/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angularjs-humanize",
3 | "version": "0.0.1",
4 | "main": "src/angular-humanize.js",
5 | "description": "Angular filter for rendering human-readable data",
6 | "license": "MIT",
7 | "dependencies": {
8 | "angular": "~1.2.7",
9 | "humanize": "~0.0.9"
10 | },
11 | "devDependencies": {
12 | "angular-mocks": "~1.2.7",
13 | "jasmine": "~1.3.1"
14 | },
15 | "homepage": "https://github.com/saymedia/angularjs-humanize",
16 | "_release": "0.0.1",
17 | "_resolution": {
18 | "type": "version",
19 | "tag": "v0.0.1",
20 | "commit": "84b0967fce7b719dee85dc45291f391a71d2f65b"
21 | },
22 | "_source": "git://github.com/saymedia/angularjs-humanize.git",
23 | "_target": "~0.0.1",
24 | "_originalSource": "angularjs-humanize",
25 | "_direct": true
26 | }
--------------------------------------------------------------------------------
/public/bower_components/angularjs-humanize/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | bower_components/
3 |
--------------------------------------------------------------------------------
/public/bower_components/angularjs-humanize/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Say Media
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 all
13 | 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 THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/public/bower_components/angularjs-humanize/README.md:
--------------------------------------------------------------------------------
1 | # angularjs-humanize
2 |
3 | angularjs-humanize is a thin wrapper around the
4 | [humanize](https://github.com/taijinlee/humanize) library, providing a
5 | variety of Angular filters which apply transformations to make data more
6 | human-readable.
7 |
8 | ## Installation
9 |
10 | Install the library via
11 |
12 | bower install -S angularjs-humanize
13 |
14 | Add it to your `index.html`:
15 |
16 |
17 |
18 |
19 | Add it as a dependency to your angularjs project:
20 |
21 | var app = angular.module("myApp", ['angular-humanize']);
22 |
23 |
24 |
25 | ## Supported Filters
26 |
27 | angularjs-humanize currently supports the following filters, mapping
28 | to the humanize functions of the same name:
29 |
30 | + _humanizeFilesize_, which transforms a number or number-like string into
31 | a human-readable filesize such as "225.35 KB"
32 | + _humanizeOrdinal_, which transforms an integer into an ordinal such as
33 | "32nd" or "101st"
34 | + _humanizeNaturalDay_, which transforms an integer representing an epoch
35 | into a date representation or one of "yesterday", "today", or
36 | "tomorrow"
37 | + _humanizeRelativeTime_, which transforms an integer representing an epoch
38 | into a string such as "about an hour ago" or "in a month"
39 |
40 | ## License
41 | Copyright © 2014 Say Media Ltd. All Rights Reserved. See the LICENSE
42 | file for distribution terms.
43 |
44 |
--------------------------------------------------------------------------------
/public/bower_components/angularjs-humanize/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angularjs-humanize",
3 | "version": "0.0.1",
4 | "main": "src/angular-humanize.js",
5 | "description": "Angular filter for rendering human-readable data",
6 | "license": "MIT",
7 | "dependencies": {
8 | "angular": "~1.2.7",
9 | "humanize": "~0.0.9"
10 | },
11 | "devDependencies": {
12 | "angular-mocks": "~1.2.7",
13 | "jasmine": "~1.3.1"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/public/bower_components/angularjs-humanize/example/example.js:
--------------------------------------------------------------------------------
1 | (function (angular, humanize) {
2 |
3 | angular.module('example', ['ng', 'angular-humanize']).
4 | controller(
5 | 'Example',
6 | ['$scope',
7 | function ($scope) {
8 | $scope.data = [
9 | {
10 | name: 'bruce_timm.png',
11 | filesize: 230757,
12 | uploaded: 1405652728
13 | },
14 | {
15 | name: 'joker.gif',
16 | filesize: '76160',
17 | uploaded: 1393729528
18 | }
19 | ];
20 | }]
21 | );
22 |
23 | })(angular, window.humanize);
24 |
--------------------------------------------------------------------------------
/public/bower_components/angularjs-humanize/example/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Humanize Filter Example
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
Humanized Data
16 |
17 |
18 |
19 | File
20 | Size
21 | Uploaded
22 |
23 |
24 | {{row.name}}
25 | {{row.filesize | humanizeFilesize}}
26 | {{row.uploaded | humanizeRelativeTime}}
27 |
28 |
29 |
30 |
Raw Data
31 |
32 |
{{data|json}}
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/public/bower_components/angularjs-humanize/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angularjs-humanize",
3 | "version": "0.0.1",
4 | "main": "src/angular-humanize.js",
5 | "description": "Angular filter for rendering human-readable data",
6 | "repository": {
7 | "type": "git",
8 | "url": "https://github.com/saymedia/angularjs-humanize"
9 | },
10 | "devDependencies": {
11 | "grunt-karma": "^0.8.2",
12 | "grunt-cli": "^0.1.13",
13 | "bower": "^1.3.1",
14 | "karma": "^0.12.1",
15 | "grunt-contrib-connect": "^0.7.1",
16 | "karma-jasmine": "^0.1.5",
17 | "karma-phantomjs-launcher": "^0.1.2"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/public/bower_components/angularjs-humanize/src/angular-humanize.js:
--------------------------------------------------------------------------------
1 | (function( angular ) {
2 | 'use strict';
3 |
4 | angular.module('angular-humanize', []).
5 | filter('humanizeFilesize', function () {
6 | return function ( input ) {
7 | if ( isNaN(parseInt(input)) ) { return input; }
8 | return humanize.filesize(parseInt(input));
9 | };
10 | }).
11 | filter('humanizeOrdinal', function () {
12 | return function ( input ) {
13 | if ( parseInt(input) !== input ) { return input; }
14 | return humanize.ordinal(input);
15 | };
16 | }).
17 | filter('humanizeNaturalDay', function () {
18 | return function ( input ) {
19 | if ( parseInt(input) !== input ) { return input; }
20 | return humanize.naturalDay(input);
21 | };
22 | }).
23 | filter('humanizeRelativeTime', function () {
24 | return function ( input ) {
25 | if ( parseInt(input) !== input ) { return input; }
26 | return humanize.relativeTime(input);
27 | };
28 | });
29 |
30 | }( angular ));
31 |
--------------------------------------------------------------------------------
/public/bower_components/angularjs/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular",
3 | "version": "1.4.4",
4 | "main": "./angular.js",
5 | "ignore": [],
6 | "dependencies": {},
7 | "homepage": "https://github.com/angular/bower-angular",
8 | "_release": "1.4.4",
9 | "_resolution": {
10 | "type": "version",
11 | "tag": "v1.4.4",
12 | "commit": "f00cff5525db7c853f42854079a31936d400f99b"
13 | },
14 | "_source": "git://github.com/angular/bower-angular.git",
15 | "_target": "~1.4.4",
16 | "_originalSource": "angularjs",
17 | "_direct": true
18 | }
--------------------------------------------------------------------------------
/public/bower_components/angularjs/angular-csp.css:
--------------------------------------------------------------------------------
1 | /* Include this file in your html if you are using the CSP mode. */
2 |
3 | @charset "UTF-8";
4 |
5 | [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak],
6 | .ng-cloak, .x-ng-cloak,
7 | .ng-hide:not(.ng-hide-animate) {
8 | display: none !important;
9 | }
10 |
11 | ng\:form {
12 | display: block;
13 | }
14 |
15 | .ng-animate-shim {
16 | visibility:hidden;
17 | }
18 |
19 | .ng-anchor {
20 | position:absolute;
21 | }
22 |
--------------------------------------------------------------------------------
/public/bower_components/angularjs/angular.min.js.gzip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codeskyblue/webcron/ddf4bcd3dbce0245f32c4c1e987867614eb419b3/public/bower_components/angularjs/angular.min.js.gzip
--------------------------------------------------------------------------------
/public/bower_components/angularjs/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular",
3 | "version": "1.4.4",
4 | "main": "./angular.js",
5 | "ignore": [],
6 | "dependencies": {
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/public/bower_components/angularjs/index.js:
--------------------------------------------------------------------------------
1 | require('./angular');
2 | module.exports = angular;
3 |
--------------------------------------------------------------------------------
/public/bower_components/angularjs/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular",
3 | "version": "1.4.4",
4 | "description": "HTML enhanced for web apps",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/angular/angular.js.git"
12 | },
13 | "keywords": [
14 | "angular",
15 | "framework",
16 | "browser",
17 | "client-side"
18 | ],
19 | "author": "Angular Core Team ",
20 | "license": "MIT",
21 | "bugs": {
22 | "url": "https://github.com/angular/angular.js/issues"
23 | },
24 | "homepage": "http://angularjs.org"
25 | }
26 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap-switch/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap-switch",
3 | "description": "Turn checkboxes and radio buttons in toggle switches.",
4 | "version": "3.3.2",
5 | "main": [
6 | "./dist/js/bootstrap-switch.js",
7 | "./dist/css/bootstrap3/bootstrap-switch.css"
8 | ],
9 | "ignore": [
10 | "docs",
11 | "test",
12 | "CNAME",
13 | "coffeelint.json",
14 | "composer.json",
15 | "CONTRIBUTING.md",
16 | "gulpfile.coffee",
17 | "gulpfile.js",
18 | "index.html",
19 | "package.json"
20 | ],
21 | "dependencies": {
22 | "bootstrap": ">=2.3.2",
23 | "jquery": ">=1.9.0"
24 | },
25 | "devDependencies": {
26 | "jquery": "~2.1",
27 | "bootstrap": "~3.3"
28 | },
29 | "homepage": "https://github.com/nostalgiaz/bootstrap-switch",
30 | "_release": "3.3.2",
31 | "_resolution": {
32 | "type": "version",
33 | "tag": "v3.3.2",
34 | "commit": "ec69b5dd914dacb19cf1fa8e1be7eea6bcc7b083"
35 | },
36 | "_source": "git://github.com/nostalgiaz/bootstrap-switch.git",
37 | "_target": "~3.3.2",
38 | "_originalSource": "bootstrap-switch",
39 | "_direct": true
40 | }
--------------------------------------------------------------------------------
/public/bower_components/bootstrap-switch/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "components"
3 | }
4 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap-switch/.gitignore:
--------------------------------------------------------------------------------
1 | .grunt
2 | npm-debug.log
3 | node_modules
4 | components
5 | .DS_Store
6 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap-switch/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap-switch",
3 | "description": "Turn checkboxes and radio buttons in toggle switches.",
4 | "version": "3.3.2",
5 | "main": [
6 | "./dist/js/bootstrap-switch.js",
7 | "./dist/css/bootstrap3/bootstrap-switch.css"
8 | ],
9 | "ignore": [
10 | "docs",
11 | "test",
12 | "CNAME",
13 | "coffeelint.json",
14 | "composer.json",
15 | "CONTRIBUTING.md",
16 | "gulpfile.coffee",
17 | "gulpfile.js",
18 | "index.html",
19 | "package.json"
20 | ],
21 | "dependencies": {
22 | "bootstrap": ">=2.3.2",
23 | "jquery": ">=1.9.0"
24 | },
25 | "devDependencies": {
26 | "jquery": "~2.1",
27 | "bootstrap": "~3.3"
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap-switch/karma.json:
--------------------------------------------------------------------------------
1 | {
2 | "frameworks": ["jasmine"],
3 | "files": [
4 | "bower_components/jquery/dist/jquery.js",
5 | "bower_components/bootstrap/dist/js/bootstrap.js",
6 | "test/bootstrap-switch.js",
7 | "test/bootstrap-switch.tests.js"
8 | ],
9 | "reporters": ["progress"],
10 | "port": 9876,
11 | "colors": true,
12 | "autoWatch": true,
13 | "browsers": ["Firefox"],
14 | "singleRun": false,
15 | "plugins": [
16 | "karma-jasmine",
17 | "karma-firefox-launcher"
18 | ]
19 | }
20 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap-switch/src/coffee/bootstrap-switch.tests.coffee:
--------------------------------------------------------------------------------
1 | describe "Bootstrap Switch", ->
2 |
3 | beforeEach ->
4 | $.support.transition = false
5 | $.fx.off = true
6 |
7 | afterEach ->
8 | $(".#{$.fn.bootstrapSwitch.defaults.baseClass}").bootstrapSwitch "destroy"
9 |
10 | createElement = ->
11 | $(" ",
12 | type: "checkbox"
13 | class: "switch"
14 | ).appendTo "body"
15 |
16 | getOptions = ($element) ->
17 | $element.data("bootstrap-switch").options
18 |
19 | it "should set the default options as element options, except state", ->
20 | $switch = createElement().prop("checked", true).bootstrapSwitch()
21 | expect(getOptions($switch)).toEqual $.fn.bootstrapSwitch.defaults
22 |
23 | it "should override default options with initialization ones", ->
24 | $switch = createElement().prop("checked", false).bootstrapSwitch()
25 | $switch2 = createElement().bootstrapSwitch state: false
26 | expect(getOptions($switch).state).toBe false
27 | expect(getOptions($switch2).state).toBe false
28 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap-switch/src/less/bootstrap2/build.less:
--------------------------------------------------------------------------------
1 | @import "variables";
2 | @import "mixins";
3 | @import "bootstrap-switch";
--------------------------------------------------------------------------------
/public/bower_components/bootstrap-switch/src/less/bootstrap3/build.less:
--------------------------------------------------------------------------------
1 | @import "variables";
2 | @import "mixins";
3 | @import "bootstrap-switch";
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap",
3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4 | "keywords": [
5 | "css",
6 | "js",
7 | "less",
8 | "mobile-first",
9 | "responsive",
10 | "front-end",
11 | "framework",
12 | "web"
13 | ],
14 | "homepage": "http://getbootstrap.com",
15 | "license": "MIT",
16 | "moduleType": "globals",
17 | "main": [
18 | "less/bootstrap.less",
19 | "dist/js/bootstrap.js"
20 | ],
21 | "ignore": [
22 | "/.*",
23 | "_config.yml",
24 | "CNAME",
25 | "composer.json",
26 | "CONTRIBUTING.md",
27 | "docs",
28 | "js/tests",
29 | "test-infra"
30 | ],
31 | "dependencies": {
32 | "jquery": ">= 1.9.1"
33 | },
34 | "version": "3.3.5",
35 | "_release": "3.3.5",
36 | "_resolution": {
37 | "type": "version",
38 | "tag": "v3.3.5",
39 | "commit": "16b48259a62f576e52c903c476bd42b90ab22482"
40 | },
41 | "_source": "git://github.com/twbs/bootstrap.git",
42 | "_target": ">=2.3.2",
43 | "_originalSource": "bootstrap"
44 | }
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2011-2015 Twitter, Inc
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 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap",
3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4 | "keywords": [
5 | "css",
6 | "js",
7 | "less",
8 | "mobile-first",
9 | "responsive",
10 | "front-end",
11 | "framework",
12 | "web"
13 | ],
14 | "homepage": "http://getbootstrap.com",
15 | "license": "MIT",
16 | "moduleType": "globals",
17 | "main": [
18 | "less/bootstrap.less",
19 | "dist/js/bootstrap.js"
20 | ],
21 | "ignore": [
22 | "/.*",
23 | "_config.yml",
24 | "CNAME",
25 | "composer.json",
26 | "CONTRIBUTING.md",
27 | "docs",
28 | "js/tests",
29 | "test-infra"
30 | ],
31 | "dependencies": {
32 | "jquery": ">= 1.9.1"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codeskyblue/webcron/ddf4bcd3dbce0245f32c4c1e987867614eb419b3/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codeskyblue/webcron/ddf4bcd3dbce0245f32c4c1e987867614eb419b3/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codeskyblue/webcron/ddf4bcd3dbce0245f32c4c1e987867614eb419b3/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codeskyblue/webcron/ddf4bcd3dbce0245f32c4c1e987867614eb419b3/public/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/dist/js/npm.js:
--------------------------------------------------------------------------------
1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
2 | require('../../js/transition.js')
3 | require('../../js/alert.js')
4 | require('../../js/button.js')
5 | require('../../js/carousel.js')
6 | require('../../js/collapse.js')
7 | require('../../js/dropdown.js')
8 | require('../../js/modal.js')
9 | require('../../js/tooltip.js')
10 | require('../../js/popover.js')
11 | require('../../js/scrollspy.js')
12 | require('../../js/tab.js')
13 | require('../../js/affix.js')
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codeskyblue/webcron/ddf4bcd3dbce0245f32c4c1e987867614eb419b3/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codeskyblue/webcron/ddf4bcd3dbce0245f32c4c1e987867614eb419b3/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codeskyblue/webcron/ddf4bcd3dbce0245f32c4c1e987867614eb419b3/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codeskyblue/webcron/ddf4bcd3dbce0245f32c4c1e987867614eb419b3/public/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/grunt/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends" : "../js/.jshintrc",
3 | "asi" : false,
4 | "browser" : false,
5 | "es3" : false,
6 | "node" : true
7 | }
8 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/grunt/bs-commonjs-generator.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grunt task for the CommonJS module generation
3 | * http://getbootstrap.com
4 | * Copyright 2014-2015 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 |
8 | 'use strict';
9 |
10 | var fs = require('fs');
11 | var path = require('path');
12 |
13 | var COMMONJS_BANNER = '// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\n';
14 |
15 | module.exports = function generateCommonJSModule(grunt, srcFiles, destFilepath) {
16 | var destDir = path.dirname(destFilepath);
17 |
18 | function srcPathToDestRequire(srcFilepath) {
19 | var requirePath = path.relative(destDir, srcFilepath).replace(/\\/g, '/');
20 | return 'require(\'' + requirePath + '\')';
21 | }
22 |
23 | var moduleOutputJs = COMMONJS_BANNER + srcFiles.map(srcPathToDestRequire).join('\n');
24 | try {
25 | fs.writeFileSync(destFilepath, moduleOutputJs);
26 | } catch (err) {
27 | grunt.fail.warn(err);
28 | }
29 | grunt.log.writeln('File ' + destFilepath.cyan + ' created.');
30 | };
31 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grunt task for Glyphicons data generation
3 | * http://getbootstrap.com
4 | * Copyright 2014-2015 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 |
8 | 'use strict';
9 |
10 | var fs = require('fs');
11 |
12 | module.exports = function generateGlyphiconsData(grunt) {
13 | // Pass encoding, utf8, so `readFileSync` will return a string instead of a
14 | // buffer
15 | var glyphiconsFile = fs.readFileSync('less/glyphicons.less', 'utf8');
16 | var glyphiconsLines = glyphiconsFile.split('\n');
17 |
18 | // Use any line that starts with ".glyphicon-" and capture the class name
19 | var iconClassName = /^\.(glyphicon-[a-zA-Z0-9-]+)/;
20 | var glyphiconsData = '# This file is generated via Grunt task. **Do not edit directly.**\n' +
21 | '# See the \'build-glyphicons-data\' task in Gruntfile.js.\n\n';
22 | var glyphiconsYml = 'docs/_data/glyphicons.yml';
23 | for (var i = 0, len = glyphiconsLines.length; i < len; i++) {
24 | var match = glyphiconsLines[i].match(iconClassName);
25 |
26 | if (match !== null) {
27 | glyphiconsData += '- ' + match[1] + '\n';
28 | }
29 | }
30 |
31 | // Create the `_data` directory if it doesn't already exist
32 | if (!fs.existsSync('docs/_data')) {
33 | fs.mkdirSync('docs/_data');
34 | }
35 |
36 | try {
37 | fs.writeFileSync(glyphiconsYml, glyphiconsData);
38 | } catch (err) {
39 | grunt.fail.warn(err);
40 | }
41 | grunt.log.writeln('File ' + glyphiconsYml.cyan + ' created.');
42 | };
43 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/grunt/bs-raw-files-generator.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap Grunt task for generating raw-files.min.js for the Customizer
3 | * http://getbootstrap.com
4 | * Copyright 2014-2015 Twitter, Inc.
5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6 | */
7 |
8 | 'use strict';
9 |
10 | var fs = require('fs');
11 | var btoa = require('btoa');
12 | var glob = require('glob');
13 |
14 | function getFiles(type) {
15 | var files = {};
16 | var recursive = type === 'less';
17 | var globExpr = recursive ? '/**/*' : '/*';
18 | glob.sync(type + globExpr)
19 | .filter(function (path) {
20 | return type === 'fonts' ? true : new RegExp('\\.' + type + '$').test(path);
21 | })
22 | .forEach(function (fullPath) {
23 | var relativePath = fullPath.replace(/^[^/]+\//, '');
24 | files[relativePath] = type === 'fonts' ? btoa(fs.readFileSync(fullPath)) : fs.readFileSync(fullPath, 'utf8');
25 | });
26 | return 'var __' + type + ' = ' + JSON.stringify(files) + '\n';
27 | }
28 |
29 | module.exports = function generateRawFilesJs(grunt, banner) {
30 | if (!banner) {
31 | banner = '';
32 | }
33 | var dirs = ['js', 'less', 'fonts'];
34 | var files = banner + dirs.map(getFiles).reduce(function (combined, file) {
35 | return combined + file;
36 | }, '');
37 | var rawFilesJs = 'docs/assets/js/raw-files.min.js';
38 | try {
39 | fs.writeFileSync(rawFilesJs, files);
40 | } catch (err) {
41 | grunt.fail.warn(err);
42 | }
43 | grunt.log.writeln('File ' + rawFilesJs.cyan + ' created.');
44 | };
45 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/grunt/configBridge.json:
--------------------------------------------------------------------------------
1 | {
2 | "paths": {
3 | "customizerJs": [
4 | "../assets/js/vendor/autoprefixer.js",
5 | "../assets/js/vendor/less.min.js",
6 | "../assets/js/vendor/jszip.min.js",
7 | "../assets/js/vendor/uglify.min.js",
8 | "../assets/js/vendor/Blob.js",
9 | "../assets/js/vendor/FileSaver.js",
10 | "../assets/js/raw-files.min.js",
11 | "../assets/js/src/customizer.js"
12 | ],
13 | "docsJs": [
14 | "../assets/js/vendor/holder.min.js",
15 | "../assets/js/vendor/ZeroClipboard.min.js",
16 | "../assets/js/vendor/anchor.js",
17 | "../assets/js/src/application.js"
18 | ]
19 | },
20 | "config": {
21 | "autoprefixerBrowsers": [
22 | "Android 2.3",
23 | "Android >= 4",
24 | "Chrome >= 20",
25 | "Firefox >= 24",
26 | "Explorer >= 8",
27 | "iOS >= 6",
28 | "Opera >= 12",
29 | "Safari >= 6"
30 | ],
31 | "jqueryCheck": [
32 | "if (typeof jQuery === 'undefined') {",
33 | " throw new Error('Bootstrap\\'s JavaScript requires jQuery')",
34 | "}\n"
35 | ],
36 | "jqueryVersionCheck": [
37 | "+function ($) {",
38 | " 'use strict';",
39 | " var version = $.fn.jquery.split(' ')[0].split('.')",
40 | " if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {",
41 | " throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher')",
42 | " }",
43 | "}(jQuery);\n\n"
44 | ]
45 | }
46 | }
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/grunt/sauce_browsers.yml:
--------------------------------------------------------------------------------
1 | [
2 | # Docs: https://saucelabs.com/docs/platforms/webdriver
3 |
4 | {
5 | browserName: "safari",
6 | platform: "OS X 10.10"
7 | },
8 | {
9 | browserName: "chrome",
10 | platform: "OS X 10.10"
11 | },
12 | {
13 | browserName: "firefox",
14 | platform: "OS X 10.10"
15 | },
16 |
17 | # Mac Opera not currently supported by Sauce Labs
18 |
19 | {
20 | browserName: "internet explorer",
21 | version: "11",
22 | platform: "Windows 8.1"
23 | },
24 | {
25 | browserName: "internet explorer",
26 | version: "10",
27 | platform: "Windows 8"
28 | },
29 | {
30 | browserName: "internet explorer",
31 | version: "9",
32 | platform: "Windows 7"
33 | },
34 | {
35 | browserName: "internet explorer",
36 | version: "8",
37 | platform: "Windows 7"
38 | },
39 |
40 | # { # Unofficial
41 | # browserName: "internet explorer",
42 | # version: "7",
43 | # platform: "Windows XP"
44 | # },
45 |
46 | {
47 | browserName: "chrome",
48 | platform: "Windows 8.1"
49 | },
50 | {
51 | browserName: "firefox",
52 | platform: "Windows 8.1"
53 | },
54 |
55 | # Win Opera 15+ not currently supported by Sauce Labs
56 |
57 | {
58 | browserName: "iphone",
59 | platform: "OS X 10.10",
60 | version: "8.2"
61 | },
62 |
63 | # iOS Chrome not currently supported by Sauce Labs
64 |
65 | # Linux (unofficial)
66 | {
67 | browserName: "chrome",
68 | platform: "Linux"
69 | },
70 | {
71 | browserName: "firefox",
72 | platform: "Linux"
73 | }
74 |
75 | # Android Chrome not currently supported by Sauce Labs
76 |
77 | # { # Android Browser (super-unofficial)
78 | # browserName: "android",
79 | # version: "4.0",
80 | # platform: "Linux"
81 | # }
82 | ]
83 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/js/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "asi" : true,
3 | "browser" : true,
4 | "eqeqeq" : false,
5 | "eqnull" : true,
6 | "es3" : true,
7 | "expr" : true,
8 | "jquery" : true,
9 | "latedef" : true,
10 | "laxbreak" : true,
11 | "nonbsp" : true,
12 | "strict" : true,
13 | "undef" : true,
14 | "unused" : true
15 | }
16 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/.csslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "adjoining-classes": false,
3 | "box-sizing": false,
4 | "box-model": false,
5 | "compatible-vendor-prefixes": false,
6 | "floats": false,
7 | "font-sizes": false,
8 | "gradients": false,
9 | "important": false,
10 | "known-properties": false,
11 | "outline-none": false,
12 | "qualified-headings": false,
13 | "regex-selectors": false,
14 | "shorthand": false,
15 | "text-indent": false,
16 | "unique-headings": false,
17 | "universal-selector": false,
18 | "unqualified-attributes": false
19 | }
20 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/alerts.less:
--------------------------------------------------------------------------------
1 | //
2 | // Alerts
3 | // --------------------------------------------------
4 |
5 |
6 | // Base styles
7 | // -------------------------
8 |
9 | .alert {
10 | padding: @alert-padding;
11 | margin-bottom: @line-height-computed;
12 | border: 1px solid transparent;
13 | border-radius: @alert-border-radius;
14 |
15 | // Headings for larger alerts
16 | h4 {
17 | margin-top: 0;
18 | // Specified for the h4 to prevent conflicts of changing @headings-color
19 | color: inherit;
20 | }
21 |
22 | // Provide class for links that match alerts
23 | .alert-link {
24 | font-weight: @alert-link-font-weight;
25 | }
26 |
27 | // Improve alignment and spacing of inner content
28 | > p,
29 | > ul {
30 | margin-bottom: 0;
31 | }
32 |
33 | > p + p {
34 | margin-top: 5px;
35 | }
36 | }
37 |
38 | // Dismissible alerts
39 | //
40 | // Expand the right padding and account for the close button's positioning.
41 |
42 | .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
43 | .alert-dismissible {
44 | padding-right: (@alert-padding + 20);
45 |
46 | // Adjust close link position
47 | .close {
48 | position: relative;
49 | top: -2px;
50 | right: -21px;
51 | color: inherit;
52 | }
53 | }
54 |
55 | // Alternate styles
56 | //
57 | // Generate contextual modifier classes for colorizing the alert.
58 |
59 | .alert-success {
60 | .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);
61 | }
62 |
63 | .alert-info {
64 | .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);
65 | }
66 |
67 | .alert-warning {
68 | .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);
69 | }
70 |
71 | .alert-danger {
72 | .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);
73 | }
74 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/badges.less:
--------------------------------------------------------------------------------
1 | //
2 | // Badges
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .badge {
8 | display: inline-block;
9 | min-width: 10px;
10 | padding: 3px 7px;
11 | font-size: @font-size-small;
12 | font-weight: @badge-font-weight;
13 | color: @badge-color;
14 | line-height: @badge-line-height;
15 | vertical-align: middle;
16 | white-space: nowrap;
17 | text-align: center;
18 | background-color: @badge-bg;
19 | border-radius: @badge-border-radius;
20 |
21 | // Empty badges collapse automatically (not available in IE8)
22 | &:empty {
23 | display: none;
24 | }
25 |
26 | // Quick fix for badges in buttons
27 | .btn & {
28 | position: relative;
29 | top: -1px;
30 | }
31 |
32 | .btn-xs &,
33 | .btn-group-xs > .btn & {
34 | top: 0;
35 | padding: 1px 5px;
36 | }
37 |
38 | // Hover state, but only for links
39 | a& {
40 | &:hover,
41 | &:focus {
42 | color: @badge-link-hover-color;
43 | text-decoration: none;
44 | cursor: pointer;
45 | }
46 | }
47 |
48 | // Account for badges in navs
49 | .list-group-item.active > &,
50 | .nav-pills > .active > a > & {
51 | color: @badge-active-color;
52 | background-color: @badge-active-bg;
53 | }
54 |
55 | .list-group-item > & {
56 | float: right;
57 | }
58 |
59 | .list-group-item > & + & {
60 | margin-right: 5px;
61 | }
62 |
63 | .nav-pills > li > a > & {
64 | margin-left: 3px;
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/bootstrap.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.3.5 (http://getbootstrap.com)
3 | * Copyright 2011-2015 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 |
7 | // Core variables and mixins
8 | @import "variables.less";
9 | @import "mixins.less";
10 |
11 | // Reset and dependencies
12 | @import "normalize.less";
13 | @import "print.less";
14 | @import "glyphicons.less";
15 |
16 | // Core CSS
17 | @import "scaffolding.less";
18 | @import "type.less";
19 | @import "code.less";
20 | @import "grid.less";
21 | @import "tables.less";
22 | @import "forms.less";
23 | @import "buttons.less";
24 |
25 | // Components
26 | @import "component-animations.less";
27 | @import "dropdowns.less";
28 | @import "button-groups.less";
29 | @import "input-groups.less";
30 | @import "navs.less";
31 | @import "navbar.less";
32 | @import "breadcrumbs.less";
33 | @import "pagination.less";
34 | @import "pager.less";
35 | @import "labels.less";
36 | @import "badges.less";
37 | @import "jumbotron.less";
38 | @import "thumbnails.less";
39 | @import "alerts.less";
40 | @import "progress-bars.less";
41 | @import "media.less";
42 | @import "list-group.less";
43 | @import "panels.less";
44 | @import "responsive-embed.less";
45 | @import "wells.less";
46 | @import "close.less";
47 |
48 | // Components w/ JavaScript
49 | @import "modals.less";
50 | @import "tooltip.less";
51 | @import "popovers.less";
52 | @import "carousel.less";
53 |
54 | // Utility classes
55 | @import "utilities.less";
56 | @import "responsive-utilities.less";
57 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/breadcrumbs.less:
--------------------------------------------------------------------------------
1 | //
2 | // Breadcrumbs
3 | // --------------------------------------------------
4 |
5 |
6 | .breadcrumb {
7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;
8 | margin-bottom: @line-height-computed;
9 | list-style: none;
10 | background-color: @breadcrumb-bg;
11 | border-radius: @border-radius-base;
12 |
13 | > li {
14 | display: inline-block;
15 |
16 | + li:before {
17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
18 | padding: 0 5px;
19 | color: @breadcrumb-color;
20 | }
21 | }
22 |
23 | > .active {
24 | color: @breadcrumb-active-color;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/close.less:
--------------------------------------------------------------------------------
1 | //
2 | // Close icons
3 | // --------------------------------------------------
4 |
5 |
6 | .close {
7 | float: right;
8 | font-size: (@font-size-base * 1.5);
9 | font-weight: @close-font-weight;
10 | line-height: 1;
11 | color: @close-color;
12 | text-shadow: @close-text-shadow;
13 | .opacity(.2);
14 |
15 | &:hover,
16 | &:focus {
17 | color: @close-color;
18 | text-decoration: none;
19 | cursor: pointer;
20 | .opacity(.5);
21 | }
22 |
23 | // Additional properties for button version
24 | // iOS requires the button element instead of an anchor tag.
25 | // If you want the anchor version, it requires `href="#"`.
26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
27 | button& {
28 | padding: 0;
29 | cursor: pointer;
30 | background: transparent;
31 | border: 0;
32 | -webkit-appearance: none;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/code.less:
--------------------------------------------------------------------------------
1 | //
2 | // Code (inline and block)
3 | // --------------------------------------------------
4 |
5 |
6 | // Inline and block code styles
7 | code,
8 | kbd,
9 | pre,
10 | samp {
11 | font-family: @font-family-monospace;
12 | }
13 |
14 | // Inline code
15 | code {
16 | padding: 2px 4px;
17 | font-size: 90%;
18 | color: @code-color;
19 | background-color: @code-bg;
20 | border-radius: @border-radius-base;
21 | }
22 |
23 | // User input typically entered via keyboard
24 | kbd {
25 | padding: 2px 4px;
26 | font-size: 90%;
27 | color: @kbd-color;
28 | background-color: @kbd-bg;
29 | border-radius: @border-radius-small;
30 | box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
31 |
32 | kbd {
33 | padding: 0;
34 | font-size: 100%;
35 | font-weight: bold;
36 | box-shadow: none;
37 | }
38 | }
39 |
40 | // Blocks of code
41 | pre {
42 | display: block;
43 | padding: ((@line-height-computed - 1) / 2);
44 | margin: 0 0 (@line-height-computed / 2);
45 | font-size: (@font-size-base - 1); // 14px to 13px
46 | line-height: @line-height-base;
47 | word-break: break-all;
48 | word-wrap: break-word;
49 | color: @pre-color;
50 | background-color: @pre-bg;
51 | border: 1px solid @pre-border-color;
52 | border-radius: @border-radius-base;
53 |
54 | // Account for some code outputs that place code tags in pre tags
55 | code {
56 | padding: 0;
57 | font-size: inherit;
58 | color: inherit;
59 | white-space: pre-wrap;
60 | background-color: transparent;
61 | border-radius: 0;
62 | }
63 | }
64 |
65 | // Enable scrollable blocks of code
66 | .pre-scrollable {
67 | max-height: @pre-scrollable-max-height;
68 | overflow-y: scroll;
69 | }
70 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/component-animations.less:
--------------------------------------------------------------------------------
1 | //
2 | // Component animations
3 | // --------------------------------------------------
4 |
5 | // Heads up!
6 | //
7 | // We don't use the `.opacity()` mixin here since it causes a bug with text
8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
9 |
10 | .fade {
11 | opacity: 0;
12 | .transition(opacity .15s linear);
13 | &.in {
14 | opacity: 1;
15 | }
16 | }
17 |
18 | .collapse {
19 | display: none;
20 |
21 | &.in { display: block; }
22 | tr&.in { display: table-row; }
23 | tbody&.in { display: table-row-group; }
24 | }
25 |
26 | .collapsing {
27 | position: relative;
28 | height: 0;
29 | overflow: hidden;
30 | .transition-property(~"height, visibility");
31 | .transition-duration(.35s);
32 | .transition-timing-function(ease);
33 | }
34 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/grid.less:
--------------------------------------------------------------------------------
1 | //
2 | // Grid system
3 | // --------------------------------------------------
4 |
5 |
6 | // Container widths
7 | //
8 | // Set the container width, and override it for fixed navbars in media queries.
9 |
10 | .container {
11 | .container-fixed();
12 |
13 | @media (min-width: @screen-sm-min) {
14 | width: @container-sm;
15 | }
16 | @media (min-width: @screen-md-min) {
17 | width: @container-md;
18 | }
19 | @media (min-width: @screen-lg-min) {
20 | width: @container-lg;
21 | }
22 | }
23 |
24 |
25 | // Fluid container
26 | //
27 | // Utilizes the mixin meant for fixed width containers, but without any defined
28 | // width for fluid, full width layouts.
29 |
30 | .container-fluid {
31 | .container-fixed();
32 | }
33 |
34 |
35 | // Row
36 | //
37 | // Rows contain and clear the floats of your columns.
38 |
39 | .row {
40 | .make-row();
41 | }
42 |
43 |
44 | // Columns
45 | //
46 | // Common styles for small and large grid columns
47 |
48 | .make-grid-columns();
49 |
50 |
51 | // Extra small grid
52 | //
53 | // Columns, offsets, pushes, and pulls for extra small devices like
54 | // smartphones.
55 |
56 | .make-grid(xs);
57 |
58 |
59 | // Small grid
60 | //
61 | // Columns, offsets, pushes, and pulls for the small device range, from phones
62 | // to tablets.
63 |
64 | @media (min-width: @screen-sm-min) {
65 | .make-grid(sm);
66 | }
67 |
68 |
69 | // Medium grid
70 | //
71 | // Columns, offsets, pushes, and pulls for the desktop device range.
72 |
73 | @media (min-width: @screen-md-min) {
74 | .make-grid(md);
75 | }
76 |
77 |
78 | // Large grid
79 | //
80 | // Columns, offsets, pushes, and pulls for the large desktop device range.
81 |
82 | @media (min-width: @screen-lg-min) {
83 | .make-grid(lg);
84 | }
85 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/jumbotron.less:
--------------------------------------------------------------------------------
1 | //
2 | // Jumbotron
3 | // --------------------------------------------------
4 |
5 |
6 | .jumbotron {
7 | padding-top: @jumbotron-padding;
8 | padding-bottom: @jumbotron-padding;
9 | margin-bottom: @jumbotron-padding;
10 | color: @jumbotron-color;
11 | background-color: @jumbotron-bg;
12 |
13 | h1,
14 | .h1 {
15 | color: @jumbotron-heading-color;
16 | }
17 |
18 | p {
19 | margin-bottom: (@jumbotron-padding / 2);
20 | font-size: @jumbotron-font-size;
21 | font-weight: 200;
22 | }
23 |
24 | > hr {
25 | border-top-color: darken(@jumbotron-bg, 10%);
26 | }
27 |
28 | .container &,
29 | .container-fluid & {
30 | border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
31 | }
32 |
33 | .container {
34 | max-width: 100%;
35 | }
36 |
37 | @media screen and (min-width: @screen-sm-min) {
38 | padding-top: (@jumbotron-padding * 1.6);
39 | padding-bottom: (@jumbotron-padding * 1.6);
40 |
41 | .container &,
42 | .container-fluid & {
43 | padding-left: (@jumbotron-padding * 2);
44 | padding-right: (@jumbotron-padding * 2);
45 | }
46 |
47 | h1,
48 | .h1 {
49 | font-size: @jumbotron-heading-font-size;
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/labels.less:
--------------------------------------------------------------------------------
1 | //
2 | // Labels
3 | // --------------------------------------------------
4 |
5 | .label {
6 | display: inline;
7 | padding: .2em .6em .3em;
8 | font-size: 75%;
9 | font-weight: bold;
10 | line-height: 1;
11 | color: @label-color;
12 | text-align: center;
13 | white-space: nowrap;
14 | vertical-align: baseline;
15 | border-radius: .25em;
16 |
17 | // Add hover effects, but only for links
18 | a& {
19 | &:hover,
20 | &:focus {
21 | color: @label-link-hover-color;
22 | text-decoration: none;
23 | cursor: pointer;
24 | }
25 | }
26 |
27 | // Empty labels collapse automatically (not available in IE8)
28 | &:empty {
29 | display: none;
30 | }
31 |
32 | // Quick fix for labels in buttons
33 | .btn & {
34 | position: relative;
35 | top: -1px;
36 | }
37 | }
38 |
39 | // Colors
40 | // Contextual variations (linked labels get darker on :hover)
41 |
42 | .label-default {
43 | .label-variant(@label-default-bg);
44 | }
45 |
46 | .label-primary {
47 | .label-variant(@label-primary-bg);
48 | }
49 |
50 | .label-success {
51 | .label-variant(@label-success-bg);
52 | }
53 |
54 | .label-info {
55 | .label-variant(@label-info-bg);
56 | }
57 |
58 | .label-warning {
59 | .label-variant(@label-warning-bg);
60 | }
61 |
62 | .label-danger {
63 | .label-variant(@label-danger-bg);
64 | }
65 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/media.less:
--------------------------------------------------------------------------------
1 | .media {
2 | // Proper spacing between instances of .media
3 | margin-top: 15px;
4 |
5 | &:first-child {
6 | margin-top: 0;
7 | }
8 | }
9 |
10 | .media,
11 | .media-body {
12 | zoom: 1;
13 | overflow: hidden;
14 | }
15 |
16 | .media-body {
17 | width: 10000px;
18 | }
19 |
20 | .media-object {
21 | display: block;
22 |
23 | // Fix collapse in webkit from max-width: 100% and display: table-cell.
24 | &.img-thumbnail {
25 | max-width: none;
26 | }
27 | }
28 |
29 | .media-right,
30 | .media > .pull-right {
31 | padding-left: 10px;
32 | }
33 |
34 | .media-left,
35 | .media > .pull-left {
36 | padding-right: 10px;
37 | }
38 |
39 | .media-left,
40 | .media-right,
41 | .media-body {
42 | display: table-cell;
43 | vertical-align: top;
44 | }
45 |
46 | .media-middle {
47 | vertical-align: middle;
48 | }
49 |
50 | .media-bottom {
51 | vertical-align: bottom;
52 | }
53 |
54 | // Reset margins on headings for tighter default spacing
55 | .media-heading {
56 | margin-top: 0;
57 | margin-bottom: 5px;
58 | }
59 |
60 | // Media list variation
61 | //
62 | // Undo default ul/ol styles
63 | .media-list {
64 | padding-left: 0;
65 | list-style: none;
66 | }
67 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins.less:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------------------------------
3 |
4 | // Utilities
5 | @import "mixins/hide-text.less";
6 | @import "mixins/opacity.less";
7 | @import "mixins/image.less";
8 | @import "mixins/labels.less";
9 | @import "mixins/reset-filter.less";
10 | @import "mixins/resize.less";
11 | @import "mixins/responsive-visibility.less";
12 | @import "mixins/size.less";
13 | @import "mixins/tab-focus.less";
14 | @import "mixins/reset-text.less";
15 | @import "mixins/text-emphasis.less";
16 | @import "mixins/text-overflow.less";
17 | @import "mixins/vendor-prefixes.less";
18 |
19 | // Components
20 | @import "mixins/alerts.less";
21 | @import "mixins/buttons.less";
22 | @import "mixins/panels.less";
23 | @import "mixins/pagination.less";
24 | @import "mixins/list-group.less";
25 | @import "mixins/nav-divider.less";
26 | @import "mixins/forms.less";
27 | @import "mixins/progress-bar.less";
28 | @import "mixins/table-row.less";
29 |
30 | // Skins
31 | @import "mixins/background-variant.less";
32 | @import "mixins/border-radius.less";
33 | @import "mixins/gradients.less";
34 |
35 | // Layout
36 | @import "mixins/clearfix.less";
37 | @import "mixins/center-block.less";
38 | @import "mixins/nav-vertical-align.less";
39 | @import "mixins/grid-framework.less";
40 | @import "mixins/grid.less";
41 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/alerts.less:
--------------------------------------------------------------------------------
1 | // Alerts
2 |
3 | .alert-variant(@background; @border; @text-color) {
4 | background-color: @background;
5 | border-color: @border;
6 | color: @text-color;
7 |
8 | hr {
9 | border-top-color: darken(@border, 5%);
10 | }
11 | .alert-link {
12 | color: darken(@text-color, 10%);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/background-variant.less:
--------------------------------------------------------------------------------
1 | // Contextual backgrounds
2 |
3 | .bg-variant(@color) {
4 | background-color: @color;
5 | a&:hover,
6 | a&:focus {
7 | background-color: darken(@color, 10%);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/border-radius.less:
--------------------------------------------------------------------------------
1 | // Single side border-radius
2 |
3 | .border-top-radius(@radius) {
4 | border-top-right-radius: @radius;
5 | border-top-left-radius: @radius;
6 | }
7 | .border-right-radius(@radius) {
8 | border-bottom-right-radius: @radius;
9 | border-top-right-radius: @radius;
10 | }
11 | .border-bottom-radius(@radius) {
12 | border-bottom-right-radius: @radius;
13 | border-bottom-left-radius: @radius;
14 | }
15 | .border-left-radius(@radius) {
16 | border-bottom-left-radius: @radius;
17 | border-top-left-radius: @radius;
18 | }
19 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/buttons.less:
--------------------------------------------------------------------------------
1 | // Button variants
2 | //
3 | // Easily pump out default styles, as well as :hover, :focus, :active,
4 | // and disabled options for all buttons
5 |
6 | .button-variant(@color; @background; @border) {
7 | color: @color;
8 | background-color: @background;
9 | border-color: @border;
10 |
11 | &:focus,
12 | &.focus {
13 | color: @color;
14 | background-color: darken(@background, 10%);
15 | border-color: darken(@border, 25%);
16 | }
17 | &:hover {
18 | color: @color;
19 | background-color: darken(@background, 10%);
20 | border-color: darken(@border, 12%);
21 | }
22 | &:active,
23 | &.active,
24 | .open > .dropdown-toggle& {
25 | color: @color;
26 | background-color: darken(@background, 10%);
27 | border-color: darken(@border, 12%);
28 |
29 | &:hover,
30 | &:focus,
31 | &.focus {
32 | color: @color;
33 | background-color: darken(@background, 17%);
34 | border-color: darken(@border, 25%);
35 | }
36 | }
37 | &:active,
38 | &.active,
39 | .open > .dropdown-toggle& {
40 | background-image: none;
41 | }
42 | &.disabled,
43 | &[disabled],
44 | fieldset[disabled] & {
45 | &,
46 | &:hover,
47 | &:focus,
48 | &.focus,
49 | &:active,
50 | &.active {
51 | background-color: @background;
52 | border-color: @border;
53 | }
54 | }
55 |
56 | .badge {
57 | color: @background;
58 | background-color: @color;
59 | }
60 | }
61 |
62 | // Button sizes
63 | .button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
64 | padding: @padding-vertical @padding-horizontal;
65 | font-size: @font-size;
66 | line-height: @line-height;
67 | border-radius: @border-radius;
68 | }
69 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/center-block.less:
--------------------------------------------------------------------------------
1 | // Center-align a block level element
2 |
3 | .center-block() {
4 | display: block;
5 | margin-left: auto;
6 | margin-right: auto;
7 | }
8 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/clearfix.less:
--------------------------------------------------------------------------------
1 | // Clearfix
2 | //
3 | // For modern browsers
4 | // 1. The space content is one way to avoid an Opera bug when the
5 | // contenteditable attribute is included anywhere else in the document.
6 | // Otherwise it causes space to appear at the top and bottom of elements
7 | // that are clearfixed.
8 | // 2. The use of `table` rather than `block` is only necessary if using
9 | // `:before` to contain the top-margins of child elements.
10 | //
11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/
12 |
13 | .clearfix() {
14 | &:before,
15 | &:after {
16 | content: " "; // 1
17 | display: table; // 2
18 | }
19 | &:after {
20 | clear: both;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/hide-text.less:
--------------------------------------------------------------------------------
1 | // CSS image replacement
2 | //
3 | // Heads up! v3 launched with only `.hide-text()`, but per our pattern for
4 | // mixins being reused as classes with the same name, this doesn't hold up. As
5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
6 | //
7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
8 |
9 | // Deprecated as of v3.0.1 (will be removed in v4)
10 | .hide-text() {
11 | font: ~"0/0" a;
12 | color: transparent;
13 | text-shadow: none;
14 | background-color: transparent;
15 | border: 0;
16 | }
17 |
18 | // New mixin to use as of v3.0.1
19 | .text-hide() {
20 | .hide-text();
21 | }
22 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/image.less:
--------------------------------------------------------------------------------
1 | // Image Mixins
2 | // - Responsive image
3 | // - Retina image
4 |
5 |
6 | // Responsive image
7 | //
8 | // Keep images from scaling beyond the width of their parents.
9 | .img-responsive(@display: block) {
10 | display: @display;
11 | max-width: 100%; // Part 1: Set a maximum relative to the parent
12 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
13 | }
14 |
15 |
16 | // Retina image
17 | //
18 | // Short retina mixin for setting background-image and -size. Note that the
19 | // spelling of `min--moz-device-pixel-ratio` is intentional.
20 | .img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
21 | background-image: url("@{file-1x}");
22 |
23 | @media
24 | only screen and (-webkit-min-device-pixel-ratio: 2),
25 | only screen and ( min--moz-device-pixel-ratio: 2),
26 | only screen and ( -o-min-device-pixel-ratio: 2/1),
27 | only screen and ( min-device-pixel-ratio: 2),
28 | only screen and ( min-resolution: 192dpi),
29 | only screen and ( min-resolution: 2dppx) {
30 | background-image: url("@{file-2x}");
31 | background-size: @width-1x @height-1x;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/labels.less:
--------------------------------------------------------------------------------
1 | // Labels
2 |
3 | .label-variant(@color) {
4 | background-color: @color;
5 |
6 | &[href] {
7 | &:hover,
8 | &:focus {
9 | background-color: darken(@color, 10%);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/list-group.less:
--------------------------------------------------------------------------------
1 | // List Groups
2 |
3 | .list-group-item-variant(@state; @background; @color) {
4 | .list-group-item-@{state} {
5 | color: @color;
6 | background-color: @background;
7 |
8 | a&,
9 | button& {
10 | color: @color;
11 |
12 | .list-group-item-heading {
13 | color: inherit;
14 | }
15 |
16 | &:hover,
17 | &:focus {
18 | color: @color;
19 | background-color: darken(@background, 5%);
20 | }
21 | &.active,
22 | &.active:hover,
23 | &.active:focus {
24 | color: #fff;
25 | background-color: @color;
26 | border-color: @color;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/nav-divider.less:
--------------------------------------------------------------------------------
1 | // Horizontal dividers
2 | //
3 | // Dividers (basically an hr) within dropdowns and nav lists
4 |
5 | .nav-divider(@color: #e5e5e5) {
6 | height: 1px;
7 | margin: ((@line-height-computed / 2) - 1) 0;
8 | overflow: hidden;
9 | background-color: @color;
10 | }
11 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/nav-vertical-align.less:
--------------------------------------------------------------------------------
1 | // Navbar vertical align
2 | //
3 | // Vertically center elements in the navbar.
4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
5 |
6 | .navbar-vertical-align(@element-height) {
7 | margin-top: ((@navbar-height - @element-height) / 2);
8 | margin-bottom: ((@navbar-height - @element-height) / 2);
9 | }
10 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/opacity.less:
--------------------------------------------------------------------------------
1 | // Opacity
2 |
3 | .opacity(@opacity) {
4 | opacity: @opacity;
5 | // IE8 filter
6 | @opacity-ie: (@opacity * 100);
7 | filter: ~"alpha(opacity=@{opacity-ie})";
8 | }
9 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/pagination.less:
--------------------------------------------------------------------------------
1 | // Pagination
2 |
3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
4 | > li {
5 | > a,
6 | > span {
7 | padding: @padding-vertical @padding-horizontal;
8 | font-size: @font-size;
9 | line-height: @line-height;
10 | }
11 | &:first-child {
12 | > a,
13 | > span {
14 | .border-left-radius(@border-radius);
15 | }
16 | }
17 | &:last-child {
18 | > a,
19 | > span {
20 | .border-right-radius(@border-radius);
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/panels.less:
--------------------------------------------------------------------------------
1 | // Panels
2 |
3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
4 | border-color: @border;
5 |
6 | & > .panel-heading {
7 | color: @heading-text-color;
8 | background-color: @heading-bg-color;
9 | border-color: @heading-border;
10 |
11 | + .panel-collapse > .panel-body {
12 | border-top-color: @border;
13 | }
14 | .badge {
15 | color: @heading-bg-color;
16 | background-color: @heading-text-color;
17 | }
18 | }
19 | & > .panel-footer {
20 | + .panel-collapse > .panel-body {
21 | border-bottom-color: @border;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/progress-bar.less:
--------------------------------------------------------------------------------
1 | // Progress bars
2 |
3 | .progress-bar-variant(@color) {
4 | background-color: @color;
5 |
6 | // Deprecated parent class requirement as of v3.2.0
7 | .progress-striped & {
8 | #gradient > .striped();
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/reset-filter.less:
--------------------------------------------------------------------------------
1 | // Reset filters for IE
2 | //
3 | // When you need to remove a gradient background, do not forget to use this to reset
4 | // the IE filter for IE9 and below.
5 |
6 | .reset-filter() {
7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
8 | }
9 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/reset-text.less:
--------------------------------------------------------------------------------
1 | .reset-text() {
2 | font-family: @font-family-base;
3 | // We deliberately do NOT reset font-size.
4 | font-style: normal;
5 | font-weight: normal;
6 | letter-spacing: normal;
7 | line-break: auto;
8 | line-height: @line-height-base;
9 | text-align: left; // Fallback for where `start` is not supported
10 | text-align: start;
11 | text-decoration: none;
12 | text-shadow: none;
13 | text-transform: none;
14 | white-space: normal;
15 | word-break: normal;
16 | word-spacing: normal;
17 | word-wrap: normal;
18 | }
19 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/resize.less:
--------------------------------------------------------------------------------
1 | // Resize anything
2 |
3 | .resizable(@direction) {
4 | resize: @direction; // Options: horizontal, vertical, both
5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
6 | }
7 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/responsive-visibility.less:
--------------------------------------------------------------------------------
1 | // Responsive utilities
2 |
3 | //
4 | // More easily include all the states for responsive-utilities.less.
5 | .responsive-visibility() {
6 | display: block !important;
7 | table& { display: table !important; }
8 | tr& { display: table-row !important; }
9 | th&,
10 | td& { display: table-cell !important; }
11 | }
12 |
13 | .responsive-invisibility() {
14 | display: none !important;
15 | }
16 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/size.less:
--------------------------------------------------------------------------------
1 | // Sizing shortcuts
2 |
3 | .size(@width; @height) {
4 | width: @width;
5 | height: @height;
6 | }
7 |
8 | .square(@size) {
9 | .size(@size; @size);
10 | }
11 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/tab-focus.less:
--------------------------------------------------------------------------------
1 | // WebKit-style focus
2 |
3 | .tab-focus() {
4 | // Default
5 | outline: thin dotted;
6 | // WebKit
7 | outline: 5px auto -webkit-focus-ring-color;
8 | outline-offset: -2px;
9 | }
10 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/table-row.less:
--------------------------------------------------------------------------------
1 | // Tables
2 |
3 | .table-row-variant(@state; @background) {
4 | // Exact selectors below required to override `.table-striped` and prevent
5 | // inheritance to nested tables.
6 | .table > thead > tr,
7 | .table > tbody > tr,
8 | .table > tfoot > tr {
9 | > td.@{state},
10 | > th.@{state},
11 | &.@{state} > td,
12 | &.@{state} > th {
13 | background-color: @background;
14 | }
15 | }
16 |
17 | // Hover states for `.table-hover`
18 | // Note: this is not available for cells or rows within `thead` or `tfoot`.
19 | .table-hover > tbody > tr {
20 | > td.@{state}:hover,
21 | > th.@{state}:hover,
22 | &.@{state}:hover > td,
23 | &:hover > .@{state},
24 | &.@{state}:hover > th {
25 | background-color: darken(@background, 5%);
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/text-emphasis.less:
--------------------------------------------------------------------------------
1 | // Typography
2 |
3 | .text-emphasis-variant(@color) {
4 | color: @color;
5 | a&:hover,
6 | a&:focus {
7 | color: darken(@color, 10%);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/mixins/text-overflow.less:
--------------------------------------------------------------------------------
1 | // Text overflow
2 | // Requires inline-block or block for proper styling
3 |
4 | .text-overflow() {
5 | overflow: hidden;
6 | text-overflow: ellipsis;
7 | white-space: nowrap;
8 | }
9 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/pager.less:
--------------------------------------------------------------------------------
1 | //
2 | // Pager pagination
3 | // --------------------------------------------------
4 |
5 |
6 | .pager {
7 | padding-left: 0;
8 | margin: @line-height-computed 0;
9 | list-style: none;
10 | text-align: center;
11 | &:extend(.clearfix all);
12 | li {
13 | display: inline;
14 | > a,
15 | > span {
16 | display: inline-block;
17 | padding: 5px 14px;
18 | background-color: @pager-bg;
19 | border: 1px solid @pager-border;
20 | border-radius: @pager-border-radius;
21 | }
22 |
23 | > a:hover,
24 | > a:focus {
25 | text-decoration: none;
26 | background-color: @pager-hover-bg;
27 | }
28 | }
29 |
30 | .next {
31 | > a,
32 | > span {
33 | float: right;
34 | }
35 | }
36 |
37 | .previous {
38 | > a,
39 | > span {
40 | float: left;
41 | }
42 | }
43 |
44 | .disabled {
45 | > a,
46 | > a:hover,
47 | > a:focus,
48 | > span {
49 | color: @pager-disabled-color;
50 | background-color: @pager-bg;
51 | cursor: @cursor-disabled;
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/responsive-embed.less:
--------------------------------------------------------------------------------
1 | // Embeds responsive
2 | //
3 | // Credit: Nicolas Gallagher and SUIT CSS.
4 |
5 | .embed-responsive {
6 | position: relative;
7 | display: block;
8 | height: 0;
9 | padding: 0;
10 | overflow: hidden;
11 |
12 | .embed-responsive-item,
13 | iframe,
14 | embed,
15 | object,
16 | video {
17 | position: absolute;
18 | top: 0;
19 | left: 0;
20 | bottom: 0;
21 | height: 100%;
22 | width: 100%;
23 | border: 0;
24 | }
25 | }
26 |
27 | // Modifier class for 16:9 aspect ratio
28 | .embed-responsive-16by9 {
29 | padding-bottom: 56.25%;
30 | }
31 |
32 | // Modifier class for 4:3 aspect ratio
33 | .embed-responsive-4by3 {
34 | padding-bottom: 75%;
35 | }
36 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/thumbnails.less:
--------------------------------------------------------------------------------
1 | //
2 | // Thumbnails
3 | // --------------------------------------------------
4 |
5 |
6 | // Mixin and adjust the regular image class
7 | .thumbnail {
8 | display: block;
9 | padding: @thumbnail-padding;
10 | margin-bottom: @line-height-computed;
11 | line-height: @line-height-base;
12 | background-color: @thumbnail-bg;
13 | border: 1px solid @thumbnail-border;
14 | border-radius: @thumbnail-border-radius;
15 | .transition(border .2s ease-in-out);
16 |
17 | > img,
18 | a > img {
19 | &:extend(.img-responsive);
20 | margin-left: auto;
21 | margin-right: auto;
22 | }
23 |
24 | // Add a hover state for linked versions only
25 | a&:hover,
26 | a&:focus,
27 | a&.active {
28 | border-color: @link-color;
29 | }
30 |
31 | // Image captions
32 | .caption {
33 | padding: @thumbnail-caption-padding;
34 | color: @thumbnail-caption-color;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/utilities.less:
--------------------------------------------------------------------------------
1 | //
2 | // Utility classes
3 | // --------------------------------------------------
4 |
5 |
6 | // Floats
7 | // -------------------------
8 |
9 | .clearfix {
10 | .clearfix();
11 | }
12 | .center-block {
13 | .center-block();
14 | }
15 | .pull-right {
16 | float: right !important;
17 | }
18 | .pull-left {
19 | float: left !important;
20 | }
21 |
22 |
23 | // Toggling content
24 | // -------------------------
25 |
26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
27 | .hide {
28 | display: none !important;
29 | }
30 | .show {
31 | display: block !important;
32 | }
33 | .invisible {
34 | visibility: hidden;
35 | }
36 | .text-hide {
37 | .text-hide();
38 | }
39 |
40 |
41 | // Hide from screenreaders and browsers
42 | //
43 | // Credit: HTML5 Boilerplate
44 |
45 | .hidden {
46 | display: none !important;
47 | }
48 |
49 |
50 | // For Affix plugin
51 | // -------------------------
52 |
53 | .affix {
54 | position: fixed;
55 | }
56 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/less/wells.less:
--------------------------------------------------------------------------------
1 | //
2 | // Wells
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .well {
8 | min-height: 20px;
9 | padding: 19px;
10 | margin-bottom: 20px;
11 | background-color: @well-bg;
12 | border: 1px solid @well-border;
13 | border-radius: @border-radius-base;
14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
15 | blockquote {
16 | border-color: #ddd;
17 | border-color: rgba(0,0,0,.15);
18 | }
19 | }
20 |
21 | // Sizes
22 | .well-lg {
23 | padding: 24px;
24 | border-radius: @border-radius-large;
25 | }
26 | .well-sm {
27 | padding: 9px;
28 | border-radius: @border-radius-small;
29 | }
30 |
--------------------------------------------------------------------------------
/public/bower_components/bootstrap/package.js:
--------------------------------------------------------------------------------
1 | // package metadata file for Meteor.js
2 |
3 | /* jshint strict:false */
4 | /* global Package:true */
5 |
6 | Package.describe({
7 | name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap
8 | summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.',
9 | version: '3.3.5',
10 | git: 'https://github.com/twbs/bootstrap.git'
11 | });
12 |
13 | Package.onUse(function (api) {
14 | api.versionsFrom('METEOR@1.0');
15 | api.use('jquery', 'client');
16 | api.addFiles([
17 | 'dist/fonts/glyphicons-halflings-regular.eot',
18 | 'dist/fonts/glyphicons-halflings-regular.svg',
19 | 'dist/fonts/glyphicons-halflings-regular.ttf',
20 | 'dist/fonts/glyphicons-halflings-regular.woff',
21 | 'dist/fonts/glyphicons-halflings-regular.woff2',
22 | 'dist/css/bootstrap.css',
23 | 'dist/js/bootstrap.js'
24 | ], 'client');
25 | });
26 |
--------------------------------------------------------------------------------
/public/bower_components/humanize/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "humanize",
3 | "version": "0.0.9",
4 | "repository": {
5 | "type": "git",
6 | "url": "git://github.com/taijinlee/humanize"
7 | },
8 | "homepage": "https://github.com/taijinlee/humanize",
9 | "_release": "0.0.9",
10 | "_resolution": {
11 | "type": "version",
12 | "tag": "0.0.9",
13 | "commit": "81eac6c53289951a084001674e8bedebdafcc474"
14 | },
15 | "_source": "git://github.com/taijinlee/humanize.git",
16 | "_target": "~0.0.9",
17 | "_originalSource": "humanize"
18 | }
--------------------------------------------------------------------------------
/public/bower_components/humanize/.gitignore:
--------------------------------------------------------------------------------
1 | *~
2 | *.swp
3 | node_modules
4 |
--------------------------------------------------------------------------------
/public/bower_components/humanize/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2012 Tai-Jin Lee http://www.taijinlee.com
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining
4 | a copy of this software and associated documentation files (the
5 | "Software"), to deal in the Software without restriction, including
6 | without limitation the rights to use, copy, modify, merge, publish,
7 | distribute, sublicense, and/or sell copies of the Software, and to
8 | permit persons to whom the Software is furnished to do so, subject to
9 | the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be
12 | included in all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/public/bower_components/humanize/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "humanize",
3 | "version": "0.0.9",
4 | "repository": {
5 | "type": "git",
6 | "url": "git://github.com/taijinlee/humanize"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/public/bower_components/humanize/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "humanize",
3 | "description": "Javascript string formatter for human readability",
4 | "homepage": "https://github.com/taijinlee/humanize",
5 | "keywords": [
6 | "util",
7 | "client",
8 | "browser"
9 | ],
10 | "author": {
11 | "name": "Tai-Jin Lee",
12 | "email": "taijin@gmail.com"
13 | },
14 | "repository": {
15 | "type": "git",
16 | "url": "git://github.com/taijinlee/humanize.git"
17 | },
18 | "main": "humanize.js",
19 | "version": "0.0.9",
20 | "dependencies": {},
21 | "devDependencies": {
22 | "mocha": "1.0.3",
23 | "should": "0.6.3",
24 | "jshint": "0.7.1"
25 | },
26 | "optionalDependencies": {},
27 | "engines": {
28 | "node": "*"
29 | },
30 | "scripts": {
31 | "test": "./node_modules/jshint/bin/hint humanize.js; find specs -type f -a -name *.spec.js -exec ./node_modules/mocha/bin/mocha --globals requirejsVars -R list --require should {} \\;"
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/public/bower_components/jquery/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery",
3 | "version": "2.1.4",
4 | "main": "dist/jquery.js",
5 | "license": "MIT",
6 | "ignore": [
7 | "**/.*",
8 | "build",
9 | "dist/cdn",
10 | "speed",
11 | "test",
12 | "*.md",
13 | "AUTHORS.txt",
14 | "Gruntfile.js",
15 | "package.json"
16 | ],
17 | "devDependencies": {
18 | "sizzle": "2.1.1-jquery.2.1.2",
19 | "requirejs": "2.1.10",
20 | "qunit": "1.14.0",
21 | "sinon": "1.8.1"
22 | },
23 | "keywords": [
24 | "jquery",
25 | "javascript",
26 | "library"
27 | ],
28 | "homepage": "https://github.com/jquery/jquery",
29 | "_release": "2.1.4",
30 | "_resolution": {
31 | "type": "version",
32 | "tag": "2.1.4",
33 | "commit": "7751e69b615c6eca6f783a81e292a55725af6b85"
34 | },
35 | "_source": "git://github.com/jquery/jquery.git",
36 | "_target": ">=1.9.0",
37 | "_originalSource": "jquery"
38 | }
--------------------------------------------------------------------------------
/public/bower_components/jquery/MIT-LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright 2014 jQuery Foundation and other contributors
2 | http://jquery.com/
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining
5 | a copy of this software and associated documentation files (the
6 | "Software"), to deal in the Software without restriction, including
7 | without limitation the rights to use, copy, modify, merge, publish,
8 | distribute, sublicense, and/or sell copies of the Software, and to
9 | permit persons to whom the Software is furnished to do so, subject to
10 | the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be
13 | included in all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/public/bower_components/jquery/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jquery",
3 | "version": "2.1.4",
4 | "main": "dist/jquery.js",
5 | "license": "MIT",
6 | "ignore": [
7 | "**/.*",
8 | "build",
9 | "dist/cdn",
10 | "speed",
11 | "test",
12 | "*.md",
13 | "AUTHORS.txt",
14 | "Gruntfile.js",
15 | "package.json"
16 | ],
17 | "devDependencies": {
18 | "sizzle": "2.1.1-jquery.2.1.2",
19 | "requirejs": "2.1.10",
20 | "qunit": "1.14.0",
21 | "sinon": "1.8.1"
22 | },
23 | "keywords": [
24 | "jquery",
25 | "javascript",
26 | "library"
27 | ]
28 | }
29 |
--------------------------------------------------------------------------------
/public/bower_components/jquery/src/ajax/parseJSON.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | // Support: Android 2.3
6 | // Workaround failure to string-cast null input
7 | jQuery.parseJSON = function( data ) {
8 | return JSON.parse( data + "" );
9 | };
10 |
11 | return jQuery.parseJSON;
12 |
13 | });
14 |
--------------------------------------------------------------------------------
/public/bower_components/jquery/src/ajax/parseXML.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core"
3 | ], function( jQuery ) {
4 |
5 | // Cross-browser xml parsing
6 | jQuery.parseXML = function( data ) {
7 | var xml, tmp;
8 | if ( !data || typeof data !== "string" ) {
9 | return null;
10 | }
11 |
12 | // Support: IE9
13 | try {
14 | tmp = new DOMParser();
15 | xml = tmp.parseFromString( data, "text/xml" );
16 | } catch ( e ) {
17 | xml = undefined;
18 | }
19 |
20 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
21 | jQuery.error( "Invalid XML: " + data );
22 | }
23 | return xml;
24 | };
25 |
26 | return jQuery.parseXML;
27 |
28 | });
29 |
--------------------------------------------------------------------------------
/public/bower_components/jquery/src/ajax/script.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core",
3 | "../ajax"
4 | ], function( jQuery ) {
5 |
6 | // Install script dataType
7 | jQuery.ajaxSetup({
8 | accepts: {
9 | script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
10 | },
11 | contents: {
12 | script: /(?:java|ecma)script/
13 | },
14 | converters: {
15 | "text script": function( text ) {
16 | jQuery.globalEval( text );
17 | return text;
18 | }
19 | }
20 | });
21 |
22 | // Handle cache's special case and crossDomain
23 | jQuery.ajaxPrefilter( "script", function( s ) {
24 | if ( s.cache === undefined ) {
25 | s.cache = false;
26 | }
27 | if ( s.crossDomain ) {
28 | s.type = "GET";
29 | }
30 | });
31 |
32 | // Bind script tag hack transport
33 | jQuery.ajaxTransport( "script", function( s ) {
34 | // This transport only deals with cross domain requests
35 | if ( s.crossDomain ) {
36 | var script, callback;
37 | return {
38 | send: function( _, complete ) {
39 | script = jQuery("