cmsimple 0.2.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 (221) hide show
  1. data/.gitignore +31 -0
  2. data/.rspec +1 -0
  3. data/.travis.yml +16 -0
  4. data/Gemfile +20 -0
  5. data/Gemfile.ci +5 -0
  6. data/LICENSE +19 -0
  7. data/README.md +118 -0
  8. data/Rakefile +47 -0
  9. data/app/assets/javascripts/cmsimple.js +61 -0
  10. data/app/assets/javascripts/cmsimple/controllers/editor.coffee +102 -0
  11. data/app/assets/javascripts/cmsimple/lib/namespaces.coffee +3 -0
  12. data/app/assets/javascripts/cmsimple/lib/support.coffee +4 -0
  13. data/app/assets/javascripts/cmsimple/mercury/config.js +462 -0
  14. data/app/assets/javascripts/cmsimple/mercury/handlers.coffee +9 -0
  15. data/app/assets/javascripts/cmsimple/models/image.coffee +49 -0
  16. data/app/assets/javascripts/cmsimple/models/page.coffee +106 -0
  17. data/app/assets/javascripts/cmsimple/models/path.coffee +31 -0
  18. data/app/assets/javascripts/cmsimple/models/version.coffee +29 -0
  19. data/app/assets/javascripts/cmsimple/panels/images/index.coffee +2 -0
  20. data/app/assets/javascripts/cmsimple/panels/images/list.coffee +48 -0
  21. data/app/assets/javascripts/cmsimple/panels/images/panel.coffee +69 -0
  22. data/app/assets/javascripts/cmsimple/panels/images/selection.coffee +52 -0
  23. data/app/assets/javascripts/cmsimple/panels/page_metadata.coffee +42 -0
  24. data/app/assets/javascripts/cmsimple/panels/publish.coffee +32 -0
  25. data/app/assets/javascripts/cmsimple/panels/redirects/form.coffee +51 -0
  26. data/app/assets/javascripts/cmsimple/panels/redirects/index.coffee +2 -0
  27. data/app/assets/javascripts/cmsimple/panels/redirects/list.coffee +34 -0
  28. data/app/assets/javascripts/cmsimple/panels/redirects/panel.coffee +39 -0
  29. data/app/assets/javascripts/cmsimple/panels/sitemap/index.coffee +2 -0
  30. data/app/assets/javascripts/cmsimple/panels/sitemap/panel.coffee +40 -0
  31. data/app/assets/javascripts/cmsimple/panels/sitemap/sortable.coffee +55 -0
  32. data/app/assets/javascripts/cmsimple/panels/sitemap/tree.coffee +61 -0
  33. data/app/assets/javascripts/cmsimple/panels/versions/index.coffee +2 -0
  34. data/app/assets/javascripts/cmsimple/panels/versions/list.coffee +51 -0
  35. data/app/assets/javascripts/cmsimple/panels/versions/panel.coffee +53 -0
  36. data/app/assets/javascripts/cmsimple/views/image_library/_item.jst.hamlc +24 -0
  37. data/app/assets/javascripts/cmsimple/views/image_library/list.jst.hamlc +8 -0
  38. data/app/assets/javascripts/cmsimple/views/redirects/_path.jst.hamlc +6 -0
  39. data/app/assets/javascripts/cmsimple/views/redirects/list.jst.hamlc +19 -0
  40. data/app/assets/javascripts/cmsimple/views/sitemap/_page.jst.hamlc +9 -0
  41. data/app/assets/javascripts/cmsimple/views/sitemap/tree.jst.hamlc +5 -0
  42. data/app/assets/javascripts/cmsimple/views/versions/_item.jst.hamlc +6 -0
  43. data/app/assets/javascripts/cmsimple/views/versions/list.jst.hamlc +4 -0
  44. data/app/assets/stylesheets/cmsimple.css +15 -0
  45. data/app/assets/stylesheets/cmsimple/forms.css +10 -0
  46. data/app/assets/stylesheets/cmsimple/panels.css +399 -0
  47. data/app/assets/stylesheets/cmsimple/toolbar-images.css +27 -0
  48. data/app/assets/stylesheets/mercury_overrides.css +2 -0
  49. data/app/controllers/cmsimple/front_controller.rb +38 -0
  50. data/app/controllers/cmsimple/images_controller.rb +28 -0
  51. data/app/controllers/cmsimple/mercury_controller.rb +7 -0
  52. data/app/controllers/cmsimple/pages_controller.rb +89 -0
  53. data/app/controllers/cmsimple/paths_controller.rb +23 -0
  54. data/app/controllers/cmsimple/snippets_controller.rb +23 -0
  55. data/app/controllers/cmsimple/versions_controller.rb +17 -0
  56. data/app/helpers/cmsimple/regions_helper.rb +38 -0
  57. data/app/models/cmsimple/image.rb +19 -0
  58. data/app/models/cmsimple/page.rb +203 -0
  59. data/app/models/cmsimple/path.rb +63 -0
  60. data/app/models/cmsimple/region.rb +43 -0
  61. data/app/models/cmsimple/snippet.rb +64 -0
  62. data/app/models/cmsimple/version.rb +18 -0
  63. data/app/uploaders/image_attachment_uploader.rb +53 -0
  64. data/app/views/cmsimple/images/_form.html.haml +13 -0
  65. data/app/views/cmsimple/images/new.html.haml +5 -0
  66. data/app/views/cmsimple/pages/_form.html.haml +49 -0
  67. data/app/views/cmsimple/pages/_form_extras.html.haml +2 -0
  68. data/app/views/cmsimple/pages/edit.html.haml +3 -0
  69. data/app/views/cmsimple/pages/new.html.haml +3 -0
  70. data/app/views/cmsimple/pages/publish.html.haml +12 -0
  71. data/app/views/cmsimple/snippets/index.html.haml +5 -0
  72. data/app/views/cmsimple/templates/default.html.haml +4 -0
  73. data/app/views/layouts/editor.html.haml +12 -0
  74. data/app/views/layouts/panel.html.haml +9 -0
  75. data/cmsimple.gemspec +44 -0
  76. data/config.ru +4 -0
  77. data/config/application.rb +1 -0
  78. data/config/cucumber.yml +8 -0
  79. data/config/environment.rb +2 -0
  80. data/config/routes.rb +34 -0
  81. data/db/migrate/20120201221410_create_cmsimple_pages.rb +10 -0
  82. data/db/migrate/20120222185901_add_title_parent_id_and_position_to_pages.rb +10 -0
  83. data/db/migrate/20120229185214_add_slug_to_pages.rb +7 -0
  84. data/db/migrate/20120323200439_add_is_root_to_page.rb +5 -0
  85. data/db/migrate/20120328174339_add_meta_info_to_cmsimple_pages.rb +9 -0
  86. data/db/migrate/20120329172857_create_cmsimple_path.rb +11 -0
  87. data/db/migrate/20120407024752_create_cmsimple_images.rb +13 -0
  88. data/db/migrate/20120410041105_add_timestamps_to_cmsimple_pages.rb +7 -0
  89. data/db/migrate/20120425211937_add_published_at_to_cmsimple_pages.rb +6 -0
  90. data/db/migrate/20120430175047_create_cmsimple_versions.rb +13 -0
  91. data/db/migrate/20120831233927_rename_path_to_current_uri_on_paths.rb +5 -0
  92. data/features/create.feature +18 -0
  93. data/features/delete.feature +12 -0
  94. data/features/edit.feature +54 -0
  95. data/features/publishing.feature +31 -0
  96. data/features/redirects.feature +27 -0
  97. data/features/step_definitions/mercury_steps.rb +440 -0
  98. data/features/step_definitions/page_steps.rb +269 -0
  99. data/features/step_definitions/web_steps.rb +254 -0
  100. data/features/support/env.rb +77 -0
  101. data/features/support/mercury_content.rb +25 -0
  102. data/features/support/mercury_selectors.rb +148 -0
  103. data/features/support/paths.rb +16 -0
  104. data/features/support/selectors.rb +26 -0
  105. data/features/support/utils.rb +18 -0
  106. data/features/versioning.feature +27 -0
  107. data/features/visit.feature +7 -0
  108. data/lib/cmsimple.rb +22 -0
  109. data/lib/cmsimple/configuration.rb +65 -0
  110. data/lib/cmsimple/exts/to_bool.rb +25 -0
  111. data/lib/cmsimple/page_responder.rb +46 -0
  112. data/lib/cmsimple/rails.rb +5 -0
  113. data/lib/cmsimple/regions_proxy.rb +32 -0
  114. data/lib/cmsimple/template_resolver.rb +14 -0
  115. data/lib/cmsimple/template_responder.rb +12 -0
  116. data/lib/cmsimple/version.rb +3 -0
  117. data/lib/generators/cmsimple/install/install_generator.rb +46 -0
  118. data/lib/generators/cmsimple/install/templates/default.html.erb +10 -0
  119. data/lib/generators/cmsimple/install/templates/default.html.haml +6 -0
  120. data/lib/generators/cmsimple/install/templates/initializer.rb +22 -0
  121. data/lib/generators/cmsimple/snippet/snippet_generator.rb +56 -0
  122. data/lib/generators/cmsimple/snippet/templates/cell.rb +18 -0
  123. data/lib/generators/cmsimple/snippet/templates/display.html.erb +14 -0
  124. data/lib/generators/cmsimple/snippet/templates/display.html.haml +11 -0
  125. data/lib/generators/cmsimple/snippet/templates/options.html.erb +18 -0
  126. data/lib/generators/cmsimple/snippet/templates/options.html.haml +12 -0
  127. data/script/app +2 -0
  128. data/script/migrate +2 -0
  129. data/script/rails +8 -0
  130. data/spec/fixtures/rails.png +0 -0
  131. data/spec/helpers/regions_helper_spec.rb +62 -0
  132. data/spec/javascripts/controllers/editor_spec.coffee +57 -0
  133. data/spec/javascripts/models/image_geometry_spec.coffee +64 -0
  134. data/spec/javascripts/models/image_spec.coffee +4 -0
  135. data/spec/javascripts/models/page_spec.coffee +121 -0
  136. data/spec/javascripts/models/path_spec.coffee +39 -0
  137. data/spec/javascripts/models/version_spec.coffee +31 -0
  138. data/spec/javascripts/panels/images/selection_spec.coffee +104 -0
  139. data/spec/javascripts/panels/sitemap/panel_spec.coffee +10 -0
  140. data/spec/javascripts/panels/sitemap/sortable_spec.coffee +63 -0
  141. data/spec/javascripts/panels/sitemap/tree_spec.coffee +62 -0
  142. data/spec/javascripts/spec_helper.coffee +25 -0
  143. data/spec/javascripts/support/stubs.coffee +16 -0
  144. data/spec/lib/page_responder_spec.rb +58 -0
  145. data/spec/lib/regions_proxy_spec.rb +47 -0
  146. data/spec/models/image_spec.rb +46 -0
  147. data/spec/models/page_spec.rb +237 -0
  148. data/spec/models/path_spec.rb +71 -0
  149. data/spec/models/region_spec.rb +14 -0
  150. data/spec/models/snippet_spec.rb +57 -0
  151. data/spec/models/version_spec.rb +7 -0
  152. data/spec/rails_app/.gitignore +33 -0
  153. data/spec/rails_app/Rakefile +7 -0
  154. data/spec/rails_app/app/assets/images/rails.png +0 -0
  155. data/spec/rails_app/app/assets/javascripts/application.js +9 -0
  156. data/spec/rails_app/app/assets/stylesheets/application.css +7 -0
  157. data/spec/rails_app/app/cells/example/display.html.haml +2 -0
  158. data/spec/rails_app/app/cells/example/options.html.haml +15 -0
  159. data/spec/rails_app/app/cells/example_cell.rb +19 -0
  160. data/spec/rails_app/app/cells/image_example/display.html.haml +4 -0
  161. data/spec/rails_app/app/cells/image_example/options.html.haml +15 -0
  162. data/spec/rails_app/app/cells/image_example_cell.rb +18 -0
  163. data/spec/rails_app/app/controllers/application_controller.rb +3 -0
  164. data/spec/rails_app/app/helpers/application_helper.rb +2 -0
  165. data/spec/rails_app/app/mailers/.gitkeep +0 -0
  166. data/spec/rails_app/app/models/.gitkeep +0 -0
  167. data/spec/rails_app/app/views/cmsimple/_snippet_list.html.haml +8 -0
  168. data/spec/rails_app/app/views/cmsimple/templates/default.html.haml +19 -0
  169. data/spec/rails_app/app/views/cmsimple/templates/test.html.haml +2 -0
  170. data/spec/rails_app/app/views/layouts/application.html.haml +13 -0
  171. data/spec/rails_app/config.ru +4 -0
  172. data/spec/rails_app/config/application.rb +65 -0
  173. data/spec/rails_app/config/boot.rb +9 -0
  174. data/spec/rails_app/config/database.example.yml +22 -0
  175. data/spec/rails_app/config/database.travis.yml +8 -0
  176. data/spec/rails_app/config/environment.rb +5 -0
  177. data/spec/rails_app/config/environments/development.rb +30 -0
  178. data/spec/rails_app/config/environments/test.rb +39 -0
  179. data/spec/rails_app/config/initializers/backtrace_silencers.rb +7 -0
  180. data/spec/rails_app/config/initializers/cells.rb +1 -0
  181. data/spec/rails_app/config/initializers/cmsimple.rb +3 -0
  182. data/spec/rails_app/config/initializers/inflections.rb +10 -0
  183. data/spec/rails_app/config/initializers/mime_types.rb +5 -0
  184. data/spec/rails_app/config/initializers/secret_token.rb +7 -0
  185. data/spec/rails_app/config/initializers/session_store.rb +8 -0
  186. data/spec/rails_app/config/initializers/teabag.rb +58 -0
  187. data/spec/rails_app/config/initializers/wrap_parameters.rb +14 -0
  188. data/spec/rails_app/config/locales/en.yml +5 -0
  189. data/spec/rails_app/config/routes.rb +61 -0
  190. data/spec/rails_app/db/seeds.rb +11 -0
  191. data/spec/rails_app/lib/assets/.gitkeep +0 -0
  192. data/spec/rails_app/lib/tasks/.gitkeep +0 -0
  193. data/spec/rails_app/public/404.html +26 -0
  194. data/spec/rails_app/public/422.html +26 -0
  195. data/spec/rails_app/public/500.html +26 -0
  196. data/spec/rails_app/public/robots.txt +5 -0
  197. data/spec/rails_app/script/rails +6 -0
  198. data/spec/rails_app/vendor/assets/stylesheets/.gitkeep +0 -0
  199. data/spec/rails_app/vendor/plugins/.gitkeep +0 -0
  200. data/spec/spec_helper.rb +31 -0
  201. data/spec/support/active_model_lint_example.rb +14 -0
  202. data/spec/teabag_env.rb +28 -0
  203. data/vendor/assets/images/sitemap/has-changes.png +0 -0
  204. data/vendor/assets/images/sitemap/published.png +0 -0
  205. data/vendor/assets/images/sitemap/unpublished.png +0 -0
  206. data/vendor/assets/images/toolbar/metadata.png +0 -0
  207. data/vendor/assets/images/toolbar/publish.png +0 -0
  208. data/vendor/assets/images/toolbar/redirect.png +0 -0
  209. data/vendor/assets/images/toolbar/sitemap.png +0 -0
  210. data/vendor/assets/images/toolbar/snippets.png +0 -0
  211. data/vendor/assets/images/toolbar/unpublished.png +0 -0
  212. data/vendor/assets/images/tree-line-horizontal-last.png +0 -0
  213. data/vendor/assets/images/tree-line-horizontal.png +0 -0
  214. data/vendor/assets/images/tree-line-vertical.png +0 -0
  215. data/vendor/assets/javascripts/jquery-serializeObject.js +107 -0
  216. data/vendor/assets/javascripts/jquery.to-json.js +74 -0
  217. data/vendor/assets/javascripts/jquery.ui.nestedSortable-1.3.4.js +391 -0
  218. data/vendor/assets/javascripts/moment-1.6.2.js +918 -0
  219. data/vendor/assets/javascripts/underscore-1.3.1.js +31 -0
  220. data/vendor/assets/stylesheets/jasmine-modified.css +216 -0
  221. metadata +686 -0
