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.
Files changed (350) hide show
  1. data/MIT-LICENSE +22 -0
  2. data/README.rdoc +3 -0
  3. data/Rakefile +38 -0
  4. data/app/assets/images/tr8n/tr8n_logo.png +0 -0
  5. data/app/views/tr8n_client_sdk/tags/_language_strip.html.erb +20 -0
  6. data/app/views/tr8n_client_sdk/tags/_powered_by_tr8n.html.erb +6 -0
  7. data/app/views/tr8n_client_sdk/tags/_scripts.html.erb +20 -0
  8. data/config/routes.rb +2 -0
  9. data/lib/generators/tr8n_client_sdk/templates/config/tr8n/config.yml +53 -0
  10. data/lib/generators/tr8n_client_sdk/templates/config/tr8n/tokens/data.yml +45 -0
  11. data/lib/generators/tr8n_client_sdk/templates/config/tr8n/tokens/decorations.yml +37 -0
  12. data/lib/generators/tr8n_client_sdk/tr8n_client_sdk_generator.rb +37 -0
  13. data/lib/tasks/tr8n_client_sdk_tasks.rake +30 -0
  14. data/lib/tr8n_client_sdk.rb +28 -0
  15. data/lib/tr8n_client_sdk/config.rb +197 -0
  16. data/lib/tr8n_client_sdk/engine.rb +31 -0
  17. data/lib/tr8n_client_sdk/extensions/action_common_methods.rb +122 -0
  18. data/lib/tr8n_client_sdk/extensions/action_controller_extension.rb +123 -0
  19. data/lib/tr8n_client_sdk/extensions/action_view_extension.rb +218 -0
  20. data/lib/tr8n_client_sdk/railtie.rb +54 -0
  21. data/lib/tr8n_client_sdk/version.rb +27 -0
  22. data/test/dummy/README.rdoc +261 -0
  23. data/test/dummy/Rakefile +7 -0
  24. data/test/dummy/app/assets/images/bg-pattern.png +0 -0
  25. data/test/dummy/app/assets/images/facebook.png +0 -0
  26. data/test/dummy/app/assets/images/github.png +0 -0
  27. data/test/dummy/app/assets/images/glyphicons-halflings-white.png +0 -0
  28. data/test/dummy/app/assets/images/glyphicons-halflings.png +0 -0
  29. data/test/dummy/app/assets/images/how_it_works_1.gif +0 -0
  30. data/test/dummy/app/assets/images/how_it_works_2.gif +0 -0
  31. data/test/dummy/app/assets/images/how_it_works_3.gif +0 -0
  32. data/test/dummy/app/assets/images/hr.png +0 -0
  33. data/test/dummy/app/assets/images/linkedin.png +0 -0
  34. data/test/dummy/app/assets/images/silhouette.gif +0 -0
  35. data/test/dummy/app/assets/images/twitter.png +0 -0
  36. data/test/dummy/app/assets/images/wordpress.png +0 -0
  37. data/test/dummy/app/assets/images/youtube.png +0 -0
  38. data/test/dummy/app/assets/javascripts/ace/ace.js +11 -0
  39. data/test/dummy/app/assets/javascripts/ace/ext-static_highlight.js +1 -0
  40. data/test/dummy/app/assets/javascripts/ace/ext-textarea.js +1 -0
  41. data/test/dummy/app/assets/javascripts/ace/keybinding-emacs.js +1 -0
  42. data/test/dummy/app/assets/javascripts/ace/keybinding-vim.js +1 -0
  43. data/test/dummy/app/assets/javascripts/ace/mode-abap.js +1 -0
  44. data/test/dummy/app/assets/javascripts/ace/mode-asciidoc.js +1 -0
  45. data/test/dummy/app/assets/javascripts/ace/mode-c9search.js +1 -0
  46. data/test/dummy/app/assets/javascripts/ace/mode-c_cpp.js +1 -0
  47. data/test/dummy/app/assets/javascripts/ace/mode-clojure.js +1 -0
  48. data/test/dummy/app/assets/javascripts/ace/mode-coffee.js +1 -0
  49. data/test/dummy/app/assets/javascripts/ace/mode-coldfusion.js +1 -0
  50. data/test/dummy/app/assets/javascripts/ace/mode-csharp.js +1 -0
  51. data/test/dummy/app/assets/javascripts/ace/mode-css.js +1 -0
  52. data/test/dummy/app/assets/javascripts/ace/mode-dart.js +1 -0
  53. data/test/dummy/app/assets/javascripts/ace/mode-diff.js +1 -0
  54. data/test/dummy/app/assets/javascripts/ace/mode-dot.js +1 -0
  55. data/test/dummy/app/assets/javascripts/ace/mode-glsl.js +1 -0
  56. data/test/dummy/app/assets/javascripts/ace/mode-golang.js +1 -0
  57. data/test/dummy/app/assets/javascripts/ace/mode-groovy.js +1 -0
  58. data/test/dummy/app/assets/javascripts/ace/mode-haml.js +1 -0
  59. data/test/dummy/app/assets/javascripts/ace/mode-haxe.js +1 -0
  60. data/test/dummy/app/assets/javascripts/ace/mode-html.js +1 -0
  61. data/test/dummy/app/assets/javascripts/ace/mode-jade.js +1 -0
  62. data/test/dummy/app/assets/javascripts/ace/mode-java.js +1 -0
  63. data/test/dummy/app/assets/javascripts/ace/mode-javascript.js +1 -0
  64. data/test/dummy/app/assets/javascripts/ace/mode-json.js +1 -0
  65. data/test/dummy/app/assets/javascripts/ace/mode-jsp.js +1 -0
  66. data/test/dummy/app/assets/javascripts/ace/mode-jsx.js +1 -0
  67. data/test/dummy/app/assets/javascripts/ace/mode-latex.js +1 -0
  68. data/test/dummy/app/assets/javascripts/ace/mode-less.js +1 -0
  69. data/test/dummy/app/assets/javascripts/ace/mode-liquid.js +1 -0
  70. data/test/dummy/app/assets/javascripts/ace/mode-lisp.js +1 -0
  71. data/test/dummy/app/assets/javascripts/ace/mode-lua.js +1 -0
  72. data/test/dummy/app/assets/javascripts/ace/mode-luapage.js +1 -0
  73. data/test/dummy/app/assets/javascripts/ace/mode-lucene.js +1 -0
  74. data/test/dummy/app/assets/javascripts/ace/mode-makefile.js +1 -0
  75. data/test/dummy/app/assets/javascripts/ace/mode-markdown.js +1 -0
  76. data/test/dummy/app/assets/javascripts/ace/mode-objectivec.js +1 -0
  77. data/test/dummy/app/assets/javascripts/ace/mode-ocaml.js +1 -0
  78. data/test/dummy/app/assets/javascripts/ace/mode-perl.js +1 -0
  79. data/test/dummy/app/assets/javascripts/ace/mode-pgsql.js +1 -0
  80. data/test/dummy/app/assets/javascripts/ace/mode-php.js +1 -0
  81. data/test/dummy/app/assets/javascripts/ace/mode-powershell.js +1 -0
  82. data/test/dummy/app/assets/javascripts/ace/mode-python.js +1 -0
  83. data/test/dummy/app/assets/javascripts/ace/mode-r.js +1 -0
  84. data/test/dummy/app/assets/javascripts/ace/mode-rdoc.js +1 -0
  85. data/test/dummy/app/assets/javascripts/ace/mode-rhtml.js +1 -0
  86. data/test/dummy/app/assets/javascripts/ace/mode-ruby.js +1 -0
  87. data/test/dummy/app/assets/javascripts/ace/mode-scad.js +1 -0
  88. data/test/dummy/app/assets/javascripts/ace/mode-scala.js +1 -0
  89. data/test/dummy/app/assets/javascripts/ace/mode-scss.js +1 -0
  90. data/test/dummy/app/assets/javascripts/ace/mode-sh.js +1 -0
  91. data/test/dummy/app/assets/javascripts/ace/mode-sql.js +1 -0
  92. data/test/dummy/app/assets/javascripts/ace/mode-stylus.js +1 -0
  93. data/test/dummy/app/assets/javascripts/ace/mode-svg.js +1 -0
  94. data/test/dummy/app/assets/javascripts/ace/mode-tcl.js +1 -0
  95. data/test/dummy/app/assets/javascripts/ace/mode-tex.js +1 -0
  96. data/test/dummy/app/assets/javascripts/ace/mode-text.js +0 -0
  97. data/test/dummy/app/assets/javascripts/ace/mode-textile.js +1 -0
  98. data/test/dummy/app/assets/javascripts/ace/mode-typescript.js +1 -0
  99. data/test/dummy/app/assets/javascripts/ace/mode-xml.js +1 -0
  100. data/test/dummy/app/assets/javascripts/ace/mode-xquery.js +1 -0
  101. data/test/dummy/app/assets/javascripts/ace/mode-yaml.js +1 -0
  102. data/test/dummy/app/assets/javascripts/ace/theme-ambiance.js +1 -0
  103. data/test/dummy/app/assets/javascripts/ace/theme-chaos.js +1 -0
  104. data/test/dummy/app/assets/javascripts/ace/theme-chrome.js +1 -0
  105. data/test/dummy/app/assets/javascripts/ace/theme-clouds.js +1 -0
  106. data/test/dummy/app/assets/javascripts/ace/theme-clouds_midnight.js +1 -0
  107. data/test/dummy/app/assets/javascripts/ace/theme-cobalt.js +1 -0
  108. data/test/dummy/app/assets/javascripts/ace/theme-crimson_editor.js +1 -0
  109. data/test/dummy/app/assets/javascripts/ace/theme-dawn.js +1 -0
  110. data/test/dummy/app/assets/javascripts/ace/theme-dreamweaver.js +1 -0
  111. data/test/dummy/app/assets/javascripts/ace/theme-eclipse.js +1 -0
  112. data/test/dummy/app/assets/javascripts/ace/theme-github.js +1 -0
  113. data/test/dummy/app/assets/javascripts/ace/theme-idle_fingers.js +1 -0
  114. data/test/dummy/app/assets/javascripts/ace/theme-kr.js +1 -0
  115. data/test/dummy/app/assets/javascripts/ace/theme-merbivore.js +1 -0
  116. data/test/dummy/app/assets/javascripts/ace/theme-merbivore_soft.js +1 -0
  117. data/test/dummy/app/assets/javascripts/ace/theme-mono_industrial.js +1 -0
  118. data/test/dummy/app/assets/javascripts/ace/theme-monokai.js +1 -0
  119. data/test/dummy/app/assets/javascripts/ace/theme-pastel_on_dark.js +1 -0
  120. data/test/dummy/app/assets/javascripts/ace/theme-solarized_dark.js +1 -0
  121. data/test/dummy/app/assets/javascripts/ace/theme-solarized_light.js +1 -0
  122. data/test/dummy/app/assets/javascripts/ace/theme-textmate.js +1 -0
  123. data/test/dummy/app/assets/javascripts/ace/theme-tomorrow.js +1 -0
  124. data/test/dummy/app/assets/javascripts/ace/theme-tomorrow_night.js +1 -0
  125. data/test/dummy/app/assets/javascripts/ace/theme-tomorrow_night_blue.js +1 -0
  126. data/test/dummy/app/assets/javascripts/ace/theme-tomorrow_night_bright.js +1 -0
  127. data/test/dummy/app/assets/javascripts/ace/theme-tomorrow_night_eighties.js +1 -0
  128. data/test/dummy/app/assets/javascripts/ace/theme-twilight.js +1 -0
  129. data/test/dummy/app/assets/javascripts/ace/theme-vibrant_ink.js +1 -0
  130. data/test/dummy/app/assets/javascripts/ace/theme-xcode.js +1 -0
  131. data/test/dummy/app/assets/javascripts/ace/worker-coffee.js +1 -0
  132. data/test/dummy/app/assets/javascripts/ace/worker-css.js +1 -0
  133. data/test/dummy/app/assets/javascripts/ace/worker-javascript.js +1 -0
  134. data/test/dummy/app/assets/javascripts/ace/worker-json.js +1 -0
  135. data/test/dummy/app/assets/javascripts/ace/worker-xquery.js +1 -0
  136. data/test/dummy/app/assets/javascripts/application.js +15 -0
  137. data/test/dummy/app/assets/javascripts/bootstrap.js +2291 -0
  138. data/test/dummy/app/assets/javascripts/bootstrap.min.js +7 -0
  139. data/test/dummy/app/assets/javascripts/jquery-ace.js +195 -0
  140. data/test/dummy/app/assets/javascripts/jquery-ui-1.10.3.custom.min.js +7 -0
  141. data/test/dummy/app/assets/javascripts/jquery.tocify.min.js +4 -0
  142. data/test/dummy/app/assets/javascripts/jquery191.js +16 -0
  143. data/test/dummy/app/assets/javascripts/prism.js +20 -0
  144. data/test/dummy/app/assets/javascripts/prism_rails.js +49 -0
  145. data/test/dummy/app/assets/javascripts/sh.js +573 -0
  146. data/test/dummy/app/assets/stylesheets/application.css +8 -0
  147. data/test/dummy/app/assets/stylesheets/bootstrap/bootstrap.css +6315 -0
  148. data/test/dummy/app/assets/stylesheets/bootstrap/bootstrap.min.css +874 -0
  149. data/test/dummy/app/assets/stylesheets/bootstrap/bootstrap_and_overrides.css.scss +16 -0
  150. data/test/dummy/app/assets/stylesheets/jquery.tocify.css +62 -0
  151. data/test/dummy/app/assets/stylesheets/prism.css +108 -0
  152. data/test/dummy/app/assets/stylesheets/prism_rails.css.scss +42 -0
  153. data/test/dummy/app/assets/stylesheets/sh.css +193 -0
  154. data/test/dummy/app/controllers/application_controller.rb +82 -0
  155. data/test/dummy/app/controllers/docs_controller.rb +42 -0
  156. data/test/dummy/app/controllers/home_controller.rb +29 -0
  157. data/test/dummy/app/controllers/login_controller.rb +55 -0
  158. data/test/dummy/app/controllers/signup_controller.rb +58 -0
  159. data/test/dummy/app/controllers/welcome_controller.rb +30 -0
  160. data/test/dummy/app/helpers/application_helper.rb +26 -0
  161. data/test/dummy/app/mailers/request_mailer.rb +38 -0
  162. data/test/dummy/app/models/user.rb +48 -0
  163. data/test/dummy/app/views/docs/index.html.erb +591 -0
  164. data/test/dummy/app/views/docs/installation.html.erb +59 -0
  165. data/test/dummy/app/views/docs/test.html.erb +17 -0
  166. data/test/dummy/app/views/docs/tml.html.erb +176 -0
  167. data/test/dummy/app/views/docs/tml_content.html.erb +33 -0
  168. data/test/dummy/app/views/home/index.html.erb +107 -0
  169. data/test/dummy/app/views/layouts/_flashes.html.erb +35 -0
  170. data/test/dummy/app/views/layouts/_footer.html.erb +31 -0
  171. data/test/dummy/app/views/layouts/_head.html.erb +8 -0
  172. data/test/dummy/app/views/layouts/_header.html.erb +70 -0
  173. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  174. data/test/dummy/app/views/login/_common.html.erb +29 -0
  175. data/test/dummy/app/views/login/cookies.html.erb +20 -0
  176. data/test/dummy/app/views/login/index.html.erb +1 -0
  177. data/test/dummy/app/views/login/out.html.erb +1 -0
  178. data/test/dummy/app/views/signup/index.html.erb +22 -0
  179. data/test/dummy/config.ru +4 -0
  180. data/test/dummy/config/application.rb +59 -0
  181. data/test/dummy/config/boot.rb +10 -0
  182. data/test/dummy/config/database.yml +25 -0
  183. data/test/dummy/config/environment.rb +5 -0
  184. data/test/dummy/config/environments/development.rb +37 -0
  185. data/test/dummy/config/environments/production.rb +67 -0
  186. data/test/dummy/config/environments/test.rb +37 -0
  187. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  188. data/test/dummy/config/initializers/inflections.rb +15 -0
  189. data/test/dummy/config/initializers/mail.rb +14 -0
  190. data/test/dummy/config/initializers/mime_types.rb +5 -0
  191. data/test/dummy/config/initializers/secret_token.rb +7 -0
  192. data/test/dummy/config/initializers/session_store.rb +8 -0
  193. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  194. data/test/dummy/config/locales/en.yml +5 -0
  195. data/test/dummy/config/routes.rb +8 -0
  196. data/test/dummy/config/tr8n/config.yml +53 -0
  197. data/test/dummy/config/tr8n/tokens/data.yml +45 -0
  198. data/test/dummy/config/tr8n/tokens/decorations.yml +37 -0
  199. data/test/dummy/db/development.sqlite3 +0 -0
  200. data/test/dummy/db/migrate/20130506202619_create_users.rb +16 -0
  201. data/test/dummy/db/schema.rb +29 -0
  202. data/test/dummy/log/development.log +40036 -0
  203. data/test/dummy/log/tr8n.log +14602 -0
  204. data/test/dummy/public/404.html +26 -0
  205. data/test/dummy/public/422.html +26 -0
  206. data/test/dummy/public/500.html +25 -0
  207. data/test/dummy/public/favicon.ico +0 -0
  208. data/test/dummy/script/rails +6 -0
  209. data/test/dummy/spec/models/request_spec.rb +5 -0
  210. data/test/dummy/spec/models/user_spec.rb +5 -0
  211. data/test/dummy/tmp/cache/assets/BCA/680/sprockets%2F0e766e5046b2556242937265334a7776 +0 -0
  212. data/test/dummy/tmp/cache/assets/C41/5A0/sprockets%2Ff3979161c897640872293fb74f7e4185 +0 -0
  213. data/test/dummy/tmp/cache/assets/C69/980/sprockets%2F1289412d200b47c7f5ba1714da031188 +0 -0
  214. data/test/dummy/tmp/cache/assets/C80/840/sprockets%2F562c2d168da585f80579347d10790a0a +0 -0
  215. data/test/dummy/tmp/cache/assets/C85/8C0/sprockets%2F262c6124c54467ed84e71473a5748a2f +0 -0
  216. data/test/dummy/tmp/cache/assets/C9B/B70/sprockets%2F3c5f068b5a07f9215020042ed660bb45 +0 -0
  217. data/test/dummy/tmp/cache/assets/CAC/8A0/sprockets%2Fb3da0b5a24a9277687d1b973d1638126 +0 -0
  218. data/test/dummy/tmp/cache/assets/CB0/D20/sprockets%2F0850d836310c2fc600217ce3f894f9c8 +0 -0
  219. data/test/dummy/tmp/cache/assets/CB1/E50/sprockets%2Fea7a0c10450c627f752b87495d915b66 +0 -0
  220. data/test/dummy/tmp/cache/assets/CBF/A00/sprockets%2F82c0bd0c273938e78e80698057bf165e +0 -0
  221. data/test/dummy/tmp/cache/assets/CC3/730/sprockets%2F730877507dec32fd7d2e038899bb8067 +0 -0
  222. data/test/dummy/tmp/cache/assets/CC6/350/sprockets%2F7486d25d54ef6d9548205d5a17ff3468 +0 -0
  223. data/test/dummy/tmp/cache/assets/CC7/620/sprockets%2F395359137b16e965efa7fa58db855904 +0 -0
  224. data/test/dummy/tmp/cache/assets/CC7/A90/sprockets%2F77713cc98a179981d615f84f952add24 +0 -0
  225. data/test/dummy/tmp/cache/assets/CD5/2C0/sprockets%2F166c056119ebdfb8b7104c97b424b423 +0 -0
  226. data/test/dummy/tmp/cache/assets/CD6/450/sprockets%2Ff0c4fb28a62f912b5542965358a10a1f +0 -0
  227. data/test/dummy/tmp/cache/assets/CD6/C30/sprockets%2Fe15182011d74255aa67fde5a783dd612 +0 -0
  228. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  229. data/test/dummy/tmp/cache/assets/CD8/F00/sprockets%2F2344b925523c2c28a3fd1e73ad5f9181 +0 -0
  230. data/test/dummy/tmp/cache/assets/CD9/BA0/sprockets%2Fb9fa8aa2057e7d8702f10317694a8c10 +0 -0
  231. data/test/dummy/tmp/cache/assets/CE2/720/sprockets%2F922b15b49871931e5df1d0a2be4826f8 +0 -0
  232. data/test/dummy/tmp/cache/assets/CE3/EB0/sprockets%2F28ee30e42c7c583083e76a377df3035d +0 -0
  233. data/test/dummy/tmp/cache/assets/CE5/650/sprockets%2F8ab512c9b33ac90e699b73469d71f061 +0 -0
  234. data/test/dummy/tmp/cache/assets/CE8/2F0/sprockets%2Fb74ee6e80ba2911167d148d791d6728c +0 -0
  235. data/test/dummy/tmp/cache/assets/CEE/D60/sprockets%2F7b699b03f091fe228759da88a323a56f +0 -0
  236. data/test/dummy/tmp/cache/assets/CF0/450/sprockets%2F65704938b67ef6b06e386cea3c1848b6 +0 -0
  237. data/test/dummy/tmp/cache/assets/CF1/5A0/sprockets%2Fec49552e4a6b67bee359e0485610d887 +0 -0
  238. data/test/dummy/tmp/cache/assets/CFC/880/sprockets%2Fd89c211d7a3dc2a94a7625d7155000ab +0 -0
  239. data/test/dummy/tmp/cache/assets/D05/210/sprockets%2F5d0d1d45d694d6d4f803a9a1340b741c +0 -0
  240. data/test/dummy/tmp/cache/assets/D05/820/sprockets%2Fee427231dd340c1b50573f187a8a6d5d +0 -0
  241. data/test/dummy/tmp/cache/assets/D09/6F0/sprockets%2F0f69fe87b4b574153bdc60711a6ca208 +0 -0
  242. data/test/dummy/tmp/cache/assets/D0A/C20/sprockets%2Fd177dbfcd8235d07a0072c4d9c307385 +0 -0
  243. data/test/dummy/tmp/cache/assets/D0C/820/sprockets%2F1002e68d7cf06571cb63a864f93bb4e3 +0 -0
  244. data/test/dummy/tmp/cache/assets/D0E/A30/sprockets%2F71398e105f60c431f86d78e3abbbf125 +0 -0
  245. data/test/dummy/tmp/cache/assets/D0E/FF0/sprockets%2F2c4cc11f6c24fbb41d97713864854d1f +0 -0
  246. data/test/dummy/tmp/cache/assets/D18/E00/sprockets%2Ff017e80af40be5c829882bd1885a38f4 +0 -0
  247. data/test/dummy/tmp/cache/assets/D19/120/sprockets%2F69f0907662f738cd217edca24ef2328d +0 -0
  248. data/test/dummy/tmp/cache/assets/D25/FD0/sprockets%2F03006f6bba722ebc14ceac8221b81917 +0 -0
  249. data/test/dummy/tmp/cache/assets/D26/7C0/sprockets%2F771cba4a2e4f22141377c4eccc1065c0 +0 -0
  250. data/test/dummy/tmp/cache/assets/D28/B20/sprockets%2Fbd19c0bc42912a8ba7c5c3b100f71592 +0 -0
  251. data/test/dummy/tmp/cache/assets/D29/280/sprockets%2F04fd073ef39e04ced71111a204cb70e6 +0 -0
  252. data/test/dummy/tmp/cache/assets/D29/320/sprockets%2Feb3792401fd26ebf610c8531b0a4bd32 +0 -0
  253. data/test/dummy/tmp/cache/assets/D29/AF0/sprockets%2F841d8c0c4ba32a5e25aa41b7069ba581 +0 -0
  254. data/test/dummy/tmp/cache/assets/D32/4F0/sprockets%2Fb8023435d8d01feca8fd3a1ce9144181 +0 -0
  255. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  256. data/test/dummy/tmp/cache/assets/D38/DB0/sprockets%2Fe848eed2f10d359a60040b50d486b3fd +0 -0
  257. data/test/dummy/tmp/cache/assets/D39/6E0/sprockets%2F4d3170e44fdaa2f62cc266b62e5925e4 +0 -0
  258. data/test/dummy/tmp/cache/assets/D3C/2C0/sprockets%2F9c4d26aabdb46cc90d0228c79344950e +0 -0
  259. data/test/dummy/tmp/cache/assets/D3D/2D0/sprockets%2Fc83c38e1374d350196211ce9ffed3aa6 +0 -0
  260. data/test/dummy/tmp/cache/assets/D3D/970/sprockets%2F23fb0067086af38f593481abd034deff +0 -0
  261. data/test/dummy/tmp/cache/assets/D41/C20/sprockets%2F5b768ca318275843ae6b901bb9cca29e +0 -0
  262. data/test/dummy/tmp/cache/assets/D42/030/sprockets%2Ff991fbde306579de4c94d611ced13023 +0 -0
  263. data/test/dummy/tmp/cache/assets/D47/A20/sprockets%2F9f6654abeaa85f117a98806392ac2a8d +0 -0
  264. data/test/dummy/tmp/cache/assets/D47/D00/sprockets%2Fd76fe4489f3b7f2cd62450204cef631f +0 -0
  265. data/test/dummy/tmp/cache/assets/D4A/640/sprockets%2F94ec7bb9872d4b005d267d56cb80f7e4 +0 -0
  266. data/test/dummy/tmp/cache/assets/D4C/020/sprockets%2F2c26fac647b394d5f49b2743950aefe9 +0 -0
  267. data/test/dummy/tmp/cache/assets/D4D/A20/sprockets%2F0de50df58d85f5cce135f460979bd472 +0 -0
  268. data/test/dummy/tmp/cache/assets/D4D/E30/sprockets%2F828b744b9a72d6b05ace77264f878bdb +0 -0
  269. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  270. data/test/dummy/tmp/cache/assets/D53/1E0/sprockets%2F6d4776ffd4fc7486550b6508cb2dd57e +0 -0
  271. data/test/dummy/tmp/cache/assets/D5A/B70/sprockets%2F7b76786736bb5e9eeb4887dd32c83ec2 +0 -0
  272. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  273. data/test/dummy/tmp/cache/assets/D62/720/sprockets%2F34a95b2bb07a4fbd408c81f1c37bd860 +0 -0
  274. data/test/dummy/tmp/cache/assets/D69/B50/sprockets%2F1c7aa58ab12825ccfb465ca5e7c77551 +0 -0
  275. data/test/dummy/tmp/cache/assets/D6F/220/sprockets%2F99d4cd656c271484bee1a14ac84e5ad2 +0 -0
  276. data/test/dummy/tmp/cache/assets/D74/280/sprockets%2F049b078c38d43fbe7e6b1eb49da1b775 +0 -0
  277. data/test/dummy/tmp/cache/assets/D74/9A0/sprockets%2F049cf32cc869e7138b76f1bb04ae78ad +0 -0
  278. data/test/dummy/tmp/cache/assets/D77/770/sprockets%2F67b869074d0a5b5bb8698e55ccca47aa +0 -0
  279. data/test/dummy/tmp/cache/assets/D7A/290/sprockets%2F5acdbbb05bd53866c8225e95f8e805e8 +0 -0
  280. data/test/dummy/tmp/cache/assets/D7A/2A0/sprockets%2F91a461699d36fdd71c4cec0a8d737cf4 +0 -0
  281. data/test/dummy/tmp/cache/assets/D7C/5B0/sprockets%2F2b864c6eb9b8d679b2716db1a1e93c8f +0 -0
  282. data/test/dummy/tmp/cache/assets/D82/930/sprockets%2Fecdc4c7caa1aa683b13d14a91234b452 +0 -0
  283. data/test/dummy/tmp/cache/assets/D8D/610/sprockets%2Ffb7e1b81f737cb510ac8166a241bbc4c +0 -0
  284. data/test/dummy/tmp/cache/assets/D91/080/sprockets%2Fbcca522c6302f184f12fe0e8a7d7e71a +0 -0
  285. data/test/dummy/tmp/cache/assets/D91/2B0/sprockets%2F354460cd2db93ca02614a4bb76ffde3e +0 -0
  286. data/test/dummy/tmp/cache/assets/D96/DA0/sprockets%2F55af2375310fff6b9706cbacfb2ec540 +0 -0
  287. data/test/dummy/tmp/cache/assets/D9E/F30/sprockets%2Fc32ceef2bde9f93b4c5b866c8200371c +0 -0
  288. data/test/dummy/tmp/cache/assets/D9F/300/sprockets%2Fc13fc73ceafa45876a901b3e775b83ae +0 -0
  289. data/test/dummy/tmp/cache/assets/D9F/390/sprockets%2Fe2fc3cc13d4d3677be6574e0fd2732cf +0 -0
  290. data/test/dummy/tmp/cache/assets/DAA/A50/sprockets%2F231c56d70690f8b4f8f6fea2cea9d39b +0 -0
  291. data/test/dummy/tmp/cache/assets/DB5/350/sprockets%2F3b5ebcf21def6fff9868a18e239495f1 +0 -0
  292. data/test/dummy/tmp/cache/assets/DB9/150/sprockets%2Fdaff6d12c8afc96d0c91d77e91d79966 +0 -0
  293. data/test/dummy/tmp/cache/assets/DC9/DB0/sprockets%2F43a2aed943cbb05dcc84468c73ddea55 +0 -0
  294. data/test/dummy/tmp/cache/assets/DCE/310/sprockets%2F2f221a6c5ffcaf07ef30f4ee9a793b44 +0 -0
  295. data/test/dummy/tmp/cache/assets/DD2/750/sprockets%2Ff70dee8c3d675153ad76abe3f730dc4f +0 -0
  296. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  297. data/test/dummy/tmp/cache/assets/DFF/270/sprockets%2Fb84f2daecc65ed711132bff2d8f5fe08 +0 -0
  298. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  299. data/test/dummy/tmp/cache/assets/E13/010/sprockets%2Feecfc58398a4d26289a5e0fe9ecd09ec +0 -0
  300. data/test/dummy/tmp/cache/assets/E23/880/sprockets%2F436adfe0b6333bf5af1eaaf3ea4e919b +0 -0
  301. data/test/dummy/tmp/cache/assets/E25/4F0/sprockets%2Fa24db6eec8d3a80f7fe3a50b4cdd243f +0 -0
  302. data/test/dummy/tmp/cache/assets/E2C/210/sprockets%2Fdd7b14fc1e5b2b7dcdac381cc7f9c267 +0 -0
  303. data/test/dummy/tmp/cache/assets/E3A/950/sprockets%2F8a6c7c212feec8ae888ad7e7fa50a3ff +0 -0
  304. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_accordion.scssc +0 -0
  305. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_alerts.scssc +0 -0
  306. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_breadcrumbs.scssc +0 -0
  307. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_button-groups.scssc +0 -0
  308. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_buttons.scssc +0 -0
  309. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_carousel.scssc +0 -0
  310. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_close.scssc +0 -0
  311. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_code.scssc +0 -0
  312. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_component-animations.scssc +0 -0
  313. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_dropdowns.scssc +0 -0
  314. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_forms.scssc +0 -0
  315. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_grid.scssc +0 -0
  316. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_hero-unit.scssc +0 -0
  317. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_labels-badges.scssc +0 -0
  318. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_layouts.scssc +0 -0
  319. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_media.scssc +0 -0
  320. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_mixins.scssc +0 -0
  321. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_modals.scssc +0 -0
  322. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_navbar.scssc +0 -0
  323. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_navs.scssc +0 -0
  324. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_pager.scssc +0 -0
  325. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_pagination.scssc +0 -0
  326. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_popovers.scssc +0 -0
  327. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_progress-bars.scssc +0 -0
  328. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_reset.scssc +0 -0
  329. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_responsive-1200px-min.scssc +0 -0
  330. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_responsive-767px-max.scssc +0 -0
  331. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_responsive-768px-979px.scssc +0 -0
  332. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_responsive-navbar.scssc +0 -0
  333. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_responsive-utilities.scssc +0 -0
  334. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_scaffolding.scssc +0 -0
  335. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_sprites.scssc +0 -0
  336. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_tables.scssc +0 -0
  337. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_thumbnails.scssc +0 -0
  338. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_tooltip.scssc +0 -0
  339. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_type.scssc +0 -0
  340. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_utilities.scssc +0 -0
  341. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_variables.scssc +0 -0
  342. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/_wells.scssc +0 -0
  343. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/bootstrap.scssc +0 -0
  344. data/test/dummy/tmp/cache/sass/076477e2114ee474e8df1a7a673f9162f60724cc/responsive.scssc +0 -0
  345. data/test/dummy/tmp/cache/sass/2a9f8d893763e4aeafa77aedd38023c2d92257b4/bootstrap-responsive.scssc +0 -0
  346. data/test/dummy/tmp/cache/sass/2bca5584fcb1177ad07e4f21325c39e4eda592bf/bootstrap_and_overrides.css.scssc +0 -0
  347. data/test/integration/navigation_test.rb +10 -0
  348. data/test/test_helper.rb +15 -0
  349. data/test/tr8n_client_sdk_test.rb +7 -0
  350. 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
@@ -0,0 +1,3 @@
1
+ = Tr8n Client SDK for Ruby on Rails
2
+
3
+ This project rocks and uses MIT-LICENSE.
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
@@ -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) %> &nbsp;
13
+ <% end %>
14
+
15
+ <% if featured_languages.size > 0 %>
16
+ <%=link_to_function("&raquo;".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,2 @@
1
+ Tr8nClientSdk::Engine.routes.draw do
2
+ end
@@ -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: "&ndash;" # –
9
+ mdash: "&mdash;" # —
10
+ iexcl: "&iexcl;" # ¡
11
+ iquest: "&iquest;" # ¿
12
+ quot: "&quot;" # "
13
+ ldquo: "&ldquo;" # “
14
+ rdquo: "&rdquo;" # ”
15
+ lsquo: "&lsquo;" # ‘
16
+ rsquo: "&rsquo;" # ’
17
+ laquo: "&laquo;" # «
18
+ raquo: "&raquo;" # »
19
+ nbsp: "&nbsp;" # space
20
+ lsaquo: "&lsaquo;" # ‹
21
+ rsaquo: "&rsaquo;" # ›
22
+ br: "<br/>" # line break
23
+ lbrace: "{"
24
+ rbrace: "}"
25
+ trade: "&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