jeygeethanmedia-inkpen 1.2.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (702) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.rspec +1 -0
  4. data/.ruby-version +1 -0
  5. data/CHANGELOG.md +175 -0
  6. data/Gemfile +43 -0
  7. data/Gemfile.lock +333 -0
  8. data/Guardfile +33 -0
  9. data/LICENSE +165 -0
  10. data/README.rdoc +150 -0
  11. data/Rakefile +31 -0
  12. data/app/assets/config/manifest.js +5 -0
  13. data/app/assets/fonts/BPmono-webfont.eot +0 -0
  14. data/app/assets/fonts/BPmono-webfont.svg +216 -0
  15. data/app/assets/fonts/BPmono-webfont.ttf +0 -0
  16. data/app/assets/fonts/BPmono-webfont.woff +0 -0
  17. data/app/assets/fonts/BPmonoBold-webfont.eot +0 -0
  18. data/app/assets/fonts/BPmonoBold-webfont.svg +148 -0
  19. data/app/assets/fonts/BPmonoBold-webfont.ttf +0 -0
  20. data/app/assets/fonts/BPmonoBold-webfont.woff +0 -0
  21. data/app/assets/fonts/BPmonoItalics-webfont.eot +0 -0
  22. data/app/assets/fonts/BPmonoItalics-webfont.svg +148 -0
  23. data/app/assets/fonts/BPmonoItalics-webfont.ttf +0 -0
  24. data/app/assets/fonts/BPmonoItalics-webfont.woff +0 -0
  25. data/app/assets/fonts/Museo300-Regular-webfont.eot +0 -0
  26. data/app/assets/fonts/Museo300-Regular-webfont.svg +160 -0
  27. data/app/assets/fonts/Museo300-Regular-webfont.ttf +0 -0
  28. data/app/assets/fonts/Museo300-Regular-webfont.woff +0 -0
  29. data/app/assets/fonts/Museo500-Regular-webfont.eot +0 -0
  30. data/app/assets/fonts/Museo500-Regular-webfont.svg +160 -0
  31. data/app/assets/fonts/Museo500-Regular-webfont.ttf +0 -0
  32. data/app/assets/fonts/Museo500-Regular-webfont.woff +0 -0
  33. data/app/assets/fonts/Ubuntu-B-webfont.eot +0 -0
  34. data/app/assets/fonts/Ubuntu-B-webfont.svg +232 -0
  35. data/app/assets/fonts/Ubuntu-B-webfont.ttf +0 -0
  36. data/app/assets/fonts/Ubuntu-B-webfont.woff +0 -0
  37. data/app/assets/fonts/Ubuntu-L-webfont 2.ttf +0 -0
  38. data/app/assets/fonts/Ubuntu-L-webfont.svg +147 -0
  39. data/app/assets/fonts/Ubuntu-L-webfont.ttf +0 -0
  40. data/app/assets/fonts/Ubuntu-L-webfont.woff +0 -0
  41. data/app/assets/fonts/Ubuntu-R-webfont.eot +0 -0
  42. data/app/assets/fonts/Ubuntu-R-webfont.svg +232 -0
  43. data/app/assets/fonts/Ubuntu-R-webfont.ttf +0 -0
  44. data/app/assets/fonts/Ubuntu-R-webfont.woff +0 -0
  45. data/app/assets/fonts/Ubuntu-RI-webfont.eot +0 -0
  46. data/app/assets/fonts/Ubuntu-RI-webfont.svg +232 -0
  47. data/app/assets/fonts/Ubuntu-RI-webfont.ttf +0 -0
  48. data/app/assets/fonts/Ubuntu-RI-webfont.woff +0 -0
  49. data/app/assets/heroes/001.jpg +0 -0
  50. data/app/assets/heroes/001_dark.jpg +0 -0
  51. data/app/assets/heroes/002.jpg +0 -0
  52. data/app/assets/heroes/002_dark.jpg +0 -0
  53. data/app/assets/heroes/003.jpg +0 -0
  54. data/app/assets/heroes/003_dark.jpg +0 -0
  55. data/app/assets/images/article-icons.png +0 -0
  56. data/app/assets/images/checkbox-icon.png +0 -0
  57. data/app/assets/images/favicon.ico +0 -0
  58. data/app/assets/images/footer_icon.png +0 -0
  59. data/app/assets/images/gplus.svg +17 -0
  60. data/app/assets/images/ic_action_add.png +0 -0
  61. data/app/assets/images/ic_action_home.png +0 -0
  62. data/app/assets/images/ic_arrow_left.png +0 -0
  63. data/app/assets/images/ic_arrow_right.png +0 -0
  64. data/app/assets/images/ic_googleplus.png +0 -0
  65. data/app/assets/images/ic_rss.png +0 -0
  66. data/app/assets/images/ic_rss_hover.png +0 -0
  67. data/app/assets/images/ic_twitter.png +0 -0
  68. data/app/assets/images/ic_twitter_hover.png +0 -0
  69. data/app/assets/images/icon_addphoto.png +0 -0
  70. data/app/assets/images/opoloo_feed.png +0 -0
  71. data/app/assets/images/signet_opoloo.png +0 -0
  72. data/app/assets/images/squirrelpark_signet.png +0 -0
  73. data/app/assets/javascripts/lines/admin/admin.js +299 -0
  74. data/app/assets/javascripts/lines/admin/autosize.min.js +7 -0
  75. data/app/assets/javascripts/lines/admin/navbar.js +51 -0
  76. data/app/assets/javascripts/lines/admin/pictures.js.coffee +22 -0
  77. data/app/assets/javascripts/lines/application.js +17 -0
  78. data/app/assets/javascripts/lines/articles.js.coffee +6 -0
  79. data/app/assets/javascripts/lines/viewer.js.coffee +3 -0
  80. data/app/assets/stylesheets/lines/admin/admin.scss +609 -0
  81. data/app/assets/stylesheets/lines/admin/variables_and_mixins.scss +36 -0
  82. data/app/assets/stylesheets/lines/application.scss +11 -0
  83. data/app/assets/stylesheets/lines/article.scss +302 -0
  84. data/app/assets/stylesheets/lines/fonts.scss +4 -0
  85. data/app/assets/stylesheets/lines/footer.scss +18 -0
  86. data/app/assets/stylesheets/lines/general.scss +90 -0
  87. data/app/assets/stylesheets/lines/lines_overrides.scss +6 -0
  88. data/app/assets/stylesheets/lines/media_queries.scss +41 -0
  89. data/app/assets/stylesheets/lines/messages.scss +29 -0
  90. data/app/assets/stylesheets/lines/navbar.scss +227 -0
  91. data/app/assets/stylesheets/lines/pagination.scss +17 -0
  92. data/app/assets/stylesheets/lines/pygments.css.erb +2 -0
  93. data/app/assets/stylesheets/lines/variables_and_mixins.scss +27 -0
  94. data/app/controllers/lines/admin/application_controller.rb +21 -0
  95. data/app/controllers/lines/admin/articles_controller.rb +176 -0
  96. data/app/controllers/lines/admin/authors_controller.rb +71 -0
  97. data/app/controllers/lines/admin/pictures_controller.rb +44 -0
  98. data/app/controllers/lines/application_controller.rb +18 -0
  99. data/app/controllers/lines/articles_controller.rb +72 -0
  100. data/app/controllers/lines/password_resets_controller.rb +81 -0
  101. data/app/controllers/lines/sessions_controller.rb +34 -0
  102. data/app/helpers/lines/application_helper.rb +125 -0
  103. data/app/mailers/lines/user_mailer.rb +11 -0
  104. data/app/models/lines/application_record.rb +3 -0
  105. data/app/models/lines/article.rb +127 -0
  106. data/app/models/lines/author.rb +41 -0
  107. data/app/models/lines/authorable.rb +8 -0
  108. data/app/models/lines/picture.rb +25 -0
  109. data/app/models/lines/user.rb +72 -0
  110. data/app/uploaders/document_uploader.rb +16 -0
  111. data/app/uploaders/hero_image_uploader.rb +31 -0
  112. data/app/uploaders/picture_uploader.rb +35 -0
  113. data/app/views/kaminari/lines/_gap.html.erb +8 -0
  114. data/app/views/kaminari/lines/_next_page.html.erb +11 -0
  115. data/app/views/kaminari/lines/_page.html.erb +12 -0
  116. data/app/views/kaminari/lines/_paginator.html.erb +27 -0
  117. data/app/views/kaminari/lines/_prev_page.html.erb +11 -0
  118. data/app/views/layouts/lines/_markdown_cheatsheet.html.erb +72 -0
  119. data/app/views/layouts/lines/admin.html.erb +45 -0
  120. data/app/views/layouts/lines/application.html.erb +54 -0
  121. data/app/views/layouts/lines/preview.html.erb +42 -0
  122. data/app/views/lines/admin/articles/_form.html.erb +99 -0
  123. data/app/views/lines/admin/articles/_picture_box.html.erb +32 -0
  124. data/app/views/lines/admin/articles/edit.html.erb +2 -0
  125. data/app/views/lines/admin/articles/index.html.erb +64 -0
  126. data/app/views/lines/admin/articles/new.html.erb +6 -0
  127. data/app/views/lines/admin/articles/show.html.erb +8 -0
  128. data/app/views/lines/admin/authors/_form.html.erb +25 -0
  129. data/app/views/lines/admin/authors/edit.html.erb +20 -0
  130. data/app/views/lines/admin/authors/index.html.erb +39 -0
  131. data/app/views/lines/admin/authors/new.html.erb +20 -0
  132. data/app/views/lines/admin/authors/show.html.erb +24 -0
  133. data/app/views/lines/admin/pictures/_form.html.erb +29 -0
  134. data/app/views/lines/admin/pictures/_picture.html.erb +6 -0
  135. data/app/views/lines/admin/pictures/create.js.erb +5 -0
  136. data/app/views/lines/admin/pictures/destroy.js.erb +1 -0
  137. data/app/views/lines/articles/_article.html.erb +45 -0
  138. data/app/views/lines/articles/_article_collection.html.erb +5 -0
  139. data/app/views/lines/articles/_article_small.html.erb +24 -0
  140. data/app/views/lines/articles/index.atom.builder +34 -0
  141. data/app/views/lines/articles/index.html.erb +15 -0
  142. data/app/views/lines/articles/show.html.erb +5 -0
  143. data/app/views/lines/password_resets/edit.html.erb +39 -0
  144. data/app/views/lines/password_resets/new.html.erb +14 -0
  145. data/app/views/lines/sessions/new.html.erb +22 -0
  146. data/app/views/lines/shared/_flash.html.erb +8 -0
  147. data/app/views/lines/shared/_footer.html.erb +9 -0
  148. data/app/views/lines/shared/_navigation.html.erb +18 -0
  149. data/app/views/lines/user_mailer/password_reset.html.erb +11 -0
  150. data/app/views/lines/user_mailer/password_reset.text.erb +12 -0
  151. data/bin/rails +12 -0
  152. data/certs/lines-engine.pem +21 -0
  153. data/config/initializers/assets.rb +1 -0
  154. data/config/initializers/carrierwave_test.rb +9 -0
  155. data/config/initializers/kaminari_config.rb +11 -0
  156. data/config/initializers/load_config.rb +13 -0
  157. data/config/lines_config.yml +63 -0
  158. data/config/locales/de.yml +210 -0
  159. data/config/locales/kaminari.de.yml +8 -0
  160. data/config/locales/kaminari.en.yml +8 -0
  161. data/config/locales/lines.de.yml +64 -0
  162. data/config/locales/lines.en.yml +64 -0
  163. data/config/routes.rb +37 -0
  164. data/db/migrate/20140505122014_base_migration.rb +84 -0
  165. data/db/migrate/20140702160602_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb +31 -0
  166. data/db/migrate/20140702160603_add_missing_unique_indices.acts_as_taggable_on_engine.rb +20 -0
  167. data/db/migrate/20140702160604_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb +15 -0
  168. data/db/migrate/20141027143656_add_teaser_to_article.rb +5 -0
  169. data/db/migrate/20150421093311_add_reset_password_fields_to_users.rb +6 -0
  170. data/db/seeds.rb +9 -0
  171. data/lib/generators/lines/README +31 -0
  172. data/lib/generators/lines/copy_styles_generator.rb +13 -0
  173. data/lib/generators/lines/install_generator.rb +52 -0
  174. data/lib/generators/lines/templates/octorel.png +0 -0
  175. data/lib/lines.rb +14 -0
  176. data/lib/lines/engine.rb +71 -0
  177. data/lib/lines/version.rb +3 -0
  178. data/lib/tasks/lines.rake +51 -0
  179. data/lib/tasks/lines_tasks.rake +4 -0
  180. data/lines.gemspec +58 -0
  181. data/public/codemirror/.gitattributes +8 -0
  182. data/public/codemirror/.gitignore +8 -0
  183. data/public/codemirror/.npmignore +9 -0
  184. data/public/codemirror/.travis.yml +4 -0
  185. data/public/codemirror/AUTHORS +474 -0
  186. data/public/codemirror/CONTRIBUTING.md +88 -0
  187. data/public/codemirror/LICENSE +19 -0
  188. data/public/codemirror/README.md +27 -0
  189. data/public/codemirror/addon/comment/comment.js +183 -0
  190. data/public/codemirror/addon/comment/continuecomment.js +85 -0
  191. data/public/codemirror/addon/dialog/dialog.css +32 -0
  192. data/public/codemirror/addon/dialog/dialog.js +157 -0
  193. data/public/codemirror/addon/display/fullscreen.css +6 -0
  194. data/public/codemirror/addon/display/fullscreen.js +41 -0
  195. data/public/codemirror/addon/display/panel.js +112 -0
  196. data/public/codemirror/addon/display/placeholder.js +58 -0
  197. data/public/codemirror/addon/display/rulers.js +63 -0
  198. data/public/codemirror/addon/edit/closebrackets.js +185 -0
  199. data/public/codemirror/addon/edit/closetag.js +166 -0
  200. data/public/codemirror/addon/edit/continuelist.js +51 -0
  201. data/public/codemirror/addon/edit/matchbrackets.js +120 -0
  202. data/public/codemirror/addon/edit/matchtags.js +66 -0
  203. data/public/codemirror/addon/edit/trailingspace.js +27 -0
  204. data/public/codemirror/addon/fold/brace-fold.js +105 -0
  205. data/public/codemirror/addon/fold/comment-fold.js +57 -0
  206. data/public/codemirror/addon/fold/foldcode.js +149 -0
  207. data/public/codemirror/addon/fold/foldgutter.css +20 -0
  208. data/public/codemirror/addon/fold/foldgutter.js +146 -0
  209. data/public/codemirror/addon/fold/indent-fold.js +44 -0
  210. data/public/codemirror/addon/fold/markdown-fold.js +49 -0
  211. data/public/codemirror/addon/fold/xml-fold.js +182 -0
  212. data/public/codemirror/addon/hint/anyword-hint.js +41 -0
  213. data/public/codemirror/addon/hint/css-hint.js +60 -0
  214. data/public/codemirror/addon/hint/html-hint.js +348 -0
  215. data/public/codemirror/addon/hint/javascript-hint.js +146 -0
  216. data/public/codemirror/addon/hint/show-hint.css +38 -0
  217. data/public/codemirror/addon/hint/show-hint.js +386 -0
  218. data/public/codemirror/addon/hint/sql-hint.js +254 -0
  219. data/public/codemirror/addon/hint/xml-hint.js +110 -0
  220. data/public/codemirror/addon/lint/coffeescript-lint.js +41 -0
  221. data/public/codemirror/addon/lint/css-lint.js +35 -0
  222. data/public/codemirror/addon/lint/javascript-lint.js +136 -0
  223. data/public/codemirror/addon/lint/json-lint.js +31 -0
  224. data/public/codemirror/addon/lint/lint.css +73 -0
  225. data/public/codemirror/addon/lint/lint.js +207 -0
  226. data/public/codemirror/addon/lint/yaml-lint.js +28 -0
  227. data/public/codemirror/addon/merge/merge.css +112 -0
  228. data/public/codemirror/addon/merge/merge.js +775 -0
  229. data/public/codemirror/addon/mode/loadmode.js +64 -0
  230. data/public/codemirror/addon/mode/multiplex.js +123 -0
  231. data/public/codemirror/addon/mode/multiplex_test.js +33 -0
  232. data/public/codemirror/addon/mode/overlay.js +85 -0
  233. data/public/codemirror/addon/mode/simple.js +213 -0
  234. data/public/codemirror/addon/runmode/colorize.js +40 -0
  235. data/public/codemirror/addon/runmode/runmode-standalone.js +157 -0
  236. data/public/codemirror/addon/runmode/runmode.js +72 -0
  237. data/public/codemirror/addon/runmode/runmode.node.js +178 -0
  238. data/public/codemirror/addon/scroll/annotatescrollbar.js +115 -0
  239. data/public/codemirror/addon/scroll/scrollpastend.js +46 -0
  240. data/public/codemirror/addon/scroll/simplescrollbars.css +66 -0
  241. data/public/codemirror/addon/scroll/simplescrollbars.js +147 -0
  242. data/public/codemirror/addon/search/match-highlighter.js +128 -0
  243. data/public/codemirror/addon/search/matchesonscrollbar.css +8 -0
  244. data/public/codemirror/addon/search/matchesonscrollbar.js +97 -0
  245. data/public/codemirror/addon/search/search.js +202 -0
  246. data/public/codemirror/addon/search/searchcursor.js +189 -0
  247. data/public/codemirror/addon/selection/active-line.js +71 -0
  248. data/public/codemirror/addon/selection/mark-selection.js +118 -0
  249. data/public/codemirror/addon/selection/selection-pointer.js +98 -0
  250. data/public/codemirror/addon/tern/tern.css +87 -0
  251. data/public/codemirror/addon/tern/tern.js +699 -0
  252. data/public/codemirror/addon/tern/worker.js +44 -0
  253. data/public/codemirror/addon/wrap/hardwrap.js +139 -0
  254. data/public/codemirror/bin/authors.sh +6 -0
  255. data/public/codemirror/bin/compress +92 -0
  256. data/public/codemirror/bin/lint +3 -0
  257. data/public/codemirror/bin/release +45 -0
  258. data/public/codemirror/bin/source-highlight +51 -0
  259. data/public/codemirror/bower.json +17 -0
  260. data/public/codemirror/demo/activeline.html +78 -0
  261. data/public/codemirror/demo/anywordhint.html +79 -0
  262. data/public/codemirror/demo/bidi.html +74 -0
  263. data/public/codemirror/demo/btree.html +85 -0
  264. data/public/codemirror/demo/buffers.html +109 -0
  265. data/public/codemirror/demo/changemode.html +58 -0
  266. data/public/codemirror/demo/closebrackets.html +52 -0
  267. data/public/codemirror/demo/closetag.html +41 -0
  268. data/public/codemirror/demo/complete.html +79 -0
  269. data/public/codemirror/demo/emacs.html +75 -0
  270. data/public/codemirror/demo/folding.html +95 -0
  271. data/public/codemirror/demo/fullscreen.html +83 -0
  272. data/public/codemirror/demo/hardwrap.html +72 -0
  273. data/public/codemirror/demo/html5complete.html +56 -0
  274. data/public/codemirror/demo/indentwrap.html +59 -0
  275. data/public/codemirror/demo/lint.html +171 -0
  276. data/public/codemirror/demo/loadmode.html +72 -0
  277. data/public/codemirror/demo/marker.html +52 -0
  278. data/public/codemirror/demo/markselection.html +52 -0
  279. data/public/codemirror/demo/matchhighlighter.html +47 -0
  280. data/public/codemirror/demo/matchtags.html +48 -0
  281. data/public/codemirror/demo/merge.html +122 -0
  282. data/public/codemirror/demo/multiplex.html +75 -0
  283. data/public/codemirror/demo/mustache.html +69 -0
  284. data/public/codemirror/demo/panel.html +136 -0
  285. data/public/codemirror/demo/placeholder.html +45 -0
  286. data/public/codemirror/demo/preview.html +87 -0
  287. data/public/codemirror/demo/requirejs.html +70 -0
  288. data/public/codemirror/demo/resize.html +51 -0
  289. data/public/codemirror/demo/rulers.html +49 -0
  290. data/public/codemirror/demo/runmode.html +62 -0
  291. data/public/codemirror/demo/search.html +95 -0
  292. data/public/codemirror/demo/simplemode.html +186 -0
  293. data/public/codemirror/demo/simplescrollbars.html +82 -0
  294. data/public/codemirror/demo/spanaffectswrapping_shim.html +85 -0
  295. data/public/codemirror/demo/sublime.html +76 -0
  296. data/public/codemirror/demo/tern.html +133 -0
  297. data/public/codemirror/demo/theme.html +152 -0
  298. data/public/codemirror/demo/trailingspace.html +48 -0
  299. data/public/codemirror/demo/variableheight.html +67 -0
  300. data/public/codemirror/demo/vim.html +104 -0
  301. data/public/codemirror/demo/visibletabs.html +62 -0
  302. data/public/codemirror/demo/widget.html +85 -0
  303. data/public/codemirror/demo/xmlcomplete.html +119 -0
  304. data/public/codemirror/doc/activebookmark.js +57 -0
  305. data/public/codemirror/doc/compress.html +329 -0
  306. data/public/codemirror/doc/docs.css +271 -0
  307. data/public/codemirror/doc/internals.html +503 -0
  308. data/public/codemirror/doc/logo.png +0 -0
  309. data/public/codemirror/doc/logo.svg +181 -0
  310. data/public/codemirror/doc/manual.html +3327 -0
  311. data/public/codemirror/doc/realworld.html +174 -0
  312. data/public/codemirror/doc/releases.html +1116 -0
  313. data/public/codemirror/doc/reporting.html +61 -0
  314. data/public/codemirror/doc/upgrade_v2.2.html +96 -0
  315. data/public/codemirror/doc/upgrade_v3.html +230 -0
  316. data/public/codemirror/doc/upgrade_v4.html +144 -0
  317. data/public/codemirror/doc/yinyang.png +0 -0
  318. data/public/codemirror/index.html +199 -0
  319. data/public/codemirror/keymap/emacs.js +412 -0
  320. data/public/codemirror/keymap/sublime.js +555 -0
  321. data/public/codemirror/keymap/vim.js +5060 -0
  322. data/public/codemirror/lib/codemirror.css +332 -0
  323. data/public/codemirror/lib/codemirror.js +8788 -0
  324. data/public/codemirror/mode/apl/apl.js +174 -0
  325. data/public/codemirror/mode/apl/index.html +72 -0
  326. data/public/codemirror/mode/asciiarmor/asciiarmor.js +73 -0
  327. data/public/codemirror/mode/asciiarmor/index.html +46 -0
  328. data/public/codemirror/mode/asn.1/asn.1.js +204 -0
  329. data/public/codemirror/mode/asn.1/index.html +78 -0
  330. data/public/codemirror/mode/asterisk/asterisk.js +196 -0
  331. data/public/codemirror/mode/asterisk/index.html +154 -0
  332. data/public/codemirror/mode/brainfuck/brainfuck.js +85 -0
  333. data/public/codemirror/mode/brainfuck/index.html +85 -0
  334. data/public/codemirror/mode/clike/clike.js +604 -0
  335. data/public/codemirror/mode/clike/index.html +252 -0
  336. data/public/codemirror/mode/clike/scala.html +767 -0
  337. data/public/codemirror/mode/clike/test.js +33 -0
  338. data/public/codemirror/mode/clojure/clojure.js +244 -0
  339. data/public/codemirror/mode/clojure/index.html +88 -0
  340. data/public/codemirror/mode/cmake/cmake.js +97 -0
  341. data/public/codemirror/mode/cmake/index.html +129 -0
  342. data/public/codemirror/mode/cobol/cobol.js +255 -0
  343. data/public/codemirror/mode/cobol/index.html +210 -0
  344. data/public/codemirror/mode/coffeescript/coffeescript.js +369 -0
  345. data/public/codemirror/mode/coffeescript/index.html +740 -0
  346. data/public/codemirror/mode/commonlisp/commonlisp.js +123 -0
  347. data/public/codemirror/mode/commonlisp/index.html +177 -0
  348. data/public/codemirror/mode/css/css.js +756 -0
  349. data/public/codemirror/mode/css/index.html +75 -0
  350. data/public/codemirror/mode/css/less.html +152 -0
  351. data/public/codemirror/mode/css/less_test.js +54 -0
  352. data/public/codemirror/mode/css/scss.html +157 -0
  353. data/public/codemirror/mode/css/scss_test.js +110 -0
  354. data/public/codemirror/mode/css/test.js +188 -0
  355. data/public/codemirror/mode/cypher/cypher.js +146 -0
  356. data/public/codemirror/mode/cypher/index.html +63 -0
  357. data/public/codemirror/mode/d/d.js +218 -0
  358. data/public/codemirror/mode/d/index.html +273 -0
  359. data/public/codemirror/mode/dart/dart.js +50 -0
  360. data/public/codemirror/mode/dart/index.html +71 -0
  361. data/public/codemirror/mode/diff/diff.js +47 -0
  362. data/public/codemirror/mode/diff/index.html +117 -0
  363. data/public/codemirror/mode/django/django.js +350 -0
  364. data/public/codemirror/mode/django/index.html +73 -0
  365. data/public/codemirror/mode/dockerfile/dockerfile.js +76 -0
  366. data/public/codemirror/mode/dockerfile/index.html +73 -0
  367. data/public/codemirror/mode/dtd/dtd.js +142 -0
  368. data/public/codemirror/mode/dtd/index.html +89 -0
  369. data/public/codemirror/mode/dylan/dylan.js +291 -0
  370. data/public/codemirror/mode/dylan/index.html +407 -0
  371. data/public/codemirror/mode/ebnf/ebnf.js +195 -0
  372. data/public/codemirror/mode/ebnf/index.html +102 -0
  373. data/public/codemirror/mode/ecl/ecl.js +206 -0
  374. data/public/codemirror/mode/ecl/index.html +52 -0
  375. data/public/codemirror/mode/eiffel/eiffel.js +160 -0
  376. data/public/codemirror/mode/eiffel/index.html +429 -0
  377. data/public/codemirror/mode/elm/elm.js +205 -0
  378. data/public/codemirror/mode/elm/index.html +61 -0
  379. data/public/codemirror/mode/erlang/erlang.js +618 -0
  380. data/public/codemirror/mode/erlang/index.html +76 -0
  381. data/public/codemirror/mode/factor/factor.js +83 -0
  382. data/public/codemirror/mode/factor/index.html +77 -0
  383. data/public/codemirror/mode/forth/forth.js +180 -0
  384. data/public/codemirror/mode/forth/index.html +75 -0
  385. data/public/codemirror/mode/fortran/fortran.js +188 -0
  386. data/public/codemirror/mode/fortran/index.html +81 -0
  387. data/public/codemirror/mode/gas/gas.js +345 -0
  388. data/public/codemirror/mode/gas/index.html +68 -0
  389. data/public/codemirror/mode/gfm/gfm.js +124 -0
  390. data/public/codemirror/mode/gfm/index.html +93 -0
  391. data/public/codemirror/mode/gfm/test.js +213 -0
  392. data/public/codemirror/mode/gherkin/gherkin.js +178 -0
  393. data/public/codemirror/mode/gherkin/index.html +48 -0
  394. data/public/codemirror/mode/go/go.js +185 -0
  395. data/public/codemirror/mode/go/index.html +85 -0
  396. data/public/codemirror/mode/groovy/groovy.js +230 -0
  397. data/public/codemirror/mode/groovy/index.html +84 -0
  398. data/public/codemirror/mode/haml/haml.js +159 -0
  399. data/public/codemirror/mode/haml/index.html +79 -0
  400. data/public/codemirror/mode/haml/test.js +97 -0
  401. data/public/codemirror/mode/handlebars/handlebars.js +53 -0
  402. data/public/codemirror/mode/handlebars/index.html +83 -0
  403. data/public/codemirror/mode/haskell/haskell.js +267 -0
  404. data/public/codemirror/mode/haskell/index.html +73 -0
  405. data/public/codemirror/mode/haxe/haxe.js +518 -0
  406. data/public/codemirror/mode/haxe/index.html +124 -0
  407. data/public/codemirror/mode/htmlembedded/htmlembedded.js +28 -0
  408. data/public/codemirror/mode/htmlembedded/index.html +59 -0
  409. data/public/codemirror/mode/htmlmixed/htmlmixed.js +121 -0
  410. data/public/codemirror/mode/htmlmixed/index.html +89 -0
  411. data/public/codemirror/mode/http/http.js +113 -0
  412. data/public/codemirror/mode/http/index.html +45 -0
  413. data/public/codemirror/mode/idl/idl.js +290 -0
  414. data/public/codemirror/mode/idl/index.html +64 -0
  415. data/public/codemirror/mode/index.html +149 -0
  416. data/public/codemirror/mode/jade/index.html +70 -0
  417. data/public/codemirror/mode/jade/jade.js +590 -0
  418. data/public/codemirror/mode/javascript/index.html +114 -0
  419. data/public/codemirror/mode/javascript/javascript.js +704 -0
  420. data/public/codemirror/mode/javascript/json-ld.html +72 -0
  421. data/public/codemirror/mode/javascript/test.js +205 -0
  422. data/public/codemirror/mode/javascript/typescript.html +61 -0
  423. data/public/codemirror/mode/jinja2/index.html +54 -0
  424. data/public/codemirror/mode/jinja2/jinja2.js +142 -0
  425. data/public/codemirror/mode/julia/index.html +195 -0
  426. data/public/codemirror/mode/julia/julia.js +299 -0
  427. data/public/codemirror/mode/kotlin/index.html +89 -0
  428. data/public/codemirror/mode/kotlin/kotlin.js +284 -0
  429. data/public/codemirror/mode/livescript/index.html +459 -0
  430. data/public/codemirror/mode/livescript/livescript.js +280 -0
  431. data/public/codemirror/mode/lua/index.html +85 -0
  432. data/public/codemirror/mode/lua/lua.js +159 -0
  433. data/public/codemirror/mode/markdown/index.html +359 -0
  434. data/public/codemirror/mode/markdown/markdown.js +781 -0
  435. data/public/codemirror/mode/markdown/test.js +792 -0
  436. data/public/codemirror/mode/mathematica/index.html +72 -0
  437. data/public/codemirror/mode/mathematica/mathematica.js +175 -0
  438. data/public/codemirror/mode/meta.js +190 -0
  439. data/public/codemirror/mode/mirc/index.html +160 -0
  440. data/public/codemirror/mode/mirc/mirc.js +193 -0
  441. data/public/codemirror/mode/mllike/index.html +179 -0
  442. data/public/codemirror/mode/mllike/mllike.js +205 -0
  443. data/public/codemirror/mode/modelica/index.html +67 -0
  444. data/public/codemirror/mode/modelica/modelica.js +245 -0
  445. data/public/codemirror/mode/mumps/index.html +85 -0
  446. data/public/codemirror/mode/mumps/mumps.js +148 -0
  447. data/public/codemirror/mode/nginx/index.html +181 -0
  448. data/public/codemirror/mode/nginx/nginx.js +178 -0
  449. data/public/codemirror/mode/ntriples/index.html +45 -0
  450. data/public/codemirror/mode/ntriples/ntriples.js +186 -0
  451. data/public/codemirror/mode/octave/index.html +83 -0
  452. data/public/codemirror/mode/octave/octave.js +135 -0
  453. data/public/codemirror/mode/pascal/index.html +61 -0
  454. data/public/codemirror/mode/pascal/pascal.js +109 -0
  455. data/public/codemirror/mode/pegjs/index.html +66 -0
  456. data/public/codemirror/mode/pegjs/pegjs.js +114 -0
  457. data/public/codemirror/mode/perl/index.html +75 -0
  458. data/public/codemirror/mode/perl/perl.js +837 -0
  459. data/public/codemirror/mode/php/index.html +64 -0
  460. data/public/codemirror/mode/php/php.js +230 -0
  461. data/public/codemirror/mode/php/test.js +154 -0
  462. data/public/codemirror/mode/pig/index.html +55 -0
  463. data/public/codemirror/mode/pig/pig.js +178 -0
  464. data/public/codemirror/mode/properties/index.html +53 -0
  465. data/public/codemirror/mode/properties/properties.js +78 -0
  466. data/public/codemirror/mode/puppet/index.html +121 -0
  467. data/public/codemirror/mode/puppet/puppet.js +220 -0
  468. data/public/codemirror/mode/python/index.html +198 -0
  469. data/public/codemirror/mode/python/python.js +358 -0
  470. data/public/codemirror/mode/q/index.html +144 -0
  471. data/public/codemirror/mode/q/q.js +139 -0
  472. data/public/codemirror/mode/r/index.html +85 -0
  473. data/public/codemirror/mode/r/r.js +162 -0
  474. data/public/codemirror/mode/rpm/changes/index.html +66 -0
  475. data/public/codemirror/mode/rpm/index.html +149 -0
  476. data/public/codemirror/mode/rpm/rpm.js +101 -0
  477. data/public/codemirror/mode/rst/index.html +535 -0
  478. data/public/codemirror/mode/rst/rst.js +557 -0
  479. data/public/codemirror/mode/ruby/index.html +183 -0
  480. data/public/codemirror/mode/ruby/ruby.js +285 -0
  481. data/public/codemirror/mode/ruby/test.js +14 -0
  482. data/public/codemirror/mode/rust/index.html +60 -0
  483. data/public/codemirror/mode/rust/rust.js +451 -0
  484. data/public/codemirror/mode/sass/index.html +66 -0
  485. data/public/codemirror/mode/sass/sass.js +414 -0
  486. data/public/codemirror/mode/scheme/index.html +77 -0
  487. data/public/codemirror/mode/scheme/scheme.js +249 -0
  488. data/public/codemirror/mode/shell/index.html +66 -0
  489. data/public/codemirror/mode/shell/shell.js +139 -0
  490. data/public/codemirror/mode/shell/test.js +58 -0
  491. data/public/codemirror/mode/sieve/index.html +93 -0
  492. data/public/codemirror/mode/sieve/sieve.js +193 -0
  493. data/public/codemirror/mode/slim/index.html +96 -0
  494. data/public/codemirror/mode/slim/slim.js +575 -0
  495. data/public/codemirror/mode/slim/test.js +96 -0
  496. data/public/codemirror/mode/smalltalk/index.html +68 -0
  497. data/public/codemirror/mode/smalltalk/smalltalk.js +168 -0
  498. data/public/codemirror/mode/smarty/index.html +138 -0
  499. data/public/codemirror/mode/smarty/smarty.js +225 -0
  500. data/public/codemirror/mode/solr/index.html +57 -0
  501. data/public/codemirror/mode/solr/solr.js +104 -0
  502. data/public/codemirror/mode/soy/index.html +68 -0
  503. data/public/codemirror/mode/soy/soy.js +198 -0
  504. data/public/codemirror/mode/sparql/index.html +61 -0
  505. data/public/codemirror/mode/sparql/sparql.js +174 -0
  506. data/public/codemirror/mode/spreadsheet/index.html +42 -0
  507. data/public/codemirror/mode/spreadsheet/spreadsheet.js +109 -0
  508. data/public/codemirror/mode/sql/index.html +84 -0
  509. data/public/codemirror/mode/sql/sql.js +391 -0
  510. data/public/codemirror/mode/stex/index.html +110 -0
  511. data/public/codemirror/mode/stex/stex.js +251 -0
  512. data/public/codemirror/mode/stex/test.js +123 -0
  513. data/public/codemirror/mode/stylus/index.html +106 -0
  514. data/public/codemirror/mode/stylus/stylus.js +768 -0
  515. data/public/codemirror/mode/swift/index.html +88 -0
  516. data/public/codemirror/mode/swift/swift.js +203 -0
  517. data/public/codemirror/mode/tcl/index.html +142 -0
  518. data/public/codemirror/mode/tcl/tcl.js +147 -0
  519. data/public/codemirror/mode/textile/index.html +191 -0
  520. data/public/codemirror/mode/textile/test.js +417 -0
  521. data/public/codemirror/mode/textile/textile.js +469 -0
  522. data/public/codemirror/mode/tiddlywiki/index.html +154 -0
  523. data/public/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  524. data/public/codemirror/mode/tiddlywiki/tiddlywiki.js +358 -0
  525. data/public/codemirror/mode/tiki/index.html +95 -0
  526. data/public/codemirror/mode/tiki/tiki.css +26 -0
  527. data/public/codemirror/mode/tiki/tiki.js +312 -0
  528. data/public/codemirror/mode/toml/index.html +73 -0
  529. data/public/codemirror/mode/toml/toml.js +88 -0
  530. data/public/codemirror/mode/tornado/index.html +63 -0
  531. data/public/codemirror/mode/tornado/tornado.js +68 -0
  532. data/public/codemirror/mode/troff/index.html +146 -0
  533. data/public/codemirror/mode/troff/troff.js +82 -0
  534. data/public/codemirror/mode/ttcn-cfg/index.html +115 -0
  535. data/public/codemirror/mode/ttcn-cfg/ttcn-cfg.js +214 -0
  536. data/public/codemirror/mode/ttcn/index.html +118 -0
  537. data/public/codemirror/mode/ttcn/ttcn.js +283 -0
  538. data/public/codemirror/mode/turtle/index.html +50 -0
  539. data/public/codemirror/mode/turtle/turtle.js +162 -0
  540. data/public/codemirror/mode/twig/index.html +45 -0
  541. data/public/codemirror/mode/twig/twig.js +132 -0
  542. data/public/codemirror/mode/vb/index.html +102 -0
  543. data/public/codemirror/mode/vb/vb.js +276 -0
  544. data/public/codemirror/mode/vbscript/index.html +55 -0
  545. data/public/codemirror/mode/vbscript/vbscript.js +350 -0
  546. data/public/codemirror/mode/velocity/index.html +118 -0
  547. data/public/codemirror/mode/velocity/velocity.js +201 -0
  548. data/public/codemirror/mode/verilog/index.html +120 -0
  549. data/public/codemirror/mode/verilog/test.js +273 -0
  550. data/public/codemirror/mode/verilog/verilog.js +537 -0
  551. data/public/codemirror/mode/vhdl/index.html +95 -0
  552. data/public/codemirror/mode/vhdl/vhdl.js +189 -0
  553. data/public/codemirror/mode/xml/index.html +57 -0
  554. data/public/codemirror/mode/xml/test.js +51 -0
  555. data/public/codemirror/mode/xml/xml.js +385 -0
  556. data/public/codemirror/mode/xquery/index.html +210 -0
  557. data/public/codemirror/mode/xquery/test.js +67 -0
  558. data/public/codemirror/mode/xquery/xquery.js +437 -0
  559. data/public/codemirror/mode/yaml/index.html +80 -0
  560. data/public/codemirror/mode/yaml/yaml.js +117 -0
  561. data/public/codemirror/mode/z80/index.html +53 -0
  562. data/public/codemirror/mode/z80/z80.js +116 -0
  563. data/public/codemirror/package.json +20 -0
  564. data/public/codemirror/test/comment_test.js +100 -0
  565. data/public/codemirror/test/doc_test.js +371 -0
  566. data/public/codemirror/test/driver.js +138 -0
  567. data/public/codemirror/test/emacs_test.js +147 -0
  568. data/public/codemirror/test/index.html +241 -0
  569. data/public/codemirror/test/lint.js +11 -0
  570. data/public/codemirror/test/mode_test.css +23 -0
  571. data/public/codemirror/test/mode_test.js +192 -0
  572. data/public/codemirror/test/multi_test.js +285 -0
  573. data/public/codemirror/test/phantom_driver.js +31 -0
  574. data/public/codemirror/test/run.js +31 -0
  575. data/public/codemirror/test/scroll_test.js +115 -0
  576. data/public/codemirror/test/search_test.js +62 -0
  577. data/public/codemirror/test/sql-hint-test.js +189 -0
  578. data/public/codemirror/test/sublime_test.js +303 -0
  579. data/public/codemirror/test/test.js +2142 -0
  580. data/public/codemirror/test/vim_test.js +3955 -0
  581. data/public/codemirror/theme/3024-day.css +41 -0
  582. data/public/codemirror/theme/3024-night.css +39 -0
  583. data/public/codemirror/theme/ambiance-mobile.css +5 -0
  584. data/public/codemirror/theme/ambiance.css +76 -0
  585. data/public/codemirror/theme/base16-dark.css +38 -0
  586. data/public/codemirror/theme/base16-light.css +38 -0
  587. data/public/codemirror/theme/blackboard.css +32 -0
  588. data/public/codemirror/theme/cobalt.css +25 -0
  589. data/public/codemirror/theme/colorforth.css +33 -0
  590. data/public/codemirror/theme/dracula.css +87 -0
  591. data/public/codemirror/theme/eclipse.css +23 -0
  592. data/public/codemirror/theme/elegant.css +13 -0
  593. data/public/codemirror/theme/erlang-dark.css +34 -0
  594. data/public/codemirror/theme/icecoder.css +42 -0
  595. data/public/codemirror/theme/lesser-dark.css +47 -0
  596. data/public/codemirror/theme/lines.css +109 -0
  597. data/public/codemirror/theme/liquibyte.css +95 -0
  598. data/public/codemirror/theme/material.css +105 -0
  599. data/public/codemirror/theme/mbo.css +37 -0
  600. data/public/codemirror/theme/mdn-like.css +46 -0
  601. data/public/codemirror/theme/midnight.css +47 -0
  602. data/public/codemirror/theme/monokai.css +35 -0
  603. data/public/codemirror/theme/neat.css +12 -0
  604. data/public/codemirror/theme/neo.css +43 -0
  605. data/public/codemirror/theme/night.css +28 -0
  606. data/public/codemirror/theme/paraiso-dark.css +38 -0
  607. data/public/codemirror/theme/paraiso-light.css +38 -0
  608. data/public/codemirror/theme/pastel-on-dark.css +53 -0
  609. data/public/codemirror/theme/rubyblue.css +25 -0
  610. data/public/codemirror/theme/seti.css +88 -0
  611. data/public/codemirror/theme/solarized.css +165 -0
  612. data/public/codemirror/theme/the-matrix.css +30 -0
  613. data/public/codemirror/theme/tomorrow-night-bright.css +35 -0
  614. data/public/codemirror/theme/tomorrow-night-eighties.css +38 -0
  615. data/public/codemirror/theme/ttcn.css +65 -0
  616. data/public/codemirror/theme/twilight.css +32 -0
  617. data/public/codemirror/theme/vibrant-ink.css +34 -0
  618. data/public/codemirror/theme/xq-dark.css +53 -0
  619. data/public/codemirror/theme/xq-light.css +43 -0
  620. data/public/codemirror/theme/yeti.css +86 -0
  621. data/public/codemirror/theme/zenburn.css +37 -0
  622. data/public/fira-mono/FiraMono-Bold.eot +0 -0
  623. data/public/fira-mono/FiraMono-Bold.otf +0 -0
  624. data/public/fira-mono/FiraMono-Bold.ttf +0 -0
  625. data/public/fira-mono/FiraMono-Bold.woff +0 -0
  626. data/public/fira-mono/FiraMono-Medium.eot +0 -0
  627. data/public/fira-mono/FiraMono-Medium.otf +0 -0
  628. data/public/fira-mono/FiraMono-Medium.ttf +0 -0
  629. data/public/fira-mono/FiraMono-Medium.woff +0 -0
  630. data/public/fira-mono/FiraMono-Regular.eot +0 -0
  631. data/public/fira-mono/FiraMono-Regular.otf +0 -0
  632. data/public/fira-mono/FiraMono-Regular.ttf +0 -0
  633. data/public/fira-mono/FiraMono-Regular.woff +0 -0
  634. data/public/fira-mono/fira-mono.css +32 -0
  635. data/public/heroes/lines_default_01.png +0 -0
  636. data/public/heroes/lines_default_02.png +0 -0
  637. data/public/heroes/lines_default_03.png +0 -0
  638. data/public/iconfont/iconfont.css +48 -0
  639. data/public/iconfont/iconfont.eot +0 -0
  640. data/public/iconfont/iconfont.svg +18 -0
  641. data/public/iconfont/iconfont.ttf +0 -0
  642. data/public/iconfont/iconfont.woff +0 -0
  643. data/spec/controllers/lines/admin/articles_controller-spec.rb +7 -0
  644. data/spec/dummy/README.rdoc +28 -0
  645. data/spec/dummy/Rakefile +6 -0
  646. data/spec/dummy/app/assets/config/manifest.js +5 -0
  647. data/spec/dummy/app/assets/images/.keep +0 -0
  648. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  649. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  650. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  651. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  652. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  653. data/spec/dummy/app/mailers/.keep +0 -0
  654. data/spec/dummy/app/models/.keep +0 -0
  655. data/spec/dummy/app/models/concerns/.keep +0 -0
  656. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  657. data/spec/dummy/bin/bundle +3 -0
  658. data/spec/dummy/bin/rails +4 -0
  659. data/spec/dummy/bin/rake +4 -0
  660. data/spec/dummy/config.ru +4 -0
  661. data/spec/dummy/config/application.rb +29 -0
  662. data/spec/dummy/config/boot.rb +5 -0
  663. data/spec/dummy/config/database.yml +26 -0
  664. data/spec/dummy/config/environment.rb +5 -0
  665. data/spec/dummy/config/environments/development.rb +42 -0
  666. data/spec/dummy/config/environments/production.rb +83 -0
  667. data/spec/dummy/config/environments/test.rb +44 -0
  668. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  669. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  670. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  671. data/spec/dummy/config/initializers/inflections.rb +16 -0
  672. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  673. data/spec/dummy/config/initializers/session_store.rb +3 -0
  674. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  675. data/spec/dummy/config/locales/en.yml +23 -0
  676. data/spec/dummy/config/routes.rb +3 -0
  677. data/spec/dummy/config/secrets.yml +22 -0
  678. data/spec/dummy/db/schema.rb +103 -0
  679. data/spec/dummy/db/seeds.rb +9 -0
  680. data/spec/dummy/lib/assets/.keep +0 -0
  681. data/spec/dummy/public/404.html +67 -0
  682. data/spec/dummy/public/422.html +67 -0
  683. data/spec/dummy/public/500.html +66 -0
  684. data/spec/dummy/public/favicon.ico +0 -0
  685. data/spec/dummy/test/mailers/previews/user_mailer_preview.rb +11 -0
  686. data/spec/dummy/vendor/screenshots/octorel.png +0 -0
  687. data/spec/factories/articles.rb +22 -0
  688. data/spec/factories/authors.rb +9 -0
  689. data/spec/factories/pictures.rb +8 -0
  690. data/spec/factories/users.rb +10 -0
  691. data/spec/features/article_spec.rb +65 -0
  692. data/spec/features/password_reset_spec.rb +48 -0
  693. data/spec/features/user_logs_in_spec.rb +28 -0
  694. data/spec/mailers/lines/user_mailer_spec.rb +24 -0
  695. data/spec/models/article_spec.rb +38 -0
  696. data/spec/models/lines/author_spec.rb +29 -0
  697. data/spec/models/lines/picture_spec.rb +25 -0
  698. data/spec/models/lines/user_spec.rb +18 -0
  699. data/spec/spec_helper.rb +57 -0
  700. data/spec/support/auth_macros.rb +21 -0
  701. data/spec/support/images/example.jpg +0 -0
  702. metadata +1241 -0
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+
3
+ img = Lines::Picture.create!({ image: (File.open(File.join(Rails.root, 'vendor/screenshots/octorel.png'))) })
4
+
5
+ Lines::Article.create!([
6
+ {title: "Lines Needs You", sub_title: "", content: "We believe in the power of open source. It’s one of the best ways to push the boundaries of the web. Because LINES is still a young platform, it needs your help so it can mature and grow to its aspired size and strength. We can’t wait to see all the great things your brilliant brain and fingers will do with this project.\r\n\r\n[Fork LINES on GitHub](https://github.com/opoloo/lines)", published: true, published_at: "2015-08-05 00:00:00", gplus_url: "", featured: false, document: nil, short_hero_image: "/heroes/lines_default_01.png", teaser: "", :authors => [Lines::Author.first]},
7
+ {title: "Customization & License", sub_title: "", content: "Find below all the important details you need to know about customizing your new blog system: modifying the stylesheets, adapting header & footer, and on.\r\n\r\nWe also made sure you get a friendly user license that gives you the freedom to do almost everything you want with this blog.\r\n\r\n#Customization\r\n\r\n##Modify CSS/SCSS\r\nAdmin viewer SCSS:\r\n\r\n`app/assets/stylesheets/admin.css.scss`\r\n\r\nDefault viewer SCSS: \r\n\r\n`app/assets/stylesheets/style.css.scss`\r\n\r\n##Header (Meta) & Footer\r\nTo change the header/meta/footer elements you need to modify\r\n\r\n`app/views/layouts/application.html.erb`\r\n\r\n#License\r\nYou may use the Lines blog template as you please. You’d make us very happy, however, if you attributed to LINES and Opoloo and kept spreading the word.\r\n\r\nWe heartily invite you to extend the features of the template, but when you do, you should fork it on GitHub, so everyone can profit from your work.\r\n\r\nYou can see the full license [here](choosealicense.com/licenses/lgpl-v3/).", published: true, published_at: "2015-08-05 00:00:00", gplus_url: "", featured: false, document: nil, short_hero_image: "/heroes/lines_default_02.png" , teaser: "", :authors => [Lines::Author.first]},
8
+ {title: "Welcome to Your new Lines Blog", sub_title: "", content: "Thanks for downloading LINES, it’s an honor for us to know you’re using our blog framework to write and publish wonderful stuff.\r\n\r\nAs you know by now, LINES is an open source project. It’s open source for a reason—we believe that great publishing software must pass through the hands and minds of many, it must be adjustable and customizable, it must be in a state of constant development. That also means you’re in the position to make LINES serve your needs *and* to improve it for everyone. Thanks for your support.\r\n\r\nSo we’d like to heartily invite and encourage you to share your thoughts and projects with us. Your feedback is valuable and welcome.\r\n\r\nHere’s a few things that come with this Rails gem that might be interesting to know.\r\n\r\n# Technology\r\nThis blog is based on Ruby on Rails 4.0, which is all you need besides a database that supports it. We’re using a MySQL database. We’re providing as clean a code as possible, and of course we’ll maintain it and keep it up-to-date on GitHub. You’re invited to [fork](https://github.com/opoloo/lines) and improve LINES at all times.\r\n\r\n# For Developers\r\nNearly everything about this blog template can be customized to your personal needs and preferences.\r\n\r\n## Default features\r\n- Markdown editor (GitHub Flavored Markdown)\r\n- Hero graphics for posts\r\n- Upload default hero images that you want to use more frequently\r\n- Customizable generic titles & subtitles\r\n- Automatic teaser for the article overview\r\n- Four headline levels (H1–H4)\r\n- Tags for articles\r\n- Social media link\r\n- Multiple authors and author information\r\n- Add documents for download\r\n- Formating help\r\n- Direct RSS reader access\r\n- Customizable footer\r\n\r\n## Non-Features\r\n- management hassle\r\n- rights and legal bullshit\r\n- complicated settings\r\n- disco lights\r\n\r\nFor any concerns, do by all means [contact us](info@opoloo.com). We’re always interested in a good conversation. Also, do tell us about your LINES project, we’re very curious about what you’ve built.\r\n", published: true, published_at: "2015-08-05 00:00:00", gplus_url: "", featured: false, document: nil, short_hero_image: "/heroes/lines_default_03.png", teaser: "", :authors => [Lines::Author.first]}
9
+ ])
File without changes
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,11 @@
1
+ # Preview all emails at http://localhost:3000/rails/mailers/user_mailer
2
+ class UserMailerPreview < ActionMailer::Preview
3
+
4
+ # Preview this email at
5
+ # http://localhost:3000/rails/mailers/user_mailer/password_reset
6
+ def password_reset
7
+ user = Lines::User.first
8
+ user.reset_token = Lines::User.generate_token
9
+ Lines::UserMailer.password_reset(user)
10
+ end
11
+ end
@@ -0,0 +1,22 @@
1
+ require 'faker'
2
+
3
+ FactoryGirl.define do
4
+ factory :article, :class => Lines::Article do |f|
5
+ f.title "Testing with RSpec"
6
+ f.sub_title "My subtitle"
7
+ f.content "Content for article"
8
+ f.published_at Time.now
9
+ f.hero_image { File.open(File.join(Lines::Engine.root, 'spec/support/images/example.jpg')) }
10
+ f.author_ids {
11
+ count = 0
12
+ Array(5..10).sample.times.map do
13
+ count += 1
14
+ FactoryGirl.create(:author, :name => "Author #{count}", :email => "author#{count}@example.com", :description => "desc#{count}")[:id]
15
+ end
16
+ }
17
+
18
+ factory :article_with_tags, class: Lines::Article do |a|
19
+ a.tag_list 'tag1, tag2'
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,9 @@
1
+ require 'faker'
2
+
3
+ FactoryGirl.define do
4
+ factory :author, class: Lines::Author do |f|
5
+ f.name { Faker::Name.name }
6
+ f.email { Faker::Internet.email }
7
+ f.description "dsf"
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ require 'faker'
2
+
3
+ FactoryGirl.define do
4
+ factory :picture, class: Lines::Picture do |f|
5
+ f.image { File.open(File.join(Lines::Engine.root, 'spec/support/images/example.jpg')) }
6
+ article
7
+ end
8
+ end
@@ -0,0 +1,10 @@
1
+ require 'faker'
2
+
3
+ FactoryGirl.define do
4
+ factory :user, class: Lines::User do |f|
5
+ f.email { Faker::Internet.email }
6
+ f.password "sekret1234"
7
+ # f.password_confirmation "sekret"
8
+ end
9
+
10
+ end
@@ -0,0 +1,65 @@
1
+ require 'spec_helper'
2
+
3
+ def login_and_visit_new_article
4
+ log_in({ email: 'valid@example.com', password: 'password123' })
5
+ expect(page).to have_content('Logged in')
6
+ @author = FactoryGirl.create(:author, name: "Foo Bar")
7
+ visit lines.admin_articles_path
8
+ click_on "New Article"
9
+ #expect(page).to have_content('New article')
10
+ end
11
+
12
+ def create_valid_article
13
+ #expect(page).to have_content('New article')
14
+ fill_in "Title", with: "How to Test"
15
+ fill_in "Teaser", with: "Awesome teaser!"
16
+ fill_in "article_content", with: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
17
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
18
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
19
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
20
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
21
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
22
+ check "Foo Bar"
23
+ fill_in "Subtitle", with: "with RSpec and Rails"
24
+ fill_in "article_gplus_url", with: "http://gplus.de/opoloo"
25
+ fill_in "Tags", with: "tag1, tag2"
26
+ attach_file('article_hero_image', File.join(Lines::Engine.root, 'spec/support/images/example.jpg'))
27
+ click_on "Save"
28
+ expect(page).to have_content "How to Test"
29
+ end
30
+
31
+ feature 'user creates article' do
32
+ before(:each) do
33
+ login_and_visit_new_article
34
+ end
35
+
36
+ scenario 'with valid valid attributes' do
37
+ create_valid_article
38
+ current_path.should == "/admin/articles/how-to-test"
39
+ expect(page).to have_content "How to Test"
40
+ expect(page).to have_content "Lorem ipsum dolor"
41
+ expect(page).to have_content "Foo Bar"
42
+ expect(page).to have_content "RSpec and Rails"
43
+ expect(page).to have_content "Awesome teaser!"
44
+ end
45
+
46
+ scenario 'with invalid attributes' do
47
+ click_on "Save"
48
+ expect(page).to have_content "Title can't be blank"
49
+ expect(page).to have_content "Body copy can't be blank"
50
+ expect(page).to have_content "Authors can't be blank"
51
+ #expect(page).to have_content "You have to either select an image or upload one."
52
+ end
53
+
54
+ end
55
+
56
+ feature 'user publishes an article' do
57
+ before(:each) do
58
+ login_and_visit_new_article
59
+ end
60
+ scenario 'with article is unpublished' do
61
+ create_valid_article
62
+ click_on "Publish"
63
+ page.find("div.published").should have_content "How to Test"
64
+ end
65
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ feature 'user resets password' do
4
+ before(:each) do
5
+ @user = FactoryGirl.create(:user, password: 'password1234')
6
+ visit lines.login_path
7
+ expect(page).to have_content "Forgot password"
8
+ click_on "Forgot password"
9
+ expect(page).to have_content "Reset password"
10
+ fill_in "password_reset_email", with: @user.email
11
+ find('input[name="commit"]').click
12
+ expect(page).to have_content "Reset instructions have been sent"
13
+ #generate new reset token
14
+ @user.create_reset_digest
15
+ visit lines.edit_password_reset_url(@user.reload.reset_token, email: @user.email)
16
+ expect(page).to have_content 'Set new password'
17
+ end
18
+
19
+ scenario 'with valid password' do
20
+ fill_in "user_password", with: 'testtest'
21
+ fill_in "user_password_confirmation", with: 'testtest'
22
+ find('input[name="commit"]').click
23
+ expect(page).to have_content 'Password has been reset.'
24
+ expect(@user.reload.reset_digest).to eq nil
25
+ end
26
+
27
+ scenario 'with password too short' do
28
+ fill_in "user_password", with: 't'
29
+ fill_in "user_password_confirmation", with: 't'
30
+ find('input[name="commit"]').click
31
+ expect(page).to have_content 'too short'
32
+ end
33
+
34
+ scenario 'with empty password' do
35
+ fill_in "user_password", with: ''
36
+ fill_in "user_password_confirmation", with: ''
37
+ find('input[name="commit"]').click
38
+ expect(page).to have_content "Password can't be blank"
39
+ end
40
+
41
+ scenario 'with password confirmation not matching' do
42
+ fill_in "user_password", with: 'testtest'
43
+ fill_in "user_password_confirmation", with: 'testtest234'
44
+ find('input[name="commit"]').click
45
+ expect(page).to have_content 'not match'
46
+ end
47
+
48
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ feature 'user logs in' do
4
+ scenario 'with valid email and password' do
5
+ log_in({ email: 'valid@example.com', password: 'password' })
6
+
7
+ expect(page).to have_content('Logged in')
8
+ end
9
+
10
+ scenario 'with invalid email' do
11
+ @_current_lines_user = FactoryGirl.create(:user)
12
+ visit lines.login_path
13
+ fill_in "email", with: "invalid_email"
14
+ fill_in "password", with: 'sekret1234'
15
+ click_button "Login"
16
+ page.should have_content('Email or password is invalid')
17
+ end
18
+
19
+ scenario 'with blank password' do
20
+ @_current_lines_user = FactoryGirl.create(:user, email: 'valid@example.com')
21
+ visit lines.login_path
22
+ fill_in "email", with: "valid@example.com"
23
+ fill_in "password", with: ''
24
+ click_button "Login"
25
+ page.should have_content('Email or password is invalid')
26
+ end
27
+
28
+ end
@@ -0,0 +1,24 @@
1
+ require "spec_helper"
2
+
3
+ module Lines
4
+ describe UserMailer do
5
+ describe "password_reset" do
6
+ let(:user) { FactoryGirl.create(:user) }
7
+ let(:mail) { UserMailer.password_reset(user) }
8
+
9
+ before(:each) do
10
+ user.create_reset_digest
11
+ end
12
+
13
+ it "renders the headers" do
14
+ mail.subject.should eq("Forgot your LINES password?")
15
+ mail.to.should eq([user.email])
16
+ end
17
+
18
+ it "renders the body" do
19
+ mail.body.encoded.should match("password")
20
+ end
21
+ end
22
+
23
+ end
24
+ end