@@ -0,0 +1,31 @@
1
+ // Underscore.js 1.3.1
2
+ // (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
3
+ // Underscore is freely distributable under the MIT license.
4
+ // Portions of Underscore are inspired or borrowed from Prototype,
5
+ // Oliver Steele's Functional, and John Resig's Micro-Templating.
6
+ // For all details and documentation:
7
+ // http://documentcloud.github.com/underscore
8
+ (function(){function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return false;switch(e){case "[object String]":return a==String(c);case "[object Number]":return a!=+a?c!=+c:a==0?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source==
9
+ c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if(typeof a!="object"||typeof c!="object")return false;for(var f=d.length;f--;)if(d[f]==a)return true;d.push(a);var f=0,g=true;if(e=="[object Array]"){if(f=a.length,g=f==c.length)for(;f--;)if(!(g=f in a==f in c&&q(a[f],c[f],d)))break}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return false;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&q(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c,
10
+ h)&&!f--)break;g=!f}}d.pop();return g}var r=this,G=r._,n={},k=Array.prototype,o=Object.prototype,i=k.slice,H=k.unshift,l=o.toString,I=o.hasOwnProperty,w=k.forEach,x=k.map,y=k.reduce,z=k.reduceRight,A=k.filter,B=k.every,C=k.some,p=k.indexOf,D=k.lastIndexOf,o=Array.isArray,J=Object.keys,s=Function.prototype.bind,b=function(a){return new m(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else r._=b;b.VERSION="1.3.1";var j=b.each=
11
+ b.forEach=function(a,c,d){if(a!=null)if(w&&a.forEach===w)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e<f;e++){if(e in a&&c.call(d,a[e],e,a)===n)break}else for(e in a)if(b.has(a,e)&&c.call(d,a[e],e,a)===n)break};b.map=b.collect=function(a,c,b){var e=[];if(a==null)return e;if(x&&a.map===x)return a.map(c,b);j(a,function(a,g,h){e[e.length]=c.call(b,a,g,h)});if(a.length===+a.length)e.length=a.length;return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var f=arguments.length>2;a==
12
+ null&&(a=[]);if(y&&a.reduce===y)return e&&(c=b.bind(c,e)),f?a.reduce(c,d):a.reduce(c);j(a,function(a,b,i){f?d=c.call(e,d,a,b,i):(d=a,f=true)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(z&&a.reduceRight===z)return e&&(c=b.bind(c,e)),f?a.reduceRight(c,d):a.reduceRight(c);var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect=
13
+ function(a,c,b){var e;E(a,function(a,g,h){if(c.call(b,a,g,h))return e=a,true});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(A&&a.filter===A)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(B&&a.every===B)return a.every(c,b);j(a,function(a,g,h){if(!(e=
14
+ e&&c.call(b,a,g,h)))return n});return e};var E=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(C&&a.some===C)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return n});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;return p&&a.indexOf===p?a.indexOf(c)!=-1:b=E(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck=
15
+ function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b<e.computed&&(e={value:a,computed:b})});
16
+ return e.value};b.shuffle=function(a){var b=[],d;j(a,function(a,f){f==0?b[0]=a:(d=Math.floor(Math.random()*(f+1)),b[f]=b[d],b[d]=a)});return b};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,g){return{value:a,criteria:c.call(d,a,b,g)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a,
17
+ c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){return!a?[]:a.toArray?a.toArray():b.isArray(a)?i.call(a):b.isArguments(a)?i.call(a):b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?i.call(a,0,b):a[0]};b.initial=function(a,b,d){return i.call(a,0,a.length-(b==null||d?1:b))};b.last=function(a,b,d){return b!=null&&!d?i.call(a,Math.max(a.length-b,0)):a[a.length-1]};b.rest=
18
+ b.tail=function(a,b,d){return i.call(a,b==null||d?1:b)};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a,c){return b.reduce(a,function(a,e){if(b.isArray(e))return a.concat(c?e:b.flatten(e));a[a.length]=e;return a},[])};b.without=function(a){return b.difference(a,i.call(arguments,1))};b.uniq=b.unique=function(a,c,d){var d=d?b.map(a,d):a,e=[];b.reduce(d,function(d,g,h){if(0==h||(c===true?b.last(d)!=g:!b.include(d,g)))d[d.length]=g,e[e.length]=a[h];return d},[]);
19
+ return e};b.union=function(){return b.uniq(b.flatten(arguments,true))};b.intersection=b.intersect=function(a){var c=i.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1));return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c,
20
+ d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(p&&a.indexOf===p)return a.indexOf(c);for(d=0,e=a.length;d<e;d++)if(d in a&&a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(D&&a.lastIndexOf===D)return a.lastIndexOf(b);for(var d=a.length;d--;)if(d in a&&a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);for(var d=arguments[2]||1,e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=d;return g};
21
+ var F=function(){};b.bind=function(a,c){var d,e;if(a.bind===s&&s)return s.apply(a,i.call(arguments,1));if(!b.isFunction(a))throw new TypeError;e=i.call(arguments,2);return d=function(){if(!(this instanceof d))return a.apply(c,e.concat(i.call(arguments)));F.prototype=a.prototype;var b=new F,g=a.apply(b,e.concat(i.call(arguments)));return Object(g)===g?g:b}};b.bindAll=function(a){var c=i.call(arguments,1);c.length==0&&(c=b.functions(a));j(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a,
22
+ c){var d={};c||(c=b.identity);return function(){var e=c.apply(this,arguments);return b.has(d,e)?d[e]:d[e]=a.apply(this,arguments)}};b.delay=function(a,b){var d=i.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(i.call(arguments,1)))};b.throttle=function(a,c){var d,e,f,g,h,i=b.debounce(function(){h=g=false},c);return function(){d=this;e=arguments;var b;f||(f=setTimeout(function(){f=null;h&&a.apply(d,e);i()},c));g?h=true:
23
+ a.apply(d,e);i();g=true}};b.debounce=function(a,b){var d;return function(){var e=this,f=arguments;clearTimeout(d);d=setTimeout(function(){d=null;a.apply(e,f)},b)}};b.once=function(a){var b=false,d;return function(){if(b)return d;b=true;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(i.call(arguments,0));return b.apply(this,d)}};b.compose=function(){var a=arguments;return function(){for(var b=arguments,d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}};
24
+ b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=J||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.defaults=function(a){j(i.call(arguments,
25
+ 1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return q(a,b,[])};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=o||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)};
26
+ b.isArguments=function(a){return l.call(a)=="[object Arguments]"};if(!b.isArguments(arguments))b.isArguments=function(a){return!(!a||!b.has(a,"callee"))};b.isFunction=function(a){return l.call(a)=="[object Function]"};b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"};
27
+ b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,b){return I.call(a,b)};b.noConflict=function(){r._=G;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.escape=function(a){return(""+a).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")};b.mixin=function(a){j(b.functions(a),
28
+ function(c){K(c,b[c]=a[c])})};var L=0;b.uniqueId=function(a){var b=L++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var t=/.^/,u=function(a){return a.replace(/\\\\/g,"\\").replace(/\\'/g,"'")};b.template=function(a,c){var d=b.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.escape||t,function(a,b){return"',_.escape("+
29
+ u(b)+"),'"}).replace(d.interpolate||t,function(a,b){return"',"+u(b)+",'"}).replace(d.evaluate||t,function(a,b){return"');"+u(b).replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return c?e(c,b):function(a){return e.call(this,a,b)}};b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var v=function(a,c){return c?b(a).chain():a},K=function(a,c){m.prototype[a]=
30
+ function(){var a=i.call(arguments);H.call(a,this._wrapped);return v(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return v(d,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return v(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain=
31
+ true;return this};m.prototype.value=function(){return this._wrapped}}).call(this);
@@ -0,0 +1,216 @@
1
+
2
+
3
+ body {
4
+ color: #333;
5
+ font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif;
6
+ }
7
+
8
+ .jasmine_reporter a,
9
+ .jasmine_reporter a:visited {
10
+ color: #333;
11
+ text-decoration: none;
12
+ text-shadow: 0 1px 0 rgba(255,255,255,0.75);
13
+ }
14
+
15
+ .jasmine_reporter a:hover,
16
+ .jasmine_reporter a:active {
17
+ color: #268bd2;
18
+ }
19
+
20
+ .run_spec {
21
+ float: right;
22
+ font-size: 0.8em;
23
+ text-align: right;
24
+ }
25
+
26
+ .jasmine_reporter {
27
+ margin: 0 1%;
28
+ }
29
+
30
+ .banner {
31
+ background-color: #ccc;
32
+ border: 1px solid #666;
33
+ border-top-left-radius: 0.4em;
34
+ border-top-right-radius: 0.4em;
35
+ padding: 1%;
36
+ text-shadow: 0 1px 0 rgba(255,255,255,0.75);
37
+ }
38
+
39
+ .logo {
40
+ float: left;
41
+ font-size: 1em;
42
+ }
43
+
44
+ .logo .title {
45
+ font-weight: bold;
46
+ }
47
+
48
+ .logo .version {
49
+ font-size: 0.6em;
50
+ padding-left: 1em;
51
+ }
52
+
53
+ .options {
54
+ font-size: 0.8em;
55
+ font-weight: bold;
56
+ text-align: right;
57
+ }
58
+
59
+ .options label {
60
+ font-weight: normal;
61
+ }
62
+
63
+ .runner.running {
64
+ background-color: #ffc40d;
65
+ }
66
+
67
+ .suite {
68
+ border: 1px solid #666;
69
+ border-radius: 0.4em;
70
+ margin: 0.5em 0;
71
+ padding: 0.75% 1%;
72
+ }
73
+
74
+ .suite .suite {
75
+ margin: 0.2em 0;
76
+ padding: 0.25% 1%;
77
+ }
78
+
79
+ .suite.passed {
80
+ background-color: #dfd;
81
+ border-color: #46a546;
82
+ }
83
+
84
+ .suite.failed {
85
+ background-color: #fdd;
86
+ border-color: #b22222;
87
+ }
88
+
89
+ .runner ~ .suite.passed {
90
+ background-color: #f2fff2;
91
+ }
92
+
93
+ .runner ~ .suite.failed {
94
+ background-color: #fff2f2;
95
+ }
96
+
97
+ .spec {
98
+ border-radius: 0.4em;
99
+ margin: 0.2em 0;
100
+ padding: 0.5% 1%;
101
+ clear: both;
102
+ }
103
+
104
+ .spec.failed, .spec.passed, .spec.skipped {
105
+ border: 1px solid #666;
106
+ }
107
+
108
+ .spec.failed {
109
+ background-color: #fbb;
110
+ border-color: #b22222;
111
+ border-style: dashed;
112
+ }
113
+
114
+ .spec.passed {
115
+ background-color: #bfb;
116
+ border-color: #46a546;
117
+ }
118
+
119
+ .spec.skipped {
120
+ background-color: #bbb;
121
+ }
122
+
123
+ .runner .description,
124
+ .suite > .description {
125
+ font-weight: bold;
126
+ }
127
+
128
+ .suite > .suite > .description {
129
+ font-family: "Bitstream Vera Sans Mono", "Menslo LG M", "Menlo", "Monaco", monospace;
130
+ font-size: 85%;
131
+ font-weight: normal;
132
+ display: block;
133
+ margin: 0.5em 0;
134
+ }
135
+
136
+ .spec > .description {
137
+ font-size: 0.8em;
138
+ }
139
+
140
+ .passed {
141
+ background-color: #cfc;
142
+ display: none;
143
+ }
144
+
145
+ .failed {
146
+ background-color: #fbb;
147
+ }
148
+
149
+ .skipped {
150
+ color: #777;
151
+ background-color: #eee;
152
+ display: none;
153
+ }
154
+
155
+ .messages {
156
+ padding: 1%
157
+ }
158
+
159
+ .resultMessage {
160
+ background: #eef;
161
+ border: 1px solid #b22222;
162
+ border-top-left-radius: 0.4em;
163
+ border-top-right-radius: 0.4em;
164
+ border-bottom: 0;
165
+ padding: 1%;
166
+ }
167
+
168
+ .stackTrace {
169
+ background: #eef;
170
+ border: 1px solid #b22222;
171
+ border-top: 1px dotted #333;
172
+ border-bottom-left-radius: 0.4em;
173
+ border-bottom-right-radius: 0.4em;
174
+ font-family: "Bitstream Vera Sans Mono", "Menslo LG M", "Menlo", "Monaco", monospace;
175
+ font-size: 75%;
176
+ max-height: 10em;
177
+ overflow: auto;
178
+ padding: 1%;
179
+ white-space: pre;
180
+ }
181
+
182
+ .resultMessage span.result {
183
+ display: block;
184
+ line-height: 2;
185
+ color: black;
186
+ }
187
+
188
+ .resultMessage .mismatch {
189
+ color: black;
190
+ }
191
+
192
+ .finished-at {
193
+ padding-left: 1em;
194
+ font-size: .6em;
195
+ }
196
+
197
+ .show-passed .passed,
198
+ .show-skipped .skipped {
199
+ display: block;
200
+ }
201
+
202
+
203
+ #jasmine_content {
204
+ position:fixed;
205
+ right: 100%;
206
+ }
207
+
208
+ .runner {
209
+ border: 1px solid #666;
210
+ border-bottom-left-radius: 0.4em;
211
+ border-bottom-right-radius: 0.4em;
212
+ border-top: 0;
213
+ display: block;
214
+ margin: 0 0 0.5em 0;
215
+ padding: 0.75% 1%;
216
+ }
metadata ADDED
@@ -0,0 +1,686 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cmsimple
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Gabe Varela
9
+ - Jay Zeschin
10
+ - Matt Kitt
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2013-01-23 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rails
18
+ requirement: !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: 3.2.1
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ~>
30
+ - !ruby/object:Gem::Version
31
+ version: 3.2.1
32
+ - !ruby/object:Gem::Dependency
33
+ name: jquery-rails
34
+ requirement: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ~>
38
+ - !ruby/object:Gem::Version
39
+ version: 2.1.3
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 2.1.3
48
+ - !ruby/object:Gem::Dependency
49
+ name: mercury-rails
50
+ requirement: !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ - !ruby/object:Gem::Dependency
65
+ name: cells
66
+ requirement: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ~>
70
+ - !ruby/object:Gem::Version
71
+ version: '3.8'
72
+ type: :runtime
73
+ prerelease: false
74
+ version_requirements: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ~>
78
+ - !ruby/object:Gem::Version
79
+ version: '3.8'
80
+ - !ruby/object:Gem::Dependency
81
+ name: carrierwave
82
+ requirement: !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: 0.5.8
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ~>
94
+ - !ruby/object:Gem::Version
95
+ version: 0.5.8
96
+ - !ruby/object:Gem::Dependency
97
+ name: spine-rails
98
+ requirement: !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: '0.1'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ~>
110
+ - !ruby/object:Gem::Version
111
+ version: '0.1'
112
+ - !ruby/object:Gem::Dependency
113
+ name: coffee-script-source
114
+ requirement: !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ~>
118
+ - !ruby/object:Gem::Version
119
+ version: 1.2.0
120
+ type: :runtime
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ none: false
124
+ requirements:
125
+ - - ~>
126
+ - !ruby/object:Gem::Version
127
+ version: 1.2.0
128
+ - !ruby/object:Gem::Dependency
129
+ name: haml
130
+ requirement: !ruby/object:Gem::Requirement
131
+ none: false
132
+ requirements:
133
+ - - ~>
134
+ - !ruby/object:Gem::Version
135
+ version: 3.1.6
136
+ type: :runtime
137
+ prerelease: false
138
+ version_requirements: !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - ~>
142
+ - !ruby/object:Gem::Version
143
+ version: 3.1.6
144
+ - !ruby/object:Gem::Dependency
145
+ name: haml-rails
146
+ requirement: !ruby/object:Gem::Requirement
147
+ none: false
148
+ requirements:
149
+ - - '='
150
+ - !ruby/object:Gem::Version
151
+ version: 0.3.4
152
+ type: :runtime
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ none: false
156
+ requirements:
157
+ - - '='
158
+ - !ruby/object:Gem::Version
159
+ version: 0.3.4
160
+ - !ruby/object:Gem::Dependency
161
+ name: haml_coffee_assets
162
+ requirement: !ruby/object:Gem::Requirement
163
+ none: false
164
+ requirements:
165
+ - - ~>
166
+ - !ruby/object:Gem::Version
167
+ version: 0.9.2
168
+ type: :runtime
169
+ prerelease: false
170
+ version_requirements: !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - ~>
174
+ - !ruby/object:Gem::Version
175
+ version: 0.9.2
176
+ - !ruby/object:Gem::Dependency
177
+ name: dimensions
178
+ requirement: !ruby/object:Gem::Requirement
179
+ none: false
180
+ requirements:
181
+ - - ! '>='
182
+ - !ruby/object:Gem::Version
183
+ version: '0'
184
+ type: :runtime
185
+ prerelease: false
186
+ version_requirements: !ruby/object:Gem::Requirement
187
+ none: false
188
+ requirements:
189
+ - - ! '>='
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ - !ruby/object:Gem::Dependency
193
+ name: mini_magick
194
+ requirement: !ruby/object:Gem::Requirement
195
+ none: false
196
+ requirements:
197
+ - - ! '>='
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ type: :runtime
201
+ prerelease: false
202
+ version_requirements: !ruby/object:Gem::Requirement
203
+ none: false
204
+ requirements:
205
+ - - ! '>='
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ - !ruby/object:Gem::Dependency
209
+ name: rspec-rails
210
+ requirement: !ruby/object:Gem::Requirement
211
+ none: false
212
+ requirements:
213
+ - - ~>
214
+ - !ruby/object:Gem::Version
215
+ version: 2.12.2
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ none: false
220
+ requirements:
221
+ - - ~>
222
+ - !ruby/object:Gem::Version
223
+ version: 2.12.2
224
+ - !ruby/object:Gem::Dependency
225
+ name: cucumber-rails
226
+ requirement: !ruby/object:Gem::Requirement
227
+ none: false
228
+ requirements:
229
+ - - ! '>='
230
+ - !ruby/object:Gem::Version
231
+ version: '0'
232
+ type: :development
233
+ prerelease: false
234
+ version_requirements: !ruby/object:Gem::Requirement
235
+ none: false
236
+ requirements:
237
+ - - ! '>='
238
+ - !ruby/object:Gem::Version
239
+ version: '0'
240
+ - !ruby/object:Gem::Dependency
241
+ name: capybara
242
+ requirement: !ruby/object:Gem::Requirement
243
+ none: false
244
+ requirements:
245
+ - - ~>
246
+ - !ruby/object:Gem::Version
247
+ version: 1.1.3
248
+ type: :development
249
+ prerelease: false
250
+ version_requirements: !ruby/object:Gem::Requirement
251
+ none: false
252
+ requirements:
253
+ - - ~>
254
+ - !ruby/object:Gem::Version
255
+ version: 1.1.3
256
+ - !ruby/object:Gem::Dependency
257
+ name: database_cleaner
258
+ requirement: !ruby/object:Gem::Requirement
259
+ none: false
260
+ requirements:
261
+ - - ! '>='
262
+ - !ruby/object:Gem::Version
263
+ version: '0'
264
+ type: :development
265
+ prerelease: false
266
+ version_requirements: !ruby/object:Gem::Requirement
267
+ none: false
268
+ requirements:
269
+ - - ! '>='
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ - !ruby/object:Gem::Dependency
273
+ name: shoulda-matchers
274
+ requirement: !ruby/object:Gem::Requirement
275
+ none: false
276
+ requirements:
277
+ - - ! '>='
278
+ - !ruby/object:Gem::Version
279
+ version: '0'
280
+ type: :development
281
+ prerelease: false
282
+ version_requirements: !ruby/object:Gem::Requirement
283
+ none: false
284
+ requirements:
285
+ - - ! '>='
286
+ - !ruby/object:Gem::Version
287
+ version: '0'
288
+ - !ruby/object:Gem::Dependency
289
+ name: timecop
290
+ requirement: !ruby/object:Gem::Requirement
291
+ none: false
292
+ requirements:
293
+ - - ! '>='
294
+ - !ruby/object:Gem::Version
295
+ version: '0'
296
+ type: :development
297
+ prerelease: false
298
+ version_requirements: !ruby/object:Gem::Requirement
299
+ none: false
300
+ requirements:
301
+ - - ! '>='
302
+ - !ruby/object:Gem::Version
303
+ version: '0'
304
+ - !ruby/object:Gem::Dependency
305
+ name: teabag
306
+ requirement: !ruby/object:Gem::Requirement
307
+ none: false
308
+ requirements:
309
+ - - ! '>='
310
+ - !ruby/object:Gem::Version
311
+ version: '0'
312
+ type: :development
313
+ prerelease: false
314
+ version_requirements: !ruby/object:Gem::Requirement
315
+ none: false
316
+ requirements:
317
+ - - ! '>='
318
+ - !ruby/object:Gem::Version
319
+ version: '0'
320
+ - !ruby/object:Gem::Dependency
321
+ name: pry
322
+ requirement: !ruby/object:Gem::Requirement
323
+ none: false
324
+ requirements:
325
+ - - ! '>='
326
+ - !ruby/object:Gem::Version
327
+ version: '0'
328
+ type: :development
329
+ prerelease: false
330
+ version_requirements: !ruby/object:Gem::Requirement
331
+ none: false
332
+ requirements:
333
+ - - ! '>='
334
+ - !ruby/object:Gem::Version
335
+ version: '0'
336
+ description: A simple CMS based on the Mercury editor
337
+ email:
338
+ - info@modeset.com
339
+ executables: []
340
+ extensions: []
341
+ extra_rdoc_files: []
342
+ files:
343
+ - .gitignore
344
+ - .rspec
345
+ - .travis.yml
346
+ - Gemfile
347
+ - Gemfile.ci
348
+ - LICENSE
349
+ - README.md
350
+ - Rakefile
351
+ - app/assets/javascripts/cmsimple.js
352
+ - app/assets/javascripts/cmsimple/controllers/editor.coffee
353
+ - app/assets/javascripts/cmsimple/lib/namespaces.coffee
354
+ - app/assets/javascripts/cmsimple/lib/support.coffee
355
+ - app/assets/javascripts/cmsimple/mercury/config.js
356
+ - app/assets/javascripts/cmsimple/mercury/handlers.coffee
357
+ - app/assets/javascripts/cmsimple/models/image.coffee
358
+ - app/assets/javascripts/cmsimple/models/page.coffee
359
+ - app/assets/javascripts/cmsimple/models/path.coffee
360
+ - app/assets/javascripts/cmsimple/models/version.coffee
361
+ - app/assets/javascripts/cmsimple/panels/images/index.coffee
362
+ - app/assets/javascripts/cmsimple/panels/images/list.coffee
363
+ - app/assets/javascripts/cmsimple/panels/images/panel.coffee
364
+ - app/assets/javascripts/cmsimple/panels/images/selection.coffee
365
+ - app/assets/javascripts/cmsimple/panels/page_metadata.coffee
366
+ - app/assets/javascripts/cmsimple/panels/publish.coffee
367
+ - app/assets/javascripts/cmsimple/panels/redirects/form.coffee
368
+ - app/assets/javascripts/cmsimple/panels/redirects/index.coffee
369
+ - app/assets/javascripts/cmsimple/panels/redirects/list.coffee
370
+ - app/assets/javascripts/cmsimple/panels/redirects/panel.coffee
371
+ - app/assets/javascripts/cmsimple/panels/sitemap/index.coffee
372
+ - app/assets/javascripts/cmsimple/panels/sitemap/panel.coffee
373
+ - app/assets/javascripts/cmsimple/panels/sitemap/sortable.coffee
374
+ - app/assets/javascripts/cmsimple/panels/sitemap/tree.coffee
375
+ - app/assets/javascripts/cmsimple/panels/versions/index.coffee
376
+ - app/assets/javascripts/cmsimple/panels/versions/list.coffee
377
+ - app/assets/javascripts/cmsimple/panels/versions/panel.coffee
378
+ - app/assets/javascripts/cmsimple/views/image_library/_item.jst.hamlc
379
+ - app/assets/javascripts/cmsimple/views/image_library/list.jst.hamlc
380
+ - app/assets/javascripts/cmsimple/views/redirects/_path.jst.hamlc
381
+ - app/assets/javascripts/cmsimple/views/redirects/list.jst.hamlc
382
+ - app/assets/javascripts/cmsimple/views/sitemap/_page.jst.hamlc
383
+ - app/assets/javascripts/cmsimple/views/sitemap/tree.jst.hamlc
384
+ - app/assets/javascripts/cmsimple/views/versions/_item.jst.hamlc
385
+ - app/assets/javascripts/cmsimple/views/versions/list.jst.hamlc
386
+ - app/assets/stylesheets/cmsimple.css
387
+ - app/assets/stylesheets/cmsimple/forms.css
388
+ - app/assets/stylesheets/cmsimple/panels.css
389
+ - app/assets/stylesheets/cmsimple/toolbar-images.css
390
+ - app/assets/stylesheets/mercury_overrides.css
391
+ - app/controllers/cmsimple/front_controller.rb
392
+ - app/controllers/cmsimple/images_controller.rb
393
+ - app/controllers/cmsimple/mercury_controller.rb
394
+ - app/controllers/cmsimple/pages_controller.rb
395
+ - app/controllers/cmsimple/paths_controller.rb
396
+ - app/controllers/cmsimple/snippets_controller.rb
397
+ - app/controllers/cmsimple/versions_controller.rb
398
+ - app/helpers/cmsimple/regions_helper.rb
399
+ - app/models/cmsimple/image.rb
400
+ - app/models/cmsimple/page.rb
401
+ - app/models/cmsimple/path.rb
402
+ - app/models/cmsimple/region.rb
403
+ - app/models/cmsimple/snippet.rb
404
+ - app/models/cmsimple/version.rb
405
+ - app/uploaders/image_attachment_uploader.rb
406
+ - app/views/cmsimple/images/_form.html.haml
407
+ - app/views/cmsimple/images/new.html.haml
408
+ - app/views/cmsimple/pages/_form.html.haml
409
+ - app/views/cmsimple/pages/_form_extras.html.haml
410
+ - app/views/cmsimple/pages/edit.html.haml
411
+ - app/views/cmsimple/pages/new.html.haml
412
+ - app/views/cmsimple/pages/publish.html.haml
413
+ - app/views/cmsimple/snippets/index.html.haml
414
+ - app/views/cmsimple/templates/default.html.haml
415
+ - app/views/layouts/editor.html.haml
416
+ - app/views/layouts/panel.html.haml
417
+ - cmsimple.gemspec
418
+ - config.ru
419
+ - config/application.rb
420
+ - config/cucumber.yml
421
+ - config/environment.rb
422
+ - config/routes.rb
423
+ - db/migrate/20120201221410_create_cmsimple_pages.rb
424
+ - db/migrate/20120222185901_add_title_parent_id_and_position_to_pages.rb
425
+ - db/migrate/20120229185214_add_slug_to_pages.rb
426
+ - db/migrate/20120323200439_add_is_root_to_page.rb
427
+ - db/migrate/20120328174339_add_meta_info_to_cmsimple_pages.rb
428
+ - db/migrate/20120329172857_create_cmsimple_path.rb
429
+ - db/migrate/20120407024752_create_cmsimple_images.rb
430
+ - db/migrate/20120410041105_add_timestamps_to_cmsimple_pages.rb
431
+ - db/migrate/20120425211937_add_published_at_to_cmsimple_pages.rb
432
+ - db/migrate/20120430175047_create_cmsimple_versions.rb
433
+ - db/migrate/20120831233927_rename_path_to_current_uri_on_paths.rb
434
+ - features/create.feature
435
+ - features/delete.feature
436
+ - features/edit.feature
437
+ - features/publishing.feature
438
+ - features/redirects.feature
439
+ - features/step_definitions/mercury_steps.rb
440
+ - features/step_definitions/page_steps.rb
441
+ - features/step_definitions/web_steps.rb
442
+ - features/support/env.rb
443
+ - features/support/mercury_content.rb
444
+ - features/support/mercury_selectors.rb
445
+ - features/support/paths.rb
446
+ - features/support/selectors.rb
447
+ - features/support/utils.rb
448
+ - features/versioning.feature
449
+ - features/visit.feature
450
+ - lib/cmsimple.rb
451
+ - lib/cmsimple/configuration.rb
452
+ - lib/cmsimple/exts/to_bool.rb
453
+ - lib/cmsimple/page_responder.rb
454
+ - lib/cmsimple/rails.rb
455
+ - lib/cmsimple/regions_proxy.rb
456
+ - lib/cmsimple/template_resolver.rb
457
+ - lib/cmsimple/template_responder.rb
458
+ - lib/cmsimple/version.rb
459
+ - lib/generators/cmsimple/install/install_generator.rb
460
+ - lib/generators/cmsimple/install/templates/default.html.erb
461
+ - lib/generators/cmsimple/install/templates/default.html.haml
462
+ - lib/generators/cmsimple/install/templates/initializer.rb
463
+ - lib/generators/cmsimple/snippet/snippet_generator.rb
464
+ - lib/generators/cmsimple/snippet/templates/cell.rb
465
+ - lib/generators/cmsimple/snippet/templates/display.html.erb
466
+ - lib/generators/cmsimple/snippet/templates/display.html.haml
467
+ - lib/generators/cmsimple/snippet/templates/options.html.erb
468
+ - lib/generators/cmsimple/snippet/templates/options.html.haml
469
+ - script/app
470
+ - script/migrate
471
+ - script/rails
472
+ - spec/fixtures/rails.png
473
+ - spec/helpers/regions_helper_spec.rb
474
+ - spec/javascripts/controllers/editor_spec.coffee
475
+ - spec/javascripts/models/image_geometry_spec.coffee
476
+ - spec/javascripts/models/image_spec.coffee
477
+ - spec/javascripts/models/page_spec.coffee
478
+ - spec/javascripts/models/path_spec.coffee
479
+ - spec/javascripts/models/version_spec.coffee
480
+ - spec/javascripts/panels/images/selection_spec.coffee
481
+ - spec/javascripts/panels/sitemap/panel_spec.coffee
482
+ - spec/javascripts/panels/sitemap/sortable_spec.coffee
483
+ - spec/javascripts/panels/sitemap/tree_spec.coffee
484
+ - spec/javascripts/spec_helper.coffee
485
+ - spec/javascripts/support/stubs.coffee
486
+ - spec/lib/page_responder_spec.rb
487
+ - spec/lib/regions_proxy_spec.rb
488
+ - spec/models/image_spec.rb
489
+ - spec/models/page_spec.rb
490
+ - spec/models/path_spec.rb
491
+ - spec/models/region_spec.rb
492
+ - spec/models/snippet_spec.rb
493
+ - spec/models/version_spec.rb
494
+ - spec/rails_app/.gitignore
495
+ - spec/rails_app/Rakefile
496
+ - spec/rails_app/app/assets/images/rails.png
497
+ - spec/rails_app/app/assets/javascripts/application.js
498
+ - spec/rails_app/app/assets/stylesheets/application.css
499
+ - spec/rails_app/app/cells/example/display.html.haml
500
+ - spec/rails_app/app/cells/example/options.html.haml
501
+ - spec/rails_app/app/cells/example_cell.rb
502
+ - spec/rails_app/app/cells/image_example/display.html.haml
503
+ - spec/rails_app/app/cells/image_example/options.html.haml
504
+ - spec/rails_app/app/cells/image_example_cell.rb
505
+ - spec/rails_app/app/controllers/application_controller.rb
506
+ - spec/rails_app/app/helpers/application_helper.rb
507
+ - spec/rails_app/app/mailers/.gitkeep
508
+ - spec/rails_app/app/models/.gitkeep
509
+ - spec/rails_app/app/views/cmsimple/_snippet_list.html.haml
510
+ - spec/rails_app/app/views/cmsimple/templates/default.html.haml
511
+ - spec/rails_app/app/views/cmsimple/templates/test.html.haml
512
+ - spec/rails_app/app/views/layouts/application.html.haml
513
+ - spec/rails_app/config.ru
514
+ - spec/rails_app/config/application.rb
515
+ - spec/rails_app/config/boot.rb
516
+ - spec/rails_app/config/database.example.yml
517
+ - spec/rails_app/config/database.travis.yml
518
+ - spec/rails_app/config/environment.rb
519
+ - spec/rails_app/config/environments/development.rb
520
+ - spec/rails_app/config/environments/test.rb
521
+ - spec/rails_app/config/initializers/backtrace_silencers.rb
522
+ - spec/rails_app/config/initializers/cells.rb
523
+ - spec/rails_app/config/initializers/cmsimple.rb
524
+ - spec/rails_app/config/initializers/inflections.rb
525
+ - spec/rails_app/config/initializers/mime_types.rb
526
+ - spec/rails_app/config/initializers/secret_token.rb
527
+ - spec/rails_app/config/initializers/session_store.rb
528
+ - spec/rails_app/config/initializers/teabag.rb
529
+ - spec/rails_app/config/initializers/wrap_parameters.rb
530
+ - spec/rails_app/config/locales/en.yml
531
+ - spec/rails_app/config/routes.rb
532
+ - spec/rails_app/db/seeds.rb
533
+ - spec/rails_app/lib/assets/.gitkeep
534
+ - spec/rails_app/lib/tasks/.gitkeep
535
+ - spec/rails_app/log/.gitkeep
536
+ - spec/rails_app/public/404.html
537
+ - spec/rails_app/public/422.html
538
+ - spec/rails_app/public/500.html
539
+ - spec/rails_app/public/robots.txt
540
+ - spec/rails_app/script/rails
541
+ - spec/rails_app/tmp/.gitkeep
542
+ - spec/rails_app/vendor/assets/stylesheets/.gitkeep
543
+ - spec/rails_app/vendor/plugins/.gitkeep
544
+ - spec/spec_helper.rb
545
+ - spec/support/active_model_lint_example.rb
546
+ - spec/teabag_env.rb
547
+ - vendor/assets/images/sitemap/has-changes.png
548
+ - vendor/assets/images/sitemap/published.png
549
+ - vendor/assets/images/sitemap/unpublished.png
550
+ - vendor/assets/images/toolbar/metadata.png
551
+ - vendor/assets/images/toolbar/publish.png
552
+ - vendor/assets/images/toolbar/redirect.png
553
+ - vendor/assets/images/toolbar/sitemap.png
554
+ - vendor/assets/images/toolbar/snippets.png
555
+ - vendor/assets/images/toolbar/unpublished.png
556
+ - vendor/assets/images/tree-line-horizontal-last.png
557
+ - vendor/assets/images/tree-line-horizontal.png
558
+ - vendor/assets/images/tree-line-vertical.png
559
+ - vendor/assets/javascripts/jquery-serializeObject.js
560
+ - vendor/assets/javascripts/jquery.to-json.js
561
+ - vendor/assets/javascripts/jquery.ui.nestedSortable-1.3.4.js
562
+ - vendor/assets/javascripts/moment-1.6.2.js
563
+ - vendor/assets/javascripts/underscore-1.3.1.js
564
+ - vendor/assets/stylesheets/jasmine-modified.css
565
+ homepage: ''
566
+ licenses: []
567
+ post_install_message:
568
+ rdoc_options: []
569
+ require_paths:
570
+ - lib
571
+ required_ruby_version: !ruby/object:Gem::Requirement
572
+ none: false
573
+ requirements:
574
+ - - ! '>='
575
+ - !ruby/object:Gem::Version
576
+ version: '0'
577
+ segments:
578
+ - 0
579
+ hash: -2539754313290137300
580
+ required_rubygems_version: !ruby/object:Gem::Requirement
581
+ none: false
582
+ requirements:
583
+ - - ! '>='
584
+ - !ruby/object:Gem::Version
585
+ version: '0'
586
+ segments:
587
+ - 0
588
+ hash: -2539754313290137300
589
+ requirements: []
590
+ rubyforge_project:
591
+ rubygems_version: 1.8.23
592
+ signing_key:
593
+ specification_version: 3
594
+ summary: A simple CMS based on the Mercury editor
595
+ test_files:
596
+ - features/create.feature
597
+ - features/delete.feature
598
+ - features/edit.feature
599
+ - features/publishing.feature
600
+ - features/redirects.feature
601
+ - features/step_definitions/mercury_steps.rb
602
+ - features/step_definitions/page_steps.rb
603
+ - features/step_definitions/web_steps.rb
604
+ - features/support/env.rb
605
+ - features/support/mercury_content.rb
606
+ - features/support/mercury_selectors.rb
607
+ - features/support/paths.rb
608
+ - features/support/selectors.rb
609
+ - features/support/utils.rb
610
+ - features/versioning.feature
611
+ - features/visit.feature
612
+ - spec/fixtures/rails.png
613
+ - spec/helpers/regions_helper_spec.rb
614
+ - spec/javascripts/controllers/editor_spec.coffee
615
+ - spec/javascripts/models/image_geometry_spec.coffee
616
+ - spec/javascripts/models/image_spec.coffee
617
+ - spec/javascripts/models/page_spec.coffee
618
+ - spec/javascripts/models/path_spec.coffee
619
+ - spec/javascripts/models/version_spec.coffee
620
+ - spec/javascripts/panels/images/selection_spec.coffee
621
+ - spec/javascripts/panels/sitemap/panel_spec.coffee
622
+ - spec/javascripts/panels/sitemap/sortable_spec.coffee
623
+ - spec/javascripts/panels/sitemap/tree_spec.coffee
624
+ - spec/javascripts/spec_helper.coffee
625
+ - spec/javascripts/support/stubs.coffee
626
+ - spec/lib/page_responder_spec.rb
627
+ - spec/lib/regions_proxy_spec.rb
628
+ - spec/models/image_spec.rb
629
+ - spec/models/page_spec.rb
630
+ - spec/models/path_spec.rb
631
+ - spec/models/region_spec.rb
632
+ - spec/models/snippet_spec.rb
633
+ - spec/models/version_spec.rb
634
+ - spec/rails_app/.gitignore
635
+ - spec/rails_app/Rakefile
636
+ - spec/rails_app/app/assets/images/rails.png
637
+ - spec/rails_app/app/assets/javascripts/application.js
638
+ - spec/rails_app/app/assets/stylesheets/application.css
639
+ - spec/rails_app/app/cells/example/display.html.haml
640
+ - spec/rails_app/app/cells/example/options.html.haml
641
+ - spec/rails_app/app/cells/example_cell.rb
642
+ - spec/rails_app/app/cells/image_example/display.html.haml
643
+ - spec/rails_app/app/cells/image_example/options.html.haml
644
+ - spec/rails_app/app/cells/image_example_cell.rb
645
+ - spec/rails_app/app/controllers/application_controller.rb
646
+ - spec/rails_app/app/helpers/application_helper.rb
647
+ - spec/rails_app/app/mailers/.gitkeep
648
+ - spec/rails_app/app/models/.gitkeep
649
+ - spec/rails_app/app/views/cmsimple/_snippet_list.html.haml
650
+ - spec/rails_app/app/views/cmsimple/templates/default.html.haml
651
+ - spec/rails_app/app/views/cmsimple/templates/test.html.haml
652
+ - spec/rails_app/app/views/layouts/application.html.haml
653
+ - spec/rails_app/config.ru
654
+ - spec/rails_app/config/application.rb
655
+ - spec/rails_app/config/boot.rb
656
+ - spec/rails_app/config/database.example.yml
657
+ - spec/rails_app/config/database.travis.yml
658
+ - spec/rails_app/config/environment.rb
659
+ - spec/rails_app/config/environments/development.rb
660
+ - spec/rails_app/config/environments/test.rb
661
+ - spec/rails_app/config/initializers/backtrace_silencers.rb
662
+ - spec/rails_app/config/initializers/cells.rb
663
+ - spec/rails_app/config/initializers/cmsimple.rb
664
+ - spec/rails_app/config/initializers/inflections.rb
665
+ - spec/rails_app/config/initializers/mime_types.rb
666
+ - spec/rails_app/config/initializers/secret_token.rb
667
+ - spec/rails_app/config/initializers/session_store.rb
668
+ - spec/rails_app/config/initializers/teabag.rb
669
+ - spec/rails_app/config/initializers/wrap_parameters.rb
670
+ - spec/rails_app/config/locales/en.yml
671
+ - spec/rails_app/config/routes.rb
672
+ - spec/rails_app/db/seeds.rb
673
+ - spec/rails_app/lib/assets/.gitkeep
674
+ - spec/rails_app/lib/tasks/.gitkeep
675
+ - spec/rails_app/log/.gitkeep
676
+ - spec/rails_app/public/404.html
677
+ - spec/rails_app/public/422.html
678
+ - spec/rails_app/public/500.html
679
+ - spec/rails_app/public/robots.txt
680
+ - spec/rails_app/script/rails
681
+ - spec/rails_app/tmp/.gitkeep
682
+ - spec/rails_app/vendor/assets/stylesheets/.gitkeep
683
+ - spec/rails_app/vendor/plugins/.gitkeep
684
+ - spec/spec_helper.rb
685
+ - spec/support/active_model_lint_example.rb
686
+ - spec/teabag_env.rb