tr8n_client_sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/MIT-LICENSE +22 -0
- data/README.rdoc +3 -0
- data/Rakefile +38 -0
- data/app/assets/images/tr8n/tr8n_logo.png +0 -0
- data/app/views/tr8n_client_sdk/tags/_language_strip.html.erb +20 -0
- data/app/views/tr8n_client_sdk/tags/_powered_by_tr8n.html.erb +6 -0
- data/app/views/tr8n_client_sdk/tags/_scripts.html.erb +20 -0
- data/config/routes.rb +2 -0
- data/lib/generators/tr8n_client_sdk/templates/config/tr8n/config.yml +53 -0
- data/lib/generators/tr8n_client_sdk/templates/config/tr8n/tokens/data.yml +45 -0
- data/lib/generators/tr8n_client_sdk/templates/config/tr8n/tokens/decorations.yml +37 -0
- data/lib/generators/tr8n_client_sdk/tr8n_client_sdk_generator.rb +37 -0
- data/lib/tasks/tr8n_client_sdk_tasks.rake +30 -0
- data/lib/tr8n_client_sdk.rb +28 -0
- data/lib/tr8n_client_sdk/config.rb +197 -0
- data/lib/tr8n_client_sdk/engine.rb +31 -0
- data/lib/tr8n_client_sdk/extensions/action_common_methods.rb +122 -0
- data/lib/tr8n_client_sdk/extensions/action_controller_extension.rb +123 -0
- data/lib/tr8n_client_sdk/extensions/action_view_extension.rb +218 -0
- data/lib/tr8n_client_sdk/railtie.rb +54 -0
- data/lib/tr8n_client_sdk/version.rb +27 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/images/bg-pattern.png +0 -0
- data/test/dummy/app/assets/images/facebook.png +0 -0
- data/test/dummy/app/assets/images/github.png +0 -0
- data/test/dummy/app/assets/images/glyphicons-halflings-white.png +0 -0
- data/test/dummy/app/assets/images/glyphicons-halflings.png +0 -0
- data/test/dummy/app/assets/images/how_it_works_1.gif +0 -0
- data/test/dummy/app/assets/images/how_it_works_2.gif +0 -0
- data/test/dummy/app/assets/images/how_it_works_3.gif +0 -0
- data/test/dummy/app/assets/images/hr.png +0 -0
- data/test/dummy/app/assets/images/linkedin.png +0 -0
- data/test/dummy/app/assets/images/silhouette.gif +0 -0
- data/test/dummy/app/assets/images/twitter.png +0 -0
- data/test/dummy/app/assets/images/wordpress.png +0 -0
- data/test/dummy/app/assets/images/youtube.png +0 -0
- data/test/dummy/app/assets/javascripts/ace/ace.js +11 -0
- data/test/dummy/app/assets/javascripts/ace/ext-static_highlight.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/ext-textarea.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/keybinding-emacs.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/keybinding-vim.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-abap.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-asciidoc.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-c9search.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-c_cpp.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-clojure.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-coffee.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-coldfusion.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-csharp.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-css.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-dart.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-diff.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-dot.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-glsl.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-golang.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-groovy.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-haml.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-haxe.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-html.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-jade.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-java.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-javascript.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-json.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-jsp.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-jsx.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-latex.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-less.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-liquid.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-lisp.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-lua.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-luapage.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-lucene.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-makefile.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-markdown.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-objectivec.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-ocaml.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-perl.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-pgsql.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-php.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-powershell.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-python.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-r.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-rdoc.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-rhtml.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-ruby.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-scad.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-scala.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-scss.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-sh.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-sql.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-stylus.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-svg.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-tcl.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-tex.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-text.js +0 -0
- data/test/dummy/app/assets/javascripts/ace/mode-textile.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-typescript.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-xml.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-xquery.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/mode-yaml.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-ambiance.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-chaos.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-chrome.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-clouds.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-clouds_midnight.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-cobalt.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-crimson_editor.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-dawn.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-dreamweaver.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-eclipse.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-github.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-idle_fingers.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-kr.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-merbivore.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-merbivore_soft.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-mono_industrial.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-monokai.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-pastel_on_dark.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-solarized_dark.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-solarized_light.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-textmate.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-tomorrow.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-tomorrow_night.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-tomorrow_night_blue.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-tomorrow_night_bright.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-tomorrow_night_eighties.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-twilight.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-vibrant_ink.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/theme-xcode.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/worker-coffee.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/worker-css.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/worker-javascript.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/worker-json.js +1 -0
- data/test/dummy/app/assets/javascripts/ace/worker-xquery.js +1 -0
- data/test/dummy/app/assets/javascripts/application.js +15 -0
- data/test/dummy/app/assets/javascripts/bootstrap.js +2291 -0
- data/test/dummy/app/assets/javascripts/bootstrap.min.js +7 -0
- data/test/dummy/app/assets/javascripts/jquery-ace.js +195 -0
- data/test/dummy/app/assets/javascripts/jquery-ui-1.10.3.custom.min.js +7 -0
- data/test/dummy/app/assets/javascripts/jquery.tocify.min.js +4 -0
- data/test/dummy/app/assets/javascripts/jquery191.js +16 -0
- data/test/dummy/app/assets/javascripts/prism.js +20 -0
- data/test/dummy/app/assets/javascripts/prism_rails.js +49 -0
- data/test/dummy/app/assets/javascripts/sh.js +573 -0
- data/test/dummy/app/assets/stylesheets/application.css +8 -0
- data/test/dummy/app/assets/stylesheets/bootstrap/bootstrap.css +6315 -0
- data/test/dummy/app/assets/stylesheets/bootstrap/bootstrap.min.css +874 -0
- data/test/dummy/app/assets/stylesheets/bootstrap/bootstrap_and_overrides.css.scss +16 -0
- data/test/dummy/app/assets/stylesheets/jquery.tocify.css +62 -0
- data/test/dummy/app/assets/stylesheets/prism.css +108 -0
- data/test/dummy/app/assets/stylesheets/prism_rails.css.scss +42 -0
- data/test/dummy/app/assets/stylesheets/sh.css +193 -0
- data/test/dummy/app/controllers/application_controller.rb +82 -0
- data/test/dummy/app/controllers/docs_controller.rb +42 -0
- data/test/dummy/app/controllers/home_controller.rb +29 -0
- data/test/dummy/app/controllers/login_controller.rb +55 -0
- data/test/dummy/app/controllers/signup_controller.rb +58 -0
- data/test/dummy/app/controllers/welcome_controller.rb +30 -0
- data/test/dummy/app/helpers/application_helper.rb +26 -0
- data/test/dummy/app/mailers/request_mailer.rb +38 -0
- data/test/dummy/app/models/user.rb +48 -0
- data/test/dummy/app/views/docs/index.html.erb +591 -0
- data/test/dummy/app/views/docs/installation.html.erb +59 -0
- data/test/dummy/app/views/docs/test.html.erb +17 -0
- data/test/dummy/app/views/docs/tml.html.erb +176 -0
- data/test/dummy/app/views/docs/tml_content.html.erb +33 -0
- data/test/dummy/app/views/home/index.html.erb +107 -0
- data/test/dummy/app/views/layouts/_flashes.html.erb +35 -0
- data/test/dummy/app/views/layouts/_footer.html.erb +31 -0
- data/test/dummy/app/views/layouts/_head.html.erb +8 -0
- data/test/dummy/app/views/layouts/_header.html.erb +70 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/app/views/login/_common.html.erb +29 -0
- data/test/dummy/app/views/login/cookies.html.erb +20 -0
- data/test/dummy/app/views/login/index.html.erb +1 -0
- data/test/dummy/app/views/login/out.html.erb +1 -0
- data/test/dummy/app/views/signup/index.html.erb +22 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +59 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +37 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mail.rb +14 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +8 -0
- data/test/dummy/config/tr8n/config.yml +53 -0
- data/test/dummy/config/tr8n/tokens/data.yml +45 -0
- data/test/dummy/config/tr8n/tokens/decorations.yml +37 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20130506202619_create_users.rb +16 -0
- data/test/dummy/db/schema.rb +29 -0
- data/test/dummy/log/development.log +40036 -0
- data/test/dummy/log/tr8n.log +14602 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/spec/models/request_spec.rb +5 -0
- data/test/dummy/spec/models/user_spec.rb +5 -0
- data/test/dummy/tmp/cache/assets/BCA/680/sprockets%2F0e766e5046b2556242937265334a7776 +0 -0
- data/test/dummy/tmp/cache/assets/C41/5A0/sprockets%2Ff3979161c897640872293fb74f7e4185 +0 -0
- data/test/dummy/tmp/cache/assets/C69/980/sprockets%2F1289412d200b47c7f5ba1714da031188 +0 -0
- data/test/dummy/tmp/cache/assets/C80/840/sprockets%2F562c2d168da585f80579347d10790a0a +0 -0
- data/test/dummy/tmp/cache/assets/C85/8C0/sprockets%2F262c6124c54467ed84e71473a5748a2f +0 -0
- data/test/dummy/tmp/cache/assets/C9B/B70/sprockets%2F3c5f068b5a07f9215020042ed660bb45 +0 -0
- data/test/dummy/tmp/cache/assets/CAC/8A0/sprockets%2Fb3da0b5a24a9277687d1b973d1638126 +0 -0
- data/test/dummy/tmp/cache/assets/CB0/D20/sprockets%2F0850d836310c2fc600217ce3f894f9c8 +0 -0
- data/test/dummy/tmp/cache/assets/CB1/E50/sprockets%2Fea7a0c10450c627f752b87495d915b66 +0 -0
- data/test/dummy/tmp/cache/assets/CBF/A00/sprockets%2F82c0bd0c273938e78e80698057bf165e +0 -0
- data/test/dummy/tmp/cache/assets/CC3/730/sprockets%2F730877507dec32fd7d2e038899bb8067 +0 -0
- data/test/dummy/tmp/cache/assets/CC6/350/sprockets%2F7486d25d54ef6d9548205d5a17ff3468 +0 -0
- data/test/dummy/tmp/cache/assets/CC7/620/sprockets%2F395359137b16e965efa7fa58db855904 +0 -0
- data/test/dummy/tmp/cache/assets/CC7/A90/sprockets%2F77713cc98a179981d615f84f952add24 +0 -0
- data/test/dummy/tmp/cache/assets/CD5/2C0/sprockets%2F166c056119ebdfb8b7104c97b424b423 +0 -0
- data/test/dummy/tmp/cache/assets/CD6/450/sprockets%2Ff0c4fb28a62f912b5542965358a10a1f +0 -0
- data/test/dummy/tmp/cache/assets/CD6/C30/sprockets%2Fe15182011d74255aa67fde5a783dd612 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/F00/sprockets%2F2344b925523c2c28a3fd1e73ad5f9181 +0 -0
- data/test/dummy/tmp/cache/assets/CD9/BA0/sprockets%2Fb9fa8aa2057e7d8702f10317694a8c10 +0 -0
- data/test/dummy/tmp/cache/assets/CE2/720/sprockets%2F922b15b49871931e5df1d0a2be4826f8 +0 -0
- data/test/dummy/tmp/cache/assets/CE3/EB0/sprockets%2F28ee30e42c7c583083e76a377df3035d +0 -0
- data/test/dummy/tmp/cache/assets/CE5/650/sprockets%2F8ab512c9b33ac90e699b73469d71f061 +0 -0
- data/test/dummy/tmp/cache/assets/CE8/2F0/sprockets%2Fb74ee6e80ba2911167d148d791d6728c +0 -0
- data/test/dummy/tmp/cache/assets/CEE/D60/sprockets%2F7b699b03f091fe228759da88a323a56f +0 -0
- data/test/dummy/tmp/cache/assets/CF0/450/sprockets%2F65704938b67ef6b06e386cea3c1848b6 +0 -0
- data/test/dummy/tmp/cache/assets/CF1/5A0/sprockets%2Fec49552e4a6b67bee359e0485610d887 +0 -0
- data/test/dummy/tmp/cache/assets/CFC/880/sprockets%2Fd89c211d7a3dc2a94a7625d7155000ab +0 -0
- data/test/dummy/tmp/cache/assets/D05/210/sprockets%2F5d0d1d45d694d6d4f803a9a1340b741c +0 -0
- data/test/dummy/tmp/cache/assets/D05/820/sprockets%2Fee427231dd340c1b50573f187a8a6d5d +0 -0
- data/test/dummy/tmp/cache/assets/D09/6F0/sprockets%2F0f69fe87b4b574153bdc60711a6ca208 +0 -0
- data/test/dummy/tmp/cache/assets/D0A/C20/sprockets%2Fd177dbfcd8235d07a0072c4d9c307385 +0 -0
- data/test/dummy/tmp/cache/assets/D0C/820/sprockets%2F1002e68d7cf06571cb63a864f93bb4e3 +0 -0
- data/test/dummy/tmp/cache/assets/D0E/A30/sprockets%2F71398e105f60c431f86d78e3abbbf125 +0 -0
- data/test/dummy/tmp/cache/assets/D0E/FF0/sprockets%2F2c4cc11f6c24fbb41d97713864854d1f +0 -0
- data/test/dummy/tmp/cache/assets/D18/E00/sprockets%2Ff017e80af40be5c829882bd1885a38f4 +0 -0
- data/test/dummy/tmp/cache/assets/D19/120/sprockets%2F69f0907662f738cd217edca24ef2328d +0 -0
- data/test/dummy/tmp/cache/assets/D25/FD0/sprockets%2F03006f6bba722ebc14ceac8221b81917 +0 -0
- data/test/dummy/tmp/cache/assets/D26/7C0/sprockets%2F771cba4a2e4f22141377c4eccc1065c0 +0 -0
- data/test/dummy/tmp/cache/assets/D28/B20/sprockets%2Fbd19c0bc42912a8ba7c5c3b100f71592 +0 -0
- data/test/dummy/tmp/cache/assets/D29/280/sprockets%2F04fd073ef39e04ced71111a204cb70e6 +0 -0
- data/test/dummy/tmp/cache/assets/D29/320/sprockets%2Feb3792401fd26ebf610c8531b0a4bd32 +0 -0
- data/test/dummy/tmp/cache/assets/D29/AF0/sprockets%2F841d8c0c4ba32a5e25aa41b7069ba581 +0 -0
- data/test/dummy/tmp/cache/assets/D32/4F0/sprockets%2Fb8023435d8d01feca8fd3a1ce9144181 +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D38/DB0/sprockets%2Fe848eed2f10d359a60040b50d486b3fd +0 -0
- data/test/dummy/tmp/cache/assets/D39/6E0/sprockets%2F4d3170e44fdaa2f62cc266b62e5925e4 +0 -0
- data/test/dummy/tmp/cache/assets/D3C/2C0/sprockets%2F9c4d26aabdb46cc90d0228c79344950e +0 -0
- data/test/dummy/tmp/cache/assets/D3D/2D0/sprockets%2Fc83c38e1374d350196211ce9ffed3aa6 +0 -0
- data/test/dummy/tmp/cache/assets/D3D/970/sprockets%2F23fb0067086af38f593481abd034deff +0 -0
- data/test/dummy/tmp/cache/assets/D41/C20/sprockets%2F5b768ca318275843ae6b901bb9cca29e +0 -0
- data/test/dummy/tmp/cache/assets/D42/030/sprockets%2Ff991fbde306579de4c94d611ced13023 +0 -0
- data/test/dummy/tmp/cache/assets/D47/A20/sprockets%2F9f6654abeaa85f117a98806392ac2a8d +0 -0
- data/test/dummy/tmp/cache/assets/D47/D00/sprockets%2Fd76fe4489f3b7f2cd62450204cef631f +0 -0
- data/test/dummy/tmp/cache/assets/D4A/640/sprockets%2F94ec7bb9872d4b005d267d56cb80f7e4 +0 -0
- data/test/dummy/tmp/cache/assets/D4C/020/sprockets%2F2c26fac647b394d5f49b2743950aefe9 +0 -0
- data/test/dummy/tmp/cache/assets/D4D/A20/sprockets%2F0de50df58d85f5cce135f460979bd472 +0 -0
- data/test/dummy/tmp/cache/assets/D4D/E30/sprockets%2F828b744b9a72d6b05ace77264f878bdb +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D53/1E0/sprockets%2F6d4776ffd4fc7486550b6508cb2dd57e +0 -0
- data/test/dummy/tmp/cache/assets/D5A/B70/sprockets%2F7b76786736bb5e9eeb4887dd32c83ec2 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/D62/720/sprockets%2F34a95b2bb07a4fbd408c81f1c37bd860 +0 -0
- data/test/dummy/tmp/cache/assets/D69/B50/sprockets%2F1c7aa58ab12825ccfb465ca5e7c77551 +0 -0
- data/test/dummy/tmp/cache/assets/D6F/220/sprockets%2F99d4cd656c271484bee1a14ac84e5ad2 +0 -0
- data/test/dummy/tmp/cache/assets/D74/280/sprockets%2F049b078c38d43fbe7e6b1eb49da1b775 +0 -0
- data/test/dummy/tmp/cache/assets/D74/9A0/sprockets%2F049cf32cc869e7138b76f1bb04ae78ad +0 -0
- data/test/dummy/tmp/cache/assets/D77/770/sprockets%2F67b869074d0a5b5bb8698e55ccca47aa +0 -0
- data/test/dummy/tmp/cache/assets/D7A/290/sprockets%2F5acdbbb05bd53866c8225e95f8e805e8 +0 -0
- data/test/dummy/tmp/cache/assets/D7A/2A0/sprockets%2F91a461699d36fdd71c4cec0a8d737cf4 +0 -0
- data/test/dummy/tmp/cache/assets/D7C/5B0/sprockets%2F2b864c6eb9b8d679b2716db1a1e93c8f +0 -0
- data/test/dummy/tmp/cache/assets/D82/930/sprockets%2Fecdc4c7caa1aa683b13d14a91234b452 +0 -0
- data/test/dummy/tmp/cache/assets/D8D/610/sprockets%2Ffb7e1b81f737cb510ac8166a241bbc4c +0 -0
- data/test/dummy/tmp/cache/assets/D91/080/sprockets%2Fbcca522c6302f184f12fe0e8a7d7e71a +0 -0
- data/test/dummy/tmp/cache/assets/D91/2B0/sprockets%2F354460cd2db93ca02614a4bb76ffde3e +0 -0
- data/test/dummy/tmp/cache/assets/D96/DA0/sprockets%2F55af2375310fff6b9706cbacfb2ec540 +0 -0
- data/test/dummy/tmp/cache/assets/D9E/F30/sprockets%2Fc32ceef2bde9f93b4c5b866c8200371c +0 -0
- data/test/dummy/tmp/cache/assets/D9F/300/sprockets%2Fc13fc73ceafa45876a901b3e775b83ae +0 -0
- data/test/dummy/tmp/cache/assets/D9F/390/sprockets%2Fe2fc3cc13d4d3677be6574e0fd2732cf +0 -0
- data/test/dummy/tmp/cache/assets/DAA/A50/sprockets%2F231c56d70690f8b4f8f6fea2cea9d39b +0 -0
- data/test/dummy/tmp/cache/assets/DB5/350/sprockets%2F3b5ebcf21def6fff9868a18e239495f1 +0 -0
- data/test/dummy/tmp/cache/assets/DB9/150/sprockets%2Fdaff6d12c8afc96d0c91d77e91d79966 +0 -0
- data/test/dummy/tmp/cache/assets/DC9/DB0/sprockets%2F43a2aed943cbb05dcc84468c73ddea55 +0 -0
- data/test/dummy/tmp/cache/assets/DCE/310/sprockets%2F2f221a6c5ffcaf07ef30f4ee9a793b44 +0 -0
- data/test/dummy/tmp/cache/assets/DD2/750/sprockets%2Ff70dee8c3d675153ad76abe3f730dc4f +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/DFF/270/sprockets%2Fb84f2daecc65ed711132bff2d8f5fe08 +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/E13/010/sprockets%2Feecfc58398a4d26289a5e0fe9ecd09ec +0 -0
- data/test/dummy/tmp/cache/assets/E23/880/sprockets%2F436adfe0b6333bf5af1eaaf3ea4e919b +0 -0
- data/test/dummy/tmp/cache/assets/E25/4F0/sprockets%2Fa24db6eec8d3a80f7fe3a50b4cdd243f +0 -0
- data/test/dummy/tmp/cache/assets/E2C/210/sprockets%2Fdd7b14fc1e5b2b7dcdac381cc7f9c267 +0 -0
- data/test/dummy/tmp/cache/assets/E3A/950/sprockets%2F8a6c7c212feec8ae888ad7e7fa50a3ff +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_accordion.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_alerts.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_breadcrumbs.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_button-groups.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_buttons.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_carousel.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_close.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_code.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_component-animations.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_dropdowns.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_forms.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_grid.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_hero-unit.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_labels-badges.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_layouts.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_media.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_mixins.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_modals.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_navbar.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_navs.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_pager.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_pagination.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_popovers.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_progress-bars.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_reset.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_responsive-1200px-min.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_responsive-767px-max.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_responsive-768px-979px.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_responsive-navbar.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_responsive-utilities.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_scaffolding.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_sprites.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_tables.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_thumbnails.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_tooltip.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_type.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_utilities.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_variables.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_wells.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/bootstrap.scssc +0 -0
- data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/responsive.scssc +0 -0
- data/test/dummy/tmp/cache/sass/2a9f8d893763e4aeafa77aedd38023c2d92257b4/bootstrap-responsive.scssc +0 -0
- data/test/dummy/tmp/cache/sass/2bca5584fcb1177ad07e4f21325c39e4eda592bf/bootstrap_and_overrides.css.scssc +0 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/test_helper.rb +15 -0
- data/test/tr8n_client_sdk_test.rb +7 -0
- metadata +771 -0
data/MIT-LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Copyright (c) 2013 Michael Berkovich, tr8nhub.com
|
|
2
|
+
|
|
3
|
+
MIT License
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
data/Rakefile
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
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
|
+
begin
|
|
8
|
+
require 'rdoc/task'
|
|
9
|
+
rescue LoadError
|
|
10
|
+
require 'rdoc/rdoc'
|
|
11
|
+
require 'rake/rdoctask'
|
|
12
|
+
RDoc::Task = Rake::RDocTask
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
|
16
|
+
rdoc.rdoc_dir = 'rdoc'
|
|
17
|
+
rdoc.title = 'Tr8n Client SDK for Ruby on Rails'
|
|
18
|
+
rdoc.options << '--line-numbers'
|
|
19
|
+
rdoc.rdoc_files.include('README.rdoc')
|
|
20
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
|
|
24
|
+
load 'rails/tasks/engine.rake'
|
|
25
|
+
|
|
26
|
+
Bundler::GemHelper.install_tasks
|
|
27
|
+
|
|
28
|
+
require 'rake/testtask'
|
|
29
|
+
|
|
30
|
+
Rake::TestTask.new(:test) do |t|
|
|
31
|
+
t.libs << 'lib'
|
|
32
|
+
t.libs << 'test'
|
|
33
|
+
t.pattern = 'test/**/*_test.rb'
|
|
34
|
+
t.verbose = false
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
task :default => :test
|
|
Binary file
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<% if Tr8n.config.enabled? %>
|
|
2
|
+
<% featured_languages = Tr8n.config.application.featured_languages %>
|
|
3
|
+
<% if featured_languages.any? %>
|
|
4
|
+
<style>
|
|
5
|
+
.tr8n_language_strip {text-align:center; color:#777;}
|
|
6
|
+
.tr8n_language_strip a {text-decoration:none; color:#777; outline:none; border:0px; font-size:10px;}
|
|
7
|
+
.tr8n_language_strip a img {border:0px;}
|
|
8
|
+
.tr8n_language_strip a:hover {text-decoration:underline}
|
|
9
|
+
</style>
|
|
10
|
+
<div class="tr8n_language_strip" style="font-size:12px;">
|
|
11
|
+
<% featured_languages.each do |lang| %>
|
|
12
|
+
<%= tr8n_language_name_tag(lang, opts) %>
|
|
13
|
+
<% end %>
|
|
14
|
+
|
|
15
|
+
<% if featured_languages.size > 0 %>
|
|
16
|
+
<%=link_to_function("»".html_safe, "Tr8n.UI.LanguageSelector.show(true)") %>
|
|
17
|
+
<% end %>
|
|
18
|
+
</div>
|
|
19
|
+
<% end %>
|
|
20
|
+
<% end %>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<div style="padding-top:40px; color: #ccc; text-align:center; width:100%">
|
|
2
|
+
<%= tr("Powered by {tr8n}", :tr8n => link_to("Tr8n", "http://wiki.tr8nhub.com", :style=>"color:#ccc;")) %>
|
|
3
|
+
<div style="padding-top:5px;">
|
|
4
|
+
<%=link_to(image_tag("tr8n/tr8n_logo.png", :style=>"width:50px;"), "http://wiki.tr8nhub.com") %>
|
|
5
|
+
</div>
|
|
6
|
+
</div>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<% if Tr8n.config.enabled? %>
|
|
2
|
+
|
|
3
|
+
<style type="text/css">
|
|
4
|
+
.tr8n_fltr {
|
|
5
|
+
<%=tr8n_style_attribute_tag('float', 'right')%> !important;
|
|
6
|
+
}
|
|
7
|
+
.tr8n_fltl {
|
|
8
|
+
<%=tr8n_style_attribute_tag('float', 'left')%> !important;
|
|
9
|
+
}
|
|
10
|
+
.tr8n_txtr {
|
|
11
|
+
<%=tr8n_style_attribute_tag('text-align', 'right')%> !important;
|
|
12
|
+
}
|
|
13
|
+
.tr8n_txtl {
|
|
14
|
+
<%=tr8n_style_attribute_tag('text-align', 'left')%> !important;
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
|
|
18
|
+
<script src="<%=Tr8n.config.application.js_boot_url%>"></script>
|
|
19
|
+
|
|
20
|
+
<% end %>
|
data/config/routes.rb
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
defaults:
|
|
2
|
+
enabled: true
|
|
3
|
+
default_locale: en-US
|
|
4
|
+
default_level: 0
|
|
5
|
+
application:
|
|
6
|
+
host: http://localhost:3000
|
|
7
|
+
key: 6b714be8673fcc4a3
|
|
8
|
+
secret: 5c873790ebdc7d7b8
|
|
9
|
+
logger:
|
|
10
|
+
enabled: false
|
|
11
|
+
path: /log/tr8n.log
|
|
12
|
+
cache:
|
|
13
|
+
enabled: false
|
|
14
|
+
adapter: memcache
|
|
15
|
+
host: localhost:11211
|
|
16
|
+
path: /cache
|
|
17
|
+
version: 1
|
|
18
|
+
timeout: 3600
|
|
19
|
+
localization:
|
|
20
|
+
default_day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
|
|
21
|
+
default_abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
|
|
22
|
+
default_month_names: [January, February, March, April, May, June, July, August, September, October, November, December]
|
|
23
|
+
default_abbr_month_names: [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
|
|
24
|
+
custom_date_formats:
|
|
25
|
+
default: '%m/%d/%Y' # 07/4/2008
|
|
26
|
+
short_numeric: '%m/%d' # 07/4
|
|
27
|
+
short_numeric_year: '%m/%d/%y' # 07/4/08
|
|
28
|
+
long_numeric: '%m/%d/%Y' # 07/4/2008
|
|
29
|
+
verbose: '%A, %B %d, %Y' # Friday, July 4, 2008
|
|
30
|
+
monthname: '%B %d' # July 4
|
|
31
|
+
monthname_year: '%B %d, %Y' # July 4, 2008
|
|
32
|
+
monthname_abbr: '%b %d' # Jul 4
|
|
33
|
+
monthname_abbr_year: '%b %d, %Y' # Jul 4, 2008
|
|
34
|
+
date_time: '%m/%d/%Y at %H:%M' # 01/03/1010 at 5:30
|
|
35
|
+
site_info: # used by the embedded mode
|
|
36
|
+
title: "Tr8n Sample Application" # site title
|
|
37
|
+
contact_email: "admin@tr8nhub.com" # default contact email
|
|
38
|
+
base_url: "http://localhost:3001" # base site url
|
|
39
|
+
default_url: "/home"
|
|
40
|
+
default_locale: "en-US" # locale of the site default language
|
|
41
|
+
current_locale_method: "current_locale" # application controller method that sets and returns current locale
|
|
42
|
+
user_info: # used by integrated and embedded modes
|
|
43
|
+
class_name: User # class name for the User object type
|
|
44
|
+
current_user_method: current_user # returns current user object
|
|
45
|
+
methods: # User object methods mapping
|
|
46
|
+
id: "id"
|
|
47
|
+
name: "name"
|
|
48
|
+
gender: "gender"
|
|
49
|
+
admin: "admin?"
|
|
50
|
+
guest: "guest?" # if current_user is nil, the user is automatically a guest
|
|
51
|
+
mugshot: "mugshot"
|
|
52
|
+
link: "link"
|
|
53
|
+
locale: "locale"
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#############################################################################
|
|
2
|
+
#
|
|
3
|
+
# Tr8n Default Data Tokens
|
|
4
|
+
#
|
|
5
|
+
#############################################################################
|
|
6
|
+
|
|
7
|
+
html:
|
|
8
|
+
ndash: "–" # –
|
|
9
|
+
mdash: "—" # —
|
|
10
|
+
iexcl: "¡" # ¡
|
|
11
|
+
iquest: "¿" # ¿
|
|
12
|
+
quot: """ # "
|
|
13
|
+
ldquo: "“" # “
|
|
14
|
+
rdquo: "”" # ”
|
|
15
|
+
lsquo: "‘" # ‘
|
|
16
|
+
rsquo: "’" # ’
|
|
17
|
+
laquo: "«" # «
|
|
18
|
+
raquo: "»" # »
|
|
19
|
+
nbsp: " " # space
|
|
20
|
+
lsaquo: "‹" # ‹
|
|
21
|
+
rsaquo: "›" # ›
|
|
22
|
+
br: "<br/>" # line break
|
|
23
|
+
lbrace: "{"
|
|
24
|
+
rbrace: "}"
|
|
25
|
+
trade: "™" # TM
|
|
26
|
+
|
|
27
|
+
plain:
|
|
28
|
+
ndash: "–" # –
|
|
29
|
+
mdash: "—" # —
|
|
30
|
+
iexcl: "¡" # ¡
|
|
31
|
+
iquest: "¿" # ¿
|
|
32
|
+
quot: '"' # "
|
|
33
|
+
ldquo: "“" # “
|
|
34
|
+
rdquo: "”" # ”
|
|
35
|
+
lsquo: "‘" # ‘
|
|
36
|
+
rsquo: "’" # ’
|
|
37
|
+
laquo: "«" # «
|
|
38
|
+
raquo: "»" # »
|
|
39
|
+
nbsp: " " # space
|
|
40
|
+
lsaquo: "‹" # ‹
|
|
41
|
+
rsaquo: "›" # ›
|
|
42
|
+
br: "\n" # line break
|
|
43
|
+
lbrace: "{"
|
|
44
|
+
rbrace: "}"
|
|
45
|
+
trade: "™" # TM
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#############################################################################
|
|
2
|
+
#
|
|
3
|
+
# Tr8n Default Decoration Tokens
|
|
4
|
+
#
|
|
5
|
+
#############################################################################
|
|
6
|
+
|
|
7
|
+
html:
|
|
8
|
+
strong: "<strong>{$0}</strong>"
|
|
9
|
+
bold: "<strong>{$0}</strong>"
|
|
10
|
+
b: "<strong>{$0}</strong>"
|
|
11
|
+
em: "<em>{$0}</em>"
|
|
12
|
+
italic: "<i>{$0}</i>"
|
|
13
|
+
i: "<i>{$0}</i>"
|
|
14
|
+
link: "<a href='{$href}'>{$0}</a>"
|
|
15
|
+
br: "<br>{$0}"
|
|
16
|
+
strike: "<strike>{$0}</strike>"
|
|
17
|
+
div: "<div id='{$id}' class='{$class}' style='{$style}'>{$0}</div>"
|
|
18
|
+
span: "<span id='{$id}' class='{$class}' style='{$style}'>{$0}</span>"
|
|
19
|
+
h1: "<h1>{$0}</h1>"
|
|
20
|
+
h2: "<h2>{$0}</h2>"
|
|
21
|
+
h3: "<h3>{$0}</h3>"
|
|
22
|
+
|
|
23
|
+
plain:
|
|
24
|
+
strong: "{$0}"
|
|
25
|
+
bold: "{$0}"
|
|
26
|
+
b: "{$0}"
|
|
27
|
+
em: "{$0}"
|
|
28
|
+
italic: "{$0}"
|
|
29
|
+
i: "{$0}"
|
|
30
|
+
link: "{$0}:{$1}"
|
|
31
|
+
br: "\n{$0}"
|
|
32
|
+
strike: "{$0}"
|
|
33
|
+
div: "{$0}"
|
|
34
|
+
span: "{$0}"
|
|
35
|
+
h1: "{$0}"
|
|
36
|
+
h2: "{$0}"
|
|
37
|
+
h3: "{$0}"
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Copyright (c) 2010-2013 Michael Berkovich, tr8nhub.com
|
|
3
|
+
#
|
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
|
+
# a copy of this software and associated documentation files (the
|
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
10
|
+
# the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be
|
|
13
|
+
# included in all copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
|
+
#++
|
|
23
|
+
|
|
24
|
+
require 'rails/generators'
|
|
25
|
+
|
|
26
|
+
class Tr8nClientSdkGenerator < Rails::Generators::Base
|
|
27
|
+
|
|
28
|
+
def self.source_root
|
|
29
|
+
@source_root ||= File.expand_path('../templates', __FILE__)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def copy_configuration
|
|
33
|
+
config_source = File.expand_path("#{self.class.source_root}/config/tr8n", __FILE__)
|
|
34
|
+
system "rsync -ruv #{config_source} #{Rails.root}/config"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Copyright (c) 2010-2013 Michael Berkovich, tr8nhub.com
|
|
3
|
+
#
|
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
|
+
# a copy of this software and associated documentation files (the
|
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
10
|
+
# the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be
|
|
13
|
+
# included in all copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
|
+
#++
|
|
23
|
+
|
|
24
|
+
namespace :tr8n_client_sdk do
|
|
25
|
+
|
|
26
|
+
task :init => :environment do
|
|
27
|
+
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Copyright (c) 2010-2013 Michael Berkovich, tr8nhub.com
|
|
3
|
+
#
|
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
|
+
# a copy of this software and associated documentation files (the
|
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
10
|
+
# the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be
|
|
13
|
+
# included in all copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
|
+
#++
|
|
23
|
+
|
|
24
|
+
require "tr8n_client_sdk/railtie"
|
|
25
|
+
require "tr8n_client_sdk/engine"
|
|
26
|
+
|
|
27
|
+
module Tr8nClientSdk
|
|
28
|
+
end
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Copyright (c) 2013 Michael Berkovich, tr8nhub.com
|
|
3
|
+
#
|
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
|
+
# a copy of this software and associated documentation files (the
|
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
10
|
+
# the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be
|
|
13
|
+
# included in all copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
|
+
#++
|
|
23
|
+
|
|
24
|
+
module Tr8nClientSdk
|
|
25
|
+
class Config < ::Tr8n::Config
|
|
26
|
+
thread_safe_attributes :application, :current_user, :current_language, :current_translator, :current_source, :current_component
|
|
27
|
+
thread_safe_attributes :block_options
|
|
28
|
+
|
|
29
|
+
def root
|
|
30
|
+
Rails.root
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def env
|
|
34
|
+
Rails.env
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def defaults
|
|
38
|
+
@defaults ||= HashWithIndifferentAccess.new(Tr8n::Utils.load_yaml("#{root}/config/tr8n/config.yml", env))
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def default_data_tokens
|
|
42
|
+
@default_data_tokens ||= Tr8n::Utils.load_yaml("#{root}/config/tr8n/tokens/data.yml")
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def default_decoration_tokens
|
|
46
|
+
@default_decoration_tokens ||= Tr8n::Utils.load_yaml("#{root}/config/tr8n/tokens/decorations.yml")
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def init_request(user, translator, locale, source = nil, component = nil)
|
|
50
|
+
self.current_user = user
|
|
51
|
+
self.current_translator = translator
|
|
52
|
+
self.current_language = (application.language(locale) || default_language)
|
|
53
|
+
self.current_source = source
|
|
54
|
+
self.current_component = component
|
|
55
|
+
|
|
56
|
+
# # register source with component
|
|
57
|
+
# unless component.nil?
|
|
58
|
+
# set_component(application.component_by_key(component))
|
|
59
|
+
# current_component.register_source(current_source)
|
|
60
|
+
# else
|
|
61
|
+
# set_component(nil)
|
|
62
|
+
# end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
#def current_user_is_authorized_to_view_component?(component = current_component)
|
|
66
|
+
# return true if component.nil? # no component present, so be it
|
|
67
|
+
# component = application.component_by_key(component.to_s) if component.is_a?(Symbol)
|
|
68
|
+
#
|
|
69
|
+
# return true unless component.restricted?
|
|
70
|
+
# return false unless Tr8n.config.current_translator
|
|
71
|
+
# return true if component.translator_authorized?
|
|
72
|
+
#
|
|
73
|
+
# false
|
|
74
|
+
#end
|
|
75
|
+
#
|
|
76
|
+
#def current_user_is_authorized_to_view_language?(component = current_component, language = current_language)
|
|
77
|
+
# return true if component.nil? # no component present, so be it
|
|
78
|
+
# component = application.component_by_key(component.to_s) if component.is_a?(Symbol)
|
|
79
|
+
#
|
|
80
|
+
# # if Tr8n.config.current_translator
|
|
81
|
+
# # return true if component.translator_authorized?
|
|
82
|
+
# # end
|
|
83
|
+
#
|
|
84
|
+
# # component.component_languages.each do |cl|
|
|
85
|
+
# # return cl.live? if cl.language_id == language.id
|
|
86
|
+
# # end
|
|
87
|
+
#
|
|
88
|
+
# true
|
|
89
|
+
#end
|
|
90
|
+
|
|
91
|
+
def decorator_class
|
|
92
|
+
Tr8n::Decorators::Html
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def reset_request
|
|
96
|
+
reset
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def url_for(path)
|
|
100
|
+
"#{defaults["host"]}#{path}"
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
#########################################################
|
|
104
|
+
# Site Info
|
|
105
|
+
#########################################################
|
|
106
|
+
def site_info
|
|
107
|
+
defaults[:site_info]
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def site_title
|
|
111
|
+
site_info[:title]
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def base_url
|
|
115
|
+
site_info[:base_url]
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def default_url
|
|
119
|
+
site_info[:default_url]
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def contact_email
|
|
123
|
+
site_info[:contact_email]
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def default_locale
|
|
127
|
+
return block_options[:default_locale] if block_options[:default_locale]
|
|
128
|
+
site_info[:default_locale]
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def default_admin_locale
|
|
132
|
+
return block_options[:default_admin_locale] if block_options[:default_admin_locale]
|
|
133
|
+
site_info[:default_admin_locale]
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def current_locale_method
|
|
137
|
+
site_info[:current_locale_method]
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
#########################################################
|
|
141
|
+
# site user info
|
|
142
|
+
# The following methods could be overloaded in the initializer
|
|
143
|
+
#########################################################
|
|
144
|
+
def site_user_info
|
|
145
|
+
site_info[:user_info]
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def current_user_method
|
|
149
|
+
site_user_info[:current_user_method]
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
def user_class_name
|
|
153
|
+
site_user_info[:class_name]
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def user_class
|
|
157
|
+
user_class_name.constantize
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def user_id(user)
|
|
161
|
+
return 0 unless user
|
|
162
|
+
user.send(site_user_info[:methods][:id])
|
|
163
|
+
rescue Exception => ex
|
|
164
|
+
Tr8n::Logger.error("Failed to fetch user id: #{ex.to_s}")
|
|
165
|
+
0
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def user_name(user)
|
|
169
|
+
return "Unknown user" unless user
|
|
170
|
+
user.send(site_user_info[:methods][:name])
|
|
171
|
+
rescue Exception => ex
|
|
172
|
+
Tr8n::Logger.error("Failed to fetch #{user_class_name} name: #{ex.to_s}")
|
|
173
|
+
"Invalid user"
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
def user_gender(user)
|
|
177
|
+
return "unknown" unless user
|
|
178
|
+
user.send(site_user_info[:methods][:gender])
|
|
179
|
+
rescue Exception => ex
|
|
180
|
+
Tr8n::Logger.error("Failed to fetch #{user_class_name} name: #{ex.to_s}")
|
|
181
|
+
"unknown"
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
def guest_user?(user = Tr8n.config.current_user)
|
|
185
|
+
return true unless user
|
|
186
|
+
user.send(site_user_info[:methods][:guest])
|
|
187
|
+
rescue Exception => ex
|
|
188
|
+
Tr8n::Logger.error("Failed to fetch #{user_class_name} guest flag: #{ex.to_s}")
|
|
189
|
+
true
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
def current_user_is_guest?
|
|
193
|
+
guest_user?
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
end
|
|
197
|
+
end
|