method_draw 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|