method_draw 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +148 -0
- data/Rakefile +23 -0
- data/app/assets/javascripts/method_draw.js +9 -0
- data/app/assets/javascripts/method_draw/base64.js +95 -0
- data/app/assets/javascripts/method_draw_embed.js +76 -0
- data/app/assets/stylesheets/sketchily.css +6 -0
- data/app/helpers/method_draw_helper.rb +35 -0
- data/app/views/method_draw/_embed.html.erb +51 -0
- data/app/views/method_draw/_method_draw.html.erb +19 -0
- data/app/views/method_draw/_method_draw_tag.html.erb +14 -0
- data/lib/method_draw.rb +16 -0
- data/lib/method_draw/engine.rb +4 -0
- data/lib/method_draw/method_draw.rb +37 -0
- data/lib/method_draw/method_draw_tag.rb +20 -0
- data/lib/method_draw/version.rb +3 -0
- data/spec/app/helpers/method_draw_helper_spec.rb +8 -0
- data/spec/dummy/README.md +3 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/controllers/drawings_controller.rb +18 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/drawing.rb +2 -0
- data/spec/dummy/app/views/drawings/method_draw.html.erb +3 -0
- data/spec/dummy/app/views/drawings/method_draw_tag.html.erb +3 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +27 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +29 -0
- data/spec/dummy/config/environments/production.rb +80 -0
- data/spec/dummy/config/environments/test.rb +36 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +12 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +8 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/0_create_drawings.rb +7 -0
- data/spec/dummy/db/schema.rb +20 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +922 -0
- data/spec/dummy/log/test.log +181 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/01e63791dcd008779246d1eeeace9408 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/061f36c32f08daef6eca93b74eaf74fd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1dbfe77fba798ba3dc24571c3b6d7eed +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1fd7477d83ec1798c2bc740be42bd6b2 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/203471220004cb0cc667b886fb87dc46 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/213e12fc648032455ca0b118e987cca6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/296bbe63b0505bc5be472fc1c8a1a5fd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3239b44c026d7c1646c17a10c72905bf +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/38c8fbf05056bbe66399b6923521dc20 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3e30c8cfdf7deeda4607e4a8298f09a5 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/4bdd61ba53e8d9b7c19afea13c6e8985 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/52b0b11efea48f1fe5e46eeb4aa20193 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5ef314d6f1af1570631d60b7f9a96d6c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6215f00c593e1789ef865a545b17fc14 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/624fdd5478edd235a86af4b6168d0f75 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6299190ac3952cf7eee042e60c9aee89 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/62a95a2d67ec78570de6d0b31436206a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/65ed942dea29700b739c2292791eb65e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/66eb709561f77a29885af4423a3eb193 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6f8f2c21bc49ae5ebad6e8a96cea4fe6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/85dab60ed9ec9625b7ee22d4342fe26c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/86358bce0bfd5de6ac8afb1bfa9d675b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8b835ce894c1218dea1e7c83a9109d2d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8e177cc7106653a1e053bb2444bb43a5 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8f41435d82ae4df55ae7dfdc1e99b0bb +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/94be0a0bca76437d0766c265a9cdecda +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/9a093e6973aa150a0a4388167364593d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a280ac195f56a87267d2ec5d3e22ebcd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b13cddebc9106da6cfaf949ab3856d1f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b29ac216cb03ce2f30655a0d9bed77d4 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c39d32e3ef6cc89f9c522212e65c49e1 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c9910a0652952be02900dc71594d4384 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cb14e22baac3ab2cc947628f283e117b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d1475c156face9f06092c9cf89905372 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d22aa5a4d864d00cced2437352fe8fe4 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d46cc5e60d1b2a20d622cdf9bab35fad +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d7f27a7f35278e87c69668a65683360a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e0080336bb31d78e9efab59b234e0d85 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e06104d99b055e792effca7bd66ad384 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e095df19da361d5f53d90f6749a38ea6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e5fb97d39fdd2e383e61115ef06079fd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e6d1ec9817258cfda7c68499a841a9d2 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/edec019e8f1d7e758eb45524a913fd47 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f37cf330dccb15bee2a195f643f3ba29 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/fc84011813992cacde5880c6b21701de +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/061f36c32f08daef6eca93b74eaf74fd +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/38c8fbf05056bbe66399b6923521dc20 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/3e30c8cfdf7deeda4607e4a8298f09a5 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/52b0b11efea48f1fe5e46eeb4aa20193 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/5ef314d6f1af1570631d60b7f9a96d6c +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/6299190ac3952cf7eee042e60c9aee89 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/62a95a2d67ec78570de6d0b31436206a +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/65ed942dea29700b739c2292791eb65e +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/85dab60ed9ec9625b7ee22d4342fe26c +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/a280ac195f56a87267d2ec5d3e22ebcd +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/cb14e22baac3ab2cc947628f283e117b +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d1475c156face9f06092c9cf89905372 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/e0080336bb31d78e9efab59b234e0d85 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy/tmp/pids/server.pid +1 -0
- data/spec/features/method_draw_spec.rb +10 -0
- data/spec/features/method_draw_tag_spec.rb +11 -0
- data/spec/lib/method_draw/method_draw_spec.rb +27 -0
- data/spec/lib/method_draw/method_draw_tag_spec.rb +19 -0
- data/spec/lib/method_draw_spec.rb +11 -0
- data/spec/test_helper.rb +24 -0
- data/vendor/assets/javascripts/method-draw-js/browser-not-supported.html +27 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Anivers-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Anivers-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Anivers-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Arvo-Regular-webfont.svg +145 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Arvo-Regular-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Junction-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Junction-webfont.svg +133 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Junction-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Junction-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/League_Gothic-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/League_Gothic-webfont.svg +235 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/League_Gothic-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/League_Gothic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab_Italic-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab_Italic-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab_Italic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/arvo-bold-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/arvo-bolditalic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/arvo-italic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/arvo-regular-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/euphoriascript-regular-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood-webfont.svg +939 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood_italic-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood_italic-webfont.svg +682 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood_italic-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood_italic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fertigo-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fertigo-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fertigo-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/oswald-bold-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/oswald-light-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/shadowsintolight-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/simonetta-black-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/simonetta-blackitalic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/simonetta-italic-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/simonetta-regular-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/test.html +62 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/test.svg +15 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/test_ff.svg +16 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/test_ffsvg.svg +13 -0
- data/vendor/assets/javascripts/method-draw-js/css/fonts.css +72 -0
- data/vendor/assets/javascripts/method-draw-js/css/method-draw.compiled.css +417 -0
- data/vendor/assets/javascripts/method-draw-js/css/method-draw.css +2083 -0
- data/vendor/assets/javascripts/method-draw-js/embedapi.html +56 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/closepath_icons.svg +41 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-arrows.js +298 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-closepath.js +92 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-connector.js +587 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-eyedropper.js +135 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-foreignobject.js +277 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-grid.js +186 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-helloworld.js +78 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-imagelib.js +444 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-imagelib.xml +14 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-markers.js +576 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-server_moinsave.js +56 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-server_opensave.js +180 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-shapes.js +358 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-shapes.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-shapes.xml +8 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/eyedropper-icon.xml +17 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/eyedropper.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/eyedropper.svg +15 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/fileopen.php +31 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/filesave.php +44 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/foreignobject-icons.xml +96 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/grid-icon.xml +30 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/helloworld-icon.xml +21 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/imagelib/index.html +64 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/imagelib/smiley.svg +12 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/markers-icons.xml +115 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib.svg +10 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/arrow.json +40 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/dialog_balloon.json +14 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/flowchart.json +20 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/game.json +13 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/math.json +8 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/misc.json +6 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/music.json +21 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/nature.json +36 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/object.json +30 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/raphael.txt +12 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/raphael_1.json +7 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/social.json +21 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/symbol.json +35 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/ui.json +57 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/weather.json +26 -0
- data/vendor/assets/javascripts/method-draw-js/icons/jquery.svgicons.js +471 -0
- data/vendor/assets/javascripts/method-draw-js/images/AlphaBar.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/Bars.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/Maps.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/NoColor.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/README.txt +61 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-bottom.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-bottom.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-center.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-center.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-left.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-left.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-middle.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-middle.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-right.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-right.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-top.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-top.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/bar-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/bold.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/cancel.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/circle.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/clear.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/clone.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/conn.svg +29 -0
- data/vendor/assets/javascripts/method-draw-js/images/copy.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/cross.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/cut.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/delete.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/document-properties.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/drag.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/dragging.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/dropdown.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/ellipse.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/ellipse.svg +8 -0
- data/vendor/assets/javascripts/method-draw-js/images/eye.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/eye.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/eyedropper.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/eyedropper_tool.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/fhpath.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/flyouth.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/flyup.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/freehand-circle.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/freehand-square.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/go-down.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/go-up.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/image.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/image.svg +12 -0
- data/vendor/assets/javascripts/method-draw-js/images/italic.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/italic.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/line.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/link_controls.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/logo.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/map-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/mappoint.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/mappoint_c.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/mappoint_f.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/move_bottom.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/move_top.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/node_clone.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/node_delete.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/none.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/open.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/paste.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/path.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/path.svg +10 -0
- data/vendor/assets/javascripts/method-draw-js/images/pencil.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/pencil.svg +11 -0
- data/vendor/assets/javascripts/method-draw-js/images/pencil_cursor.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/picker.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/placeholder.svg +10 -0
- data/vendor/assets/javascripts/method-draw-js/images/polygon.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/polygon.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/preview-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/rangearrows.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/rangearrows2.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/rect.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/redo.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/reorient.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/rotate.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/save.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/select.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/select.svg +10 -0
- data/vendor/assets/javascripts/method-draw-js/images/select_node.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/sep.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/shape_group.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/shape_ungroup.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/source.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/spinbtn_updn_big.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/square.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/svg_edit_icons.svg +455 -0
- data/vendor/assets/javascripts/method-draw-js/images/svg_edit_icons.svgz +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/text.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/text.svg +10 -0
- data/vendor/assets/javascripts/method-draw-js/images/to_path.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/undo.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/view-refresh.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/wave.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/wireframe.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/zoom.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/zoom.svg +12 -0
- data/vendor/assets/javascripts/method-draw-js/index.html +631 -0
- data/vendor/assets/javascripts/method-draw-js/lib/canvg/canvg.js +2620 -0
- data/vendor/assets/javascripts/method-draw-js/lib/canvg/rgbcolor.js +287 -0
- data/vendor/assets/javascripts/method-draw-js/lib/contextmenu.js +68 -0
- data/vendor/assets/javascripts/method-draw-js/lib/contextmenu/jquery.contextMenu.js +223 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/LICENSE +202 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/README +3 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/css/jPicker.css +250 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/css/jgraduate.css +332 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/AlphaBar.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/Bars.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/Maps.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/NoColor.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/bar-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/eyedropper.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/map-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/mappoint.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/mappoint_c.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/mappoint_f.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/picker.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/preview-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/rangearrows.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/rangearrows2.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/jpicker.min.js +2087 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/jquery.jgraduate.js +1175 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/jquery.jgraduate.min.js +37 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jquery-draginput.js +181 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jquery-ui/jquery-ui-1.8.17.custom.min.js +54 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jquery-ui/jquery-ui-1.8.custom.min.js +84 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jquery.js +2 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jquerybbq/jquery.bbq.min.js +18 -0
- data/vendor/assets/javascripts/method-draw-js/lib/js-hotkeys/README.md +45 -0
- data/vendor/assets/javascripts/method-draw-js/lib/js-hotkeys/jquery.hotkeys.min.js +15 -0
- data/vendor/assets/javascripts/method-draw-js/lib/mousewheel.js +84 -0
- data/vendor/assets/javascripts/method-draw-js/lib/requestanimationframe.js +24 -0
- data/vendor/assets/javascripts/method-draw-js/lib/taphold.js +136 -0
- data/vendor/assets/javascripts/method-draw-js/lib/touch.js +28 -0
- data/vendor/assets/javascripts/method-draw-js/method-draw.compiled.css +417 -0
- data/vendor/assets/javascripts/method-draw-js/method-draw.compiled.js +692 -0
- data/vendor/assets/javascripts/method-draw-js/method-draw.manifest +121 -0
- data/vendor/assets/javascripts/method-draw-js/src/browser.js +181 -0
- data/vendor/assets/javascripts/method-draw-js/src/dialog.js +49 -0
- data/vendor/assets/javascripts/method-draw-js/src/dragupload.js +11 -0
- data/vendor/assets/javascripts/method-draw-js/src/draw.js +533 -0
- data/vendor/assets/javascripts/method-draw-js/src/embedapi.js +173 -0
- data/vendor/assets/javascripts/method-draw-js/src/history.js +601 -0
- data/vendor/assets/javascripts/method-draw-js/src/math.js +247 -0
- data/vendor/assets/javascripts/method-draw-js/src/method-draw.js +4140 -0
- data/vendor/assets/javascripts/method-draw-js/src/path.js +979 -0
- data/vendor/assets/javascripts/method-draw-js/src/sanitize.js +273 -0
- data/vendor/assets/javascripts/method-draw-js/src/select.js +608 -0
- data/vendor/assets/javascripts/method-draw-js/src/svgcanvas.js +9047 -0
- data/vendor/assets/javascripts/method-draw-js/src/svgtransformlist.js +291 -0
- data/vendor/assets/javascripts/method-draw-js/src/svgutils.js +648 -0
- data/vendor/assets/javascripts/method-draw-js/src/units.js +281 -0
- data/vendor/assets/javascripts/method-draw-js/svgedit.compiled.css +417 -0
- data/vendor/assets/javascripts/method-draw-js/svgedit.compiled.js +691 -0
- data/vendor/assets/javascripts/method-draw-js/temp.css +2665 -0
- metadata +619 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: bf121cd214ffb886459d28de2bef43d829701246
|
|
4
|
+
data.tar.gz: 601edad72d97d5c6916ea1491d3f28d78a4bec8d
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: e1e6327c1c19d5f17d99019d5539eba3eb7cccd952e26a2da477d230eead65b81fd4e50f02616c1236ddab482ce3d5d43aeccd56581fbeb0b0d67ae00b8c2c02
|
|
7
|
+
data.tar.gz: b7a7fc7516e44b2e3a674eb5d3ad03ef57af811bfa6c9efc87e73f485df4aa38b2514ff1b3eaebb60294c19616ccf0ee31e8e71d33417f6f923668dbf26501f4
|
data/MIT-LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright 2013 Rice University
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
+
a copy of this software and associated documentation files (the
|
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
+
the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be
|
|
12
|
+
included in all copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# MethodDraw
|
|
2
|
+
|
|
3
|
+
MethodDraw allows the easy integration of [Method-Draw](https://github.com/duopixel/Method-Draw) with any rails application.
|
|
4
|
+
|
|
5
|
+
_This Gem was adapted from the [Sketchily](https://github.com/lml/sketchily) gem._
|
|
6
|
+
|
|
7
|
+
Currently supports and provides `method-draw`.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
Add this line to your application's Gemfile:
|
|
12
|
+
|
|
13
|
+
```rb
|
|
14
|
+
gem 'method_draw'
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
And then execute:
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
$ bundle
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Or install it yourself:
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
$ gem install method_draw
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Also make sure your `application.js` includes some version of jquery. It usually does by default.
|
|
30
|
+
If you use the jquery-rails gem, you will have something like this:
|
|
31
|
+
|
|
32
|
+
```js
|
|
33
|
+
//= require jquery
|
|
34
|
+
//= require jquery_ujs
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Note:** method_draw will **automatically** add the following files to your asset precompilation list:
|
|
38
|
+
|
|
39
|
+
method_draw.css method_draw.js method_draw_embed.js method-draw-js/canvg/canvg.js method-draw-js/canvg/rgbcolor.js method-draw-js/extensions/ext-*.js
|
|
40
|
+
|
|
41
|
+
Other html files and images used by method-draw will also be precompiled.
|
|
42
|
+
|
|
43
|
+
## Usage
|
|
44
|
+
|
|
45
|
+
MethodDraw adds new form elements which can be accessed by calling:
|
|
46
|
+
|
|
47
|
+
- `f.method_draw` or simply `method_draw` from inside a `form_for @my_object |f|`
|
|
48
|
+
- `method_draw_tag` from inside a `form_tag`
|
|
49
|
+
|
|
50
|
+
This gem also adds a helper method that can be called to display the resulting SVG images (without an editor):
|
|
51
|
+
|
|
52
|
+
- `method_draw_show` from any view template
|
|
53
|
+
|
|
54
|
+
### `method_draw` and `method_draw_tag` functions
|
|
55
|
+
|
|
56
|
+
- Both of these functions work exactly like the equivalent `hidden_field` functions, except that method-draw is displayed instead.
|
|
57
|
+
- The `f.method_draw` format accepts a method name and an options hash.
|
|
58
|
+
- The `method_draw` format (called without the form builder object) accepts an object name, a method name and an options hash.
|
|
59
|
+
- The `method_draw_tag` format accepts a tag name, the svg string to be edited and an options hash.
|
|
60
|
+
|
|
61
|
+
Currently available options are:
|
|
62
|
+
|
|
63
|
+
- `width` total width of editor
|
|
64
|
+
- `height` total height of editor
|
|
65
|
+
|
|
66
|
+
- `bkgd_color` canvas background color (3 or 6 hex digit html color format; not saved with image; see method_draw_show)
|
|
67
|
+
- `bkgd_url` canvas background image url (not saved with image; see bkgd_file option for method_draw_show)
|
|
68
|
+
|
|
69
|
+
- `canvas_width` initial canvas width
|
|
70
|
+
- `canvas_height` initial canvas height
|
|
71
|
+
- `canvas_expansion` 0 if you want to disable scrolling
|
|
72
|
+
|
|
73
|
+
- `hide_rulers` true if you want to hide the canvas rulers
|
|
74
|
+
- `hide_menu` true if you want method-draw's menu to be hidden
|
|
75
|
+
- `hide_image_tool` true if you want to hide the `image tool` button
|
|
76
|
+
|
|
77
|
+
- `show_layers` (true if you want the layer selector to display automatically when the editor is loaded)
|
|
78
|
+
|
|
79
|
+
- `url` override contents of the canvas with the svg file in the given url (careful: changes lost whenever editor is loaded)
|
|
80
|
+
|
|
81
|
+
- `id` override the default id (see explanation below)
|
|
82
|
+
- `value` override the default value (the svg itself; can be useful when using form_for)
|
|
83
|
+
- `index` override the default index (affects the tag name; can be useful when using form_for)
|
|
84
|
+
|
|
85
|
+
- `extensions` editor plugins (e.g. 'plugin.js' will load '/assets/extensions/plugin.js')
|
|
86
|
+
|
|
87
|
+
- other standard html attributes for the input tag
|
|
88
|
+
|
|
89
|
+
The `hyperlink tool` is disabled by default, as embedded links and scripts do not work with the display method used by method_draw_show.
|
|
90
|
+
The method_draw_show helper will display svg's inside of <img> tags, which are treated as static images by most browsers.
|
|
91
|
+
We consider this to be a necessary precaution when dealing with user-generated svg's.
|
|
92
|
+
|
|
93
|
+
MethodDraw requires a unique `id` (by default, this is set in the same way as hidden_field) each time it is called in the same page.
|
|
94
|
+
However, some uses of `form_for` can generate repeated ids (e.g. multiple `form_for @my_object.new` in the same page).
|
|
95
|
+
In those cases, you need to generate and specify your own unique ids. A possible solution is to use one of the many uuid generator gems.
|
|
96
|
+
|
|
97
|
+
It is recommended that the database entries associated with method_draw form elements be of type `text`.
|
|
98
|
+
|
|
99
|
+
The following examples assume that the database table for `@my_object` has a `sketch` column of type `text`.
|
|
100
|
+
|
|
101
|
+
Example usage (haml):
|
|
102
|
+
|
|
103
|
+
```haml
|
|
104
|
+
= form_for @my_object do |f|
|
|
105
|
+
= f.method_draw :sketch, :hide_menu => true
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### `method_draw_show` helper
|
|
109
|
+
|
|
110
|
+
- This function takes the base64-encoded SVG string as an argument and an options hash.
|
|
111
|
+
- The SVG string can be directly read from the field used by the `method_draw` and `method_draw_tag` functions.
|
|
112
|
+
|
|
113
|
+
Currently available options are:
|
|
114
|
+
|
|
115
|
+
- `width` width of resulting image object
|
|
116
|
+
- `height` height of resulting image object
|
|
117
|
+
|
|
118
|
+
- `bkgd_color` background color (3 or 6 hex digit html color format)
|
|
119
|
+
- `bkgd_file` background image file path (must be a local image file)
|
|
120
|
+
|
|
121
|
+
Passing only one of those options should keep the aspect ratio of the SVG constant in most browsers.
|
|
122
|
+
|
|
123
|
+
Example usage (haml):
|
|
124
|
+
|
|
125
|
+
```haml
|
|
126
|
+
= method_draw_show @my_object.sketch, :width => "500"
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Browser Support
|
|
130
|
+
|
|
131
|
+
Although more testing is needed, we currently believe method_draw supports any browsers that Method-Draw supports, namely:
|
|
132
|
+
|
|
133
|
+
- Firefox 1.5+
|
|
134
|
+
- Opera 9.50+
|
|
135
|
+
- Safari 4+
|
|
136
|
+
- Chrome 1+
|
|
137
|
+
- IE 9+
|
|
138
|
+
- IE 6+ (with the [Chrome Frame plugin](http://www.google.com/chromeframe))
|
|
139
|
+
|
|
140
|
+
## Contributing
|
|
141
|
+
|
|
142
|
+
1. Fork it
|
|
143
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
144
|
+
3. Create specs for your feature
|
|
145
|
+
4. Ensure that all specs pass
|
|
146
|
+
5. Commit your changes (`git commit -am 'Add some feature'`)
|
|
147
|
+
6. Push to the branch (`git push origin my-new-feature`)
|
|
148
|
+
7. Create new pull request
|
data/Rakefile
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/usr/bin/env rake
|
|
2
|
+
begin
|
|
3
|
+
require 'bundler/setup'
|
|
4
|
+
rescue LoadError
|
|
5
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
|
9
|
+
load 'rails/tasks/engine.rake'
|
|
10
|
+
|
|
11
|
+
Bundler::GemHelper.install_tasks
|
|
12
|
+
|
|
13
|
+
require 'rake/testtask'
|
|
14
|
+
|
|
15
|
+
Rake::TestTask.new(:test => 'app:db:test:prepare') do |t|
|
|
16
|
+
t.libs << 'lib'
|
|
17
|
+
t.libs << 'spec'
|
|
18
|
+
t.pattern = 'spec/**/*_spec.rb'
|
|
19
|
+
t.verbose = false
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
task :default => :test
|
|
23
|
+
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//= require method-draw-js/lib/jquery
|
|
2
|
+
//= require method-draw-js/lib/js-hotkeys/jquery.hotkeys.min
|
|
3
|
+
//= require method-draw-js/lib/jquerybbq/jquery.bbq.min
|
|
4
|
+
//= require method-draw-js/icons/jquery.svgicons
|
|
5
|
+
//= require method-draw-js/lib/jgraduate/jquery.jgraduate.min
|
|
6
|
+
//= require method-draw-js/lib/touch
|
|
7
|
+
//= require method-draw-js/method-draw.compiled
|
|
8
|
+
//= require method-draw-js/lib/jquery-ui/jquery-ui-1.8.17.custom.min
|
|
9
|
+
//= require method-draw-js/lib/jgraduate/jpicker
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
// This code was written by Tyler Akins and has been placed in the
|
|
2
|
+
// public domain. It would be nice if you left this header intact.
|
|
3
|
+
// Base64 code from Tyler Akins -- http://rumkin.com
|
|
4
|
+
|
|
5
|
+
// schiller: Removed string concatenation in favour of Array.join() optimization,
|
|
6
|
+
// also precalculate the size of the array needed.
|
|
7
|
+
|
|
8
|
+
// Function: method_draw_encode64
|
|
9
|
+
// Converts a string to base64
|
|
10
|
+
var method_draw_encode64 = function(input) {
|
|
11
|
+
// base64 strings are 4/3 larger than the original string
|
|
12
|
+
input = method_draw_convertToXMLReferences(input);
|
|
13
|
+
if(window.btoa) return window.btoa(input); // Use native if available
|
|
14
|
+
var output = new Array( Math.floor( (input.length + 2) / 3 ) * 4 );
|
|
15
|
+
var chr1, chr2, chr3;
|
|
16
|
+
var enc1, enc2, enc3, enc4;
|
|
17
|
+
var i = 0, p = 0;
|
|
18
|
+
|
|
19
|
+
do {
|
|
20
|
+
chr1 = input.charCodeAt(i++);
|
|
21
|
+
chr2 = input.charCodeAt(i++);
|
|
22
|
+
chr3 = input.charCodeAt(i++);
|
|
23
|
+
|
|
24
|
+
enc1 = chr1 >> 2;
|
|
25
|
+
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
|
|
26
|
+
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
|
|
27
|
+
enc4 = chr3 & 63;
|
|
28
|
+
|
|
29
|
+
if (isNaN(chr2)) {
|
|
30
|
+
enc3 = enc4 = 64;
|
|
31
|
+
} else if (isNaN(chr3)) {
|
|
32
|
+
enc4 = 64;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
output[p++] = KEYSTR.charAt(enc1);
|
|
36
|
+
output[p++] = KEYSTR.charAt(enc2);
|
|
37
|
+
output[p++] = KEYSTR.charAt(enc3);
|
|
38
|
+
output[p++] = KEYSTR.charAt(enc4);
|
|
39
|
+
} while (i < input.length);
|
|
40
|
+
|
|
41
|
+
return output.join('');
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
// Function: method_draw_decode64
|
|
45
|
+
// Converts a string from base64
|
|
46
|
+
var method_draw_decode64 = function(input) {
|
|
47
|
+
if(window.atob) return window.atob(input);
|
|
48
|
+
var output = "";
|
|
49
|
+
var chr1, chr2, chr3 = "";
|
|
50
|
+
var enc1, enc2, enc3, enc4 = "";
|
|
51
|
+
var i = 0;
|
|
52
|
+
|
|
53
|
+
// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
|
|
54
|
+
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
|
|
55
|
+
|
|
56
|
+
do {
|
|
57
|
+
enc1 = KEYSTR.indexOf(input.charAt(i++));
|
|
58
|
+
enc2 = KEYSTR.indexOf(input.charAt(i++));
|
|
59
|
+
enc3 = KEYSTR.indexOf(input.charAt(i++));
|
|
60
|
+
enc4 = KEYSTR.indexOf(input.charAt(i++));
|
|
61
|
+
|
|
62
|
+
chr1 = (enc1 << 2) | (enc2 >> 4);
|
|
63
|
+
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
|
|
64
|
+
chr3 = ((enc3 & 3) << 6) | enc4;
|
|
65
|
+
|
|
66
|
+
output = output + String.fromCharCode(chr1);
|
|
67
|
+
|
|
68
|
+
if (enc3 != 64) {
|
|
69
|
+
output = output + String.fromCharCode(chr2);
|
|
70
|
+
}
|
|
71
|
+
if (enc4 != 64) {
|
|
72
|
+
output = output + String.fromCharCode(chr3);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
chr1 = chr2 = chr3 = "";
|
|
76
|
+
enc1 = enc2 = enc3 = enc4 = "";
|
|
77
|
+
|
|
78
|
+
} while (i < input.length);
|
|
79
|
+
return unescape(output);
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
// Function: method_draw_convertToXMLReferences
|
|
83
|
+
// Converts a string to use XML references
|
|
84
|
+
var method_draw_convertToXMLReferences = function(input) {
|
|
85
|
+
var output = '';
|
|
86
|
+
for (var n = 0; n < input.length; n++){
|
|
87
|
+
var c = input.charCodeAt(n);
|
|
88
|
+
if (c < 128) {
|
|
89
|
+
output += input[n];
|
|
90
|
+
} else if(c > 127) {
|
|
91
|
+
output += ("&#" + c + ";");
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return output;
|
|
95
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
//= require method-draw-js/src/embedapi
|
|
2
|
+
//= require method_draw/base64
|
|
3
|
+
|
|
4
|
+
var svgCanvas = svgCanvas || {};
|
|
5
|
+
|
|
6
|
+
function submitHandler(event) {
|
|
7
|
+
var id = event.data;
|
|
8
|
+
svgCanvas[id].getSvgString()(function (data, error) {
|
|
9
|
+
handleSvgData(data, error, id);
|
|
10
|
+
});
|
|
11
|
+
event.preventDefault();
|
|
12
|
+
event.stopImmediatePropagation();
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function attachSubmitHandler(event) {
|
|
16
|
+
var id = event.data;
|
|
17
|
+
$("input#" + id).closest("form").on("submit.svgedit_" + id, null, id, submitHandler);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function handleSvgData(data, error, id) {
|
|
21
|
+
if (error) {
|
|
22
|
+
alert('Error: ' + error);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
var input = $("input#" + id);
|
|
26
|
+
var form = input.closest("form");
|
|
27
|
+
input.attr("value", method_draw_encode64("<?xml version=\"1.0\"?>\n" + data));
|
|
28
|
+
form.off("submit.svgedit_" + id);
|
|
29
|
+
form.one("submit.svgedit_" + id, null, id, attachSubmitHandler);
|
|
30
|
+
form.submit();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function initEmbed(id, value, hide_menu, hide_image_tool, url) {
|
|
35
|
+
var frame = document.getElementById("svgedit_" + id);
|
|
36
|
+
svgCanvas[id] = new embedded_svg_edit(frame);
|
|
37
|
+
|
|
38
|
+
var doc = frame.contentDocument;
|
|
39
|
+
if (!doc) {
|
|
40
|
+
doc = frame.contentWindow.document;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (hide_menu) {
|
|
44
|
+
var mainButton = doc.getElementById('main_button');
|
|
45
|
+
mainButton.parentNode.removeChild(mainButton);
|
|
46
|
+
var toolsTop = doc.getElementById('tools_top');
|
|
47
|
+
toolsTop.style.left = '5px';
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (hide_image_tool) {
|
|
51
|
+
var imageTool = doc.getElementById('tool_image');
|
|
52
|
+
imageTool.parentNode.removeChild(imageTool);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (!url) {
|
|
56
|
+
svgCanvas[id].setSvgString(method_draw_decode64(value));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
$("input#" + id).closest("form").on("submit.svgedit_" + id, null, id, submitHandler);
|
|
60
|
+
|
|
61
|
+
$("#svgedit_" + id).css('visibility', '');
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function attachLoadHandler(id, value, hide_menu, hide_image_tool, url) {
|
|
65
|
+
var frame = $("#svgedit_" + id);
|
|
66
|
+
if (frame.attr('src')) {
|
|
67
|
+
frame.load(function () {
|
|
68
|
+
initEmbed(id, value, hide_menu, hide_image_tool, url);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
setTimeout(function () {
|
|
73
|
+
attachLoadHandler(id, value, hide_menu, hide_image_tool, url);
|
|
74
|
+
}, 0);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module MethodDrawHelper
|
|
2
|
+
def method_draw_show(uri, options = {})
|
|
3
|
+
if options[:bkgd_color] || options[:bkgd_file]
|
|
4
|
+
require 'nokogiri'
|
|
5
|
+
doc = Nokogiri::XML(Base64.decode64(uri)) {|xml| xml.noblanks}
|
|
6
|
+
|
|
7
|
+
if options[:bkgd_file]
|
|
8
|
+
data_uri = "data:image/svg+xml;base64,#{Base64.strict_encode64(open(options[:bkgd_file]).read)}"
|
|
9
|
+
bkgd_file_node = Nokogiri::XML::Node.new 'g', doc
|
|
10
|
+
Nokogiri::XML::Builder.with(bkgd_file_node) do |xml|
|
|
11
|
+
xml.title 'Background Image Layer'
|
|
12
|
+
xml.image :id => 'background_image', :width => '100%', :height => '100%', :preserveAspectRatio => 'xMinYMin', 'xlink:href' => data_uri
|
|
13
|
+
end
|
|
14
|
+
doc.root.add_namespace "xlink", "http://www.w3.org/1999/xlink"
|
|
15
|
+
doc.at('g').before(bkgd_file_node)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
if options[:bkgd_color]
|
|
19
|
+
bkgd_color_node = Nokogiri::XML::Node.new 'g', doc
|
|
20
|
+
Nokogiri::XML::Builder.with(bkgd_color_node) do |xml|
|
|
21
|
+
xml.title 'Background Color Layer'
|
|
22
|
+
xml.rect :id => 'background_color', :width => '100%', :height => '100%', :fill => "##{options[:bkgd_color]}"
|
|
23
|
+
end
|
|
24
|
+
doc.at('g').before(bkgd_color_node)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
uri = Base64.strict_encode64(doc.to_xml)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
"<img src='data:image/svg+xml;base64,#{uri}' #{"width='#{options[:width]}'" if options[:width]} #{"height='#{options[:height]}'" if options[:height]}/>".html_safe
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
alias_method :svg_show, :method_draw_show
|
|
34
|
+
end
|
|
35
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<% # Clients of this partial must supply the following variables:
|
|
2
|
+
# id
|
|
3
|
+
# value
|
|
4
|
+
#
|
|
5
|
+
# Additionally, they may override the following variables:
|
|
6
|
+
width ||= "750px"
|
|
7
|
+
height ||= "650px"
|
|
8
|
+
bkgd_color ||= "FFF"
|
|
9
|
+
bkgd_url ||= ""
|
|
10
|
+
canvas_width ||= 640
|
|
11
|
+
canvas_height ||= 480
|
|
12
|
+
canvas_expansion ||= 3
|
|
13
|
+
hide_rulers ||= false
|
|
14
|
+
hide_menu ||= false
|
|
15
|
+
hide_image_tool ||= false
|
|
16
|
+
show_layers ||= false
|
|
17
|
+
url ||= nil
|
|
18
|
+
extensions ||= nil
|
|
19
|
+
%>
|
|
20
|
+
|
|
21
|
+
<% iframe_src = URI.parse("/assets/method-draw-js/index.html")
|
|
22
|
+
|
|
23
|
+
query_hash = {:dimensions => [canvas_width, canvas_height].join(','),
|
|
24
|
+
:bkgd_color => bkgd_color,
|
|
25
|
+
:bkgd_url => bkgd_url,
|
|
26
|
+
:canvas_expansion => canvas_expansion,
|
|
27
|
+
:showRulers => !hide_rulers,
|
|
28
|
+
:showlayers => show_layers}
|
|
29
|
+
query_hash[:url] = url if url
|
|
30
|
+
query_hash[:source] = nil unless url
|
|
31
|
+
query_hash[:extensions] = extensions if extensions
|
|
32
|
+
|
|
33
|
+
iframe_src.query = query_hash.map{|k,v| "#{k}=#{v}"}.join('&') %>
|
|
34
|
+
|
|
35
|
+
<%= javascript_include_tag "method_draw_embed" %>
|
|
36
|
+
|
|
37
|
+
<%= content_tag(:iframe,
|
|
38
|
+
"svg-edit",
|
|
39
|
+
:src => iframe_src.to_s.html_safe,
|
|
40
|
+
:width => width,
|
|
41
|
+
:height => height,
|
|
42
|
+
:id => "svgedit_#{id}",
|
|
43
|
+
:style => "visibility: hidden") %>
|
|
44
|
+
|
|
45
|
+
<script type="text/javascript">
|
|
46
|
+
attachLoadHandler("<%= id %>",
|
|
47
|
+
"<%= value.try(:squish) %>",
|
|
48
|
+
<%= hide_menu %>,
|
|
49
|
+
<%= hide_image_tool %>,
|
|
50
|
+
"<%= url %>");
|
|
51
|
+
</script>
|