optimacms 0.1.59 → 0.1.60
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/optimacms/admin.js +4 -4
- data/app/assets/stylesheets/optimacms/admin.css.scss +6 -6
- data/app/assets/stylesheets/optimacms/admin_tpl.css.scss +15 -15
- data/app/assets/stylesheets/optimacms/bootstrap_and_overrides.css.scss +52 -52
- data/app/assets/stylesheets/optimacms/bootstrap_custom.css.scss +49 -49
- data/app/assets/stylesheets/optimacms/bootstrap_variables.css.scss +860 -860
- data/app/assets/stylesheets/optimacms/colors.css.scss +68 -68
- data/app/assets/stylesheets/optimacms/skins/noskin.css.scss +95 -95
- data/app/assets/stylesheets/optimacms/tinymce.css.scss +54 -54
- data/app/assets/stylesheets/optimacms/tpl.css.scss +309 -309
- data/app/controllers/optimacms/admin/admin_base_controller.rb +44 -44
- data/app/controllers/optimacms/admin/dashboard_controller.rb +6 -6
- data/app/controllers/optimacms/admin/layouts_controller.rb +76 -76
- data/app/controllers/optimacms/admin/pages_controller.rb +229 -229
- data/app/controllers/optimacms/admin/templates_controller.rb +315 -315
- data/app/controllers/optimacms/dev_controller.rb +65 -65
- data/app/controllers/optimacms/elfinder_controller.rb +39 -39
- data/app/controllers/optimacms/page_base_controller.rb +6 -6
- data/app/controllers/optimacms/pages_controller.rb +170 -170
- data/app/controllers/optimacms/tinymce_assets_controller.rb +20 -20
- data/app/helpers/optimacms/application_helper.rb +111 -111
- data/app/helpers/optimacms/forms_helper.rb +75 -75
- data/app/inputs/textarea_tinymce_input.rb +27 -27
- data/app/models/concerns/optimacms/meta_content.rb +63 -63
- data/app/models/optimacms/language.rb +14 -14
- data/app/models/optimacms/layout.rb +53 -53
- data/app/models/optimacms/mediafile.rb +17 -17
- data/app/models/optimacms/page.rb +171 -171
- data/app/models/optimacms/page_translation.rb +10 -10
- data/app/models/optimacms/template.rb +390 -390
- data/app/models/optimacms/template_type.rb +20 -20
- data/app/views/optimacms/admin/common/_js_tinymce.html.haml +49 -49
- data/app/views/optimacms/admin/common/_modal_div.html.haml +16 -16
- data/app/views/optimacms/admin/dashboard/index.html.haml +18 -18
- data/app/views/optimacms/admin/layouts/_form.html.haml +22 -22
- data/app/views/optimacms/admin/layouts/edit.html.haml +5 -5
- data/app/views/optimacms/admin/layouts/index.html.haml +25 -25
- data/app/views/optimacms/admin/layouts/main.html.haml +6 -6
- data/app/views/optimacms/admin/layouts/new.html.haml +5 -5
- data/app/views/optimacms/admin/pages/_form.html.haml +78 -78
- data/app/views/optimacms/admin/pages/_form_folder.html.haml +14 -14
- data/app/views/optimacms/admin/pages/_form_old.html.haml +107 -107
- data/app/views/optimacms/admin/pages/_meta.html.haml +48 -48
- data/app/views/optimacms/admin/pages/edit.html.haml +5 -5
- data/app/views/optimacms/admin/pages/editfolder.html.haml +15 -15
- data/app/views/optimacms/admin/pages/index.html.haml +58 -58
- data/app/views/optimacms/admin/pages/new.html.haml +5 -5
- data/app/views/optimacms/admin/pages/newfolder.html.haml +15 -15
- data/app/views/optimacms/admin/shared/_breadcrumbs.html.haml +7 -7
- data/app/views/optimacms/admin/shared/_flash.html.haml +23 -23
- data/app/views/optimacms/admin/shared/_footer.html.haml +5 -5
- data/app/views/optimacms/admin/shared/_form_errors.html.haml +11 -11
- data/app/views/optimacms/admin/shared/_leftmenu.html.haml +49 -49
- data/app/views/optimacms/admin/shared/_top.html.haml +33 -33
- data/app/views/optimacms/admin/templates/_form.html.haml +61 -61
- data/app/views/optimacms/admin/templates/_js_form_modal.html.haml +43 -43
- data/app/views/optimacms/admin/templates/create.js.haml +3 -3
- data/app/views/optimacms/admin/templates/edit.html.haml +5 -5
- data/app/views/optimacms/admin/templates/editfolder.html.haml +31 -31
- data/app/views/optimacms/admin/templates/index.html.haml +48 -48
- data/app/views/optimacms/admin/templates/new.html.haml +37 -37
- data/app/views/optimacms/admin/templates/newattach.html.haml +32 -32
- data/app/views/optimacms/admin/templates/newfolder.html.haml +28 -28
- data/app/views/optimacms/elfinder/index.html.erb +54 -54
- data/config/initializers/assets.rb +2 -2
- data/config/initializers/kaminari.rb +10 -10
- data/config/initializers/paperclip.rb +11 -11
- data/config/initializers/paperclip_media_type_spoof_detector_override.rb +7 -7
- data/config/initializers/simple_form.rb +166 -166
- data/config/initializers/simple_form_bootstrap.rb +146 -146
- data/config/locales/simple_form.en.yml +3 -3
- data/config/locales/simple_form.ru.yml +3 -3
- data/config/routes.rb +1 -1
- data/config/tinymce.yml +6 -6
- data/lib/optimacms/devise.rb +2 -1
- data/lib/optimacms/fileutils/fileutils.rb +39 -39
- data/lib/optimacms/filters/form_filter.rb +226 -226
- data/lib/optimacms/mycontroller.rb +84 -84
- data/lib/optimacms/page_services/page_data.rb +97 -97
- data/lib/optimacms/page_services/page_process_service.rb +32 -32
- data/lib/optimacms/page_services/page_route_service.rb +215 -215
- data/lib/optimacms/simple_form_extensions/button_components.rb +33 -33
- data/lib/optimacms/version.rb +3 -3
- data/lib/optimacms.rb +14 -1
- data/spec/dummy/app/assets/stylesheets/application.css.scss +11 -11
- data/spec/dummy/app/assets/stylesheets/bootstrap_and_overrides.css.scss +3 -3
- data/spec/dummy/app/assets/stylesheets/bootstrap_custom.css.scss +49 -49
- data/spec/dummy/app/assets/stylesheets/tpl.css.scss +62 -62
- data/spec/dummy/app/controllers/home_controller.rb +6 -6
- data/spec/dummy/app/controllers/my_controller.rb +6 -6
- data/spec/dummy/app/controllers/news_controller.rb +48 -50
- data/spec/dummy/app/models/news.rb +7 -7
- data/spec/dummy/app/views/home/index.html.haml +19 -19
- data/spec/dummy/app/views/my/hello.html.haml +4 -4
- data/spec/dummy/app/views/news/index.html.haml +13 -13
- data/spec/dummy/app/views/news/show.html.haml +6 -6
- data/spec/dummy/app/views/pages/1.html.erb +16 -16
- data/spec/dummy/app/views/pages/about.html.erb +12 -12
- data/spec/dummy/app/views/pages/text1.html +1 -1
- data/spec/dummy/app/views/services/index.html.haml +9 -9
- data/spec/dummy/app/views/services/service.html.haml +2 -2
- data/spec/dummy/app/views/temp/html1.html +1 -1
- data/spec/dummy/app/views/temp/p1.html.haml +6 -6
- data/spec/dummy/app/views/temp/t1.html.haml +13 -13
- data/spec/dummy/app/views/temp9/t2.html +8 -8
- data/spec/dummy/app/views/workers/_breadcrumb_worker.html.haml +11 -11
- data/spec/dummy/app/views/workers/_breadcrumb_workers.html.haml +9 -9
- data/spec/dummy/app/views/workers/_contacts_our.html.haml +3 -3
- data/spec/dummy/app/views/workers/_list_worker.html.haml +46 -46
- data/spec/dummy/app/views/workers/_list_workers.html.haml +6 -6
- data/spec/dummy/app/views/workers/_share_js.html.haml +22 -22
- data/spec/dummy/app/views/workers/_share_worker.html.haml +11 -11
- data/spec/dummy/app/views/workers/_show_info.html.haml +53 -53
- data/spec/dummy/app/views/workers/_tabs.html.haml +11 -11
- data/spec/dummy/app/views/workers/contacts.html.haml +19 -19
- data/spec/dummy/app/views/workers/index.html.haml +49 -49
- data/spec/dummy/app/views/workers/portfolio.html.haml +20 -20
- data/spec/dummy/app/views/workers/services.html.haml +11 -11
- data/spec/dummy/app/views/workers/show.html.haml +53 -53
- data/spec/dummy/app/views/workers/show_notfound.html.haml +8 -8
- data/spec/dummy/app/views/workers/t2.html.haml +1 -1
- data/spec/dummy/app/views/workers/work.html.haml +43 -43
- data/spec/dummy/config/database.yml +5 -1
- data/spec/dummy/config/initializers/optimacms.rb +4 -1
- data/spec/dummy/config/routes.rb +2 -2
- data/spec/dummy/config/secrets.yml +6 -0
- data/spec/dummy/config/tinymce.yml +5 -5
- data/spec/dummy/db/schema.rb +174 -164
- data/spec/dummy/log/development.log +10317 -22052
- data/spec/dummy/tmp/cache/assets/development/sass/{a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13 → 4dcf8798a5e82c6e1fb349f566278d8a474e98e2}/bootstrap_variables.css.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{6f943f22c610e6417422e4a13e0bcc0d → 083956a039048a556ce587bcddc68d9b} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/0cfc372ebaf39c7f31890a14ac94c769 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/14501eab19686e8703a1cd6724ca5afe +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{c1b70e8dd963b37b21718ca80e0746ff → 19c3216decf9ae2503797ae0dd16df65} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{8ecd5a0dbf510f928efa95340e9fe910 → 2041d52b5e3cd9533720f297abbd76cf} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/216e6715d6bce279f33009c2babfecf9 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/220acc341511b293c23333d41e6e54db +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/242a1b8332e1c26d756fbf6cd04268ea +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/24dd0982daf620a78ee0afa3d00987e1 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{9ee15139da5c7d931eebe585dfa4f704 → 28179a5600e9facaddec3ac2dc33d886} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/289dee836a0561af7303d09aa8e6c67d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{e94d980a1c3b4ef3554b82f3b8566bb9 → 2a1c584bdc3f87ed1ef4912c73fc5d2c} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2ab4520967f1ef89ea8f007d41f6c756 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/30d14911ed20e2599cdf2a05bed5f29d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/367af5c129571df2419e9fa2f2a85e5d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/385dc581e8b4c0fe913212b2e284349b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3c1d4e0e09b5722e779aa2308443c808 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{7df9b8a145ee6d36ab1b2467c38293ec → 3c62e52b2b7812cd045e255b1f85cc7f} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5260200a6fc227d631d379c0ca23ee9e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/54d2186a396e20271f8d5d73ceccac51 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{a64dbcf0e4afe0985b1abd3e209d17cd → 57b690fdf7e73e9251032764b979ba91} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5abc77e42125da6b4045aa4ab7a64163 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5c99b17b548f29b93256d38e593f3924 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5c9f95ed8e66a9d6711a3fa673f3e40b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/64ba1d7b1c83408f1bb8927c08d103e9 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/679faf90a1a568dcbca34e55d338e3a9 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{51a30045d73bcb4e287247540a1f8b1a → 69c661f38eadf38f75ca9b2b83d71cb3} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{e2af681c85db2ce8cd92ec1b4f327b55 → 6b368ed72245e6d0b96c006cacf39b71} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{aeaa5cb837408b775c7450a61f97a698 → 6c9493ae80153276273012bbc4ecb206} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{8b5a7992567ebbeb9a882d074778f8c8 → 6f57820c1356147d29893740e35fe7c3} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/7013ea120f56d0be829cd8fbb7ab12a9 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/72bda74c930eed262ed981fd089472b1 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{a090bc14ad5f648880e3e0b3d1de90de → 7358083ee9425c6ccf3b5a266ff72f96} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/742f7f492c3ce95598375b803a74c31c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/74ed2643128f1fbc5c9dd10058b05d3a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{4024da72ad47959820fe18874c53f221 → 75f70b2a440425dc9bf19f6edb18fea7} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{8a1d0d36be43e2abdde4adac99884e72 → 78fc4ca638e7834ef879b249ea5599d9} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/7b65aad1d0ee1e46c4dd3495d9b0424f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/80f9723094c8148ae3b1d32d6ae0487e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/872602a77b316cc8375ea874c6ec3497 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{28fff87693a34b5beb7e66a806ad3833 → 8844c67dfba4a3ba3059a3bf8ecad189} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8ab512c9b33ac90e699b73469d71f061 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8b73e72306b480b73f3700fa7d512498 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/938460055e1a3563f692db69466138d3 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{0ad60696a13becd5f46dd8c71385d357 → 9bde9a1775257c7587d7f5254c3fc7a0} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/9fa1eed0d22f02e83b308592343efe03 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{937d161d17165f27d31fbb60de6262b5 → a2babeef0007520d369a40d06032ab96} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{2056383a5a4df3722dab30a62592c626 → a639765218e43090e18ae13c24e8498e} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/bcca522c6302f184f12fe0e8a7d7e71a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c13fc73ceafa45876a901b3e775b83ae +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c37d32b432a1f81c43b104bbda4f0268 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c5ab32c046a8ff832f806b68908d7911 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c8b29251430ec1d7d6657d02850871ad +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c8bbcfa2a7ffb62d2a4c4e2084a64512 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cc192aceafb5fa95510ec09becf095a8 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cda2ecdc4c787899c1b08398adc4e74b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cdcaedafc6c86932f396f6f58a5eef64 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cdf5c6bc7592fda2fd0c6bef21e2aa8d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d5e681eec31b64d7d37c81e0ef29aadd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/db33b5802058b8e083cb237fe354febe +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{dec42a70eea64c724a9e98d7f0e80ea8 → e04f19041801d59eea289f5120db2611} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{d88422881c326190e968b349d27e5680 → e06c0172cffbdfb666c87db792da9985} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e1c7cc1284e73a3f4368f8c2f91ae4b5 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{529a74a4530de52f6c3ebbf107ffe9f2 → e2dc6e1d968a103a86d751cea044f02e} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{4810421fd0c71c5d69338209e10070aa → e99a872558be4a8f4f39f7173c3f63d1} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/{ba9859d0d2b7d4d7d5b03ff3a71ed478 → ebb8a071ed245c66977382b79517e43b} +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/eff0bd8c351c3d841aca4a3c97a0a416 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f0bf1b2ced9ebcdae5e38cae6e7cce86 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy/tmp/pids/server.pid +1 -1
- data/spec/factories/page.rb +25 -25
- data/spec/models/page_spec.rb +92 -92
- data/spec/spec_helper.rb +89 -89
- data/spec/support/factory_girl.rb +15 -15
- metadata +1777 -2097
- data/db/migrate/20150220161150_add_attachment_photo_to_mediafiles.rb +0 -11
- data/db/migrate/20150503213839_devise_create_optimacms_cms_users.rb +0 -42
- data/db/migrate/20150610222026_change_meta_description_for_pages.rb +0 -13
- data/db/migrate/20150610225422_add_index_name_to_pages.rb +0 -11
- data/spec/dummy/app/views/temp/_part2.html.haml +0 -1
- data/spec/dummy/db/migrate/20150504000518_devise_create_users.rb +0 -42
- data/spec/dummy/log/test.log +0 -203
- data/spec/dummy/tmp/cache/assets/development/sass/0abc660c880b2e10d695d713e519e6a4257cd348/tpl.css.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/18577b7353d72dbc7e81d46af07240af8557f987/_hacks.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/5b1098eb74c8e1af5b245ed4a552e3cb0be260fc/_css3.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/5b1098eb74c8e1af5b245ed4a552e3cb0be260fc/_support.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/842dfd874be6f9cd3bb0569e23cfc0feb61f18f5/_bootstrap-sprockets.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_alerts.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_background-variant.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_border-radius.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_buttons.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_center-block.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_clearfix.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_forms.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_gradients.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_grid-framework.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_grid.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_hide-text.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_image.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_labels.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_list-group.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_nav-divider.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_nav-vertical-align.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_opacity.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_pagination.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_panels.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_progress-bar.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_reset-filter.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_resize.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_responsive-visibility.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_size.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_tab-focus.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_table-row.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_text-emphasis.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_text-overflow.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_vendor-prefixes.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_shared.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_transition.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_alerts.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_badges.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_breadcrumbs.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_button-groups.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_buttons.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_carousel.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_close.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_code.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_component-animations.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_dropdowns.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_forms.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_glyphicons.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_grid.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_input-groups.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_jumbotron.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_labels.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_list-group.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_media.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_mixins.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_modals.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_navbar.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_navs.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_normalize.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_pager.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_pagination.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_panels.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_popovers.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_print.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_progress-bars.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_responsive-embed.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_responsive-utilities.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_scaffolding.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_tables.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_thumbnails.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_tooltip.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_type.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_utilities.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_variables.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_wells.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_appearance.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_background-clip.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_background-origin.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_background-size.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_border-radius.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_box-shadow.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_box-sizing.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_box.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_columns.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_filter.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_font-face.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_hyphenation.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_images.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_inline-block.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_opacity.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_regions.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_text-shadow.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_transform.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/f438bd478b9ef93f8ca1863646316d42015ad317/_user-interface.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/fc41a79de5ec40d34c8a83221f3f3da2c64f4153/font-awesome.css.erbc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/002bd8f28c62a795a10ce5716ceffc21 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/053f826d1ea01a2fac355de0755e5c40 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/05e27d4921b00a0fdddb47a737a64494 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/07ba91287641124bffd2cf22c286c1eb +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/0a470277dd21c166b9dfb68b03d34d5c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/0b1671e1bffda60e6a95f72b9176d628 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/0c01383de62960e3667c7bf3788ecdb6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/0d2f255829ff9f72d98dead4f35ddf02 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/11f54468370774efca0fe1afb2ebf1d9 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/13272781c2d1959f2c75a3a1eac100f5 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1776fe7c16d4aeeb72b23a586739cdfc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1c0ef71c34dc1d573e1b4b527116e3cc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1c43d48e2adb866e5d787a64e031c27f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1f631bd03bec1d51bfd51a6c795b4357 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2168c08c151d642aa46ea4bc6283929c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/22c754d2d93ffdc2c40d01c8322fc421 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2a9369c8d28de014045a120b692e8139 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2cb2e5b2abc5f527ba6d3f05a6315873 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2f7d38a264678a2db4a0d569a3313cb1 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3240ef40c1dc9d13156bbd790ec2651a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/332dfe4887cbad3adbd20e6609fa4960 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3347cc312918facec5bbac684ea65715 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3cd4037d8c32ad8fcdd5e3bbb8dfc35a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3df9dc08e786041b758b3dde7d1b783a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/4016d2fd0b776ceb82fcbfbc5d2e26b1 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/43dc3e92cd09deb0fc54dd97b46935e9 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/452d7e35d5a012ae12fa7346fcf2239b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/49c7cb5dd916ffc9e87ce3b989c92062 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/4bfebf7044cd57045582604aeda41b70 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/543486503ee069fde21aa3e66cd4c53b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/55a2847335c39261e1efe764deb18592 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/56c7eb172a7423728c45d0a751d198e3 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5b51dc1a00c7421b8d18c4cdc25659ef +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5e6f22ffe50d81fe0fbd9e8141614e24 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6789fe765d536063c998330523bb12b9 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/678a2e392e656b8132f0420e4ec28ed6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6843f0414f73089579ae0f9fddf7b38f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6c7c58744c14732af9bf574870fdf07e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6cdbd6f171a27a578bcb07dd5bfa83a2 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6d4a2ae7c3150f5058333fe6fc31dbe4 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6e431ed1dfb5bbcbd33a5f9e069dd3ab +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/73fbaa501dc0b072cf2c27fa7dfe0d91 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/7c1da2863c9cc5c4beca7faee9b926f8 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/7c886717bced4d59ab89e012b52f40de +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/808e3fbf28912a70798599773f9c3fb8 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/821470da3272c8b99070972d4f4f58ca +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8283708d8708e538744205689ee9c787 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/88d843fcb07453d1057fac1e254fde0d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8956737a82f17db48d50e13f133aeefc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8a7fdc9ba36fbfd607efe8253cbaafe0 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8d71fe4f0e2910900097bdc07bf2d6af +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8e1785ddbfab42cd2df0416eb3932253 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/9024d024c62c2668836b1e1b7b3b78cc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/924857562e72b2a6911810c63aa3b6b7 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/928ed298f875a25727ca516f5c03f344 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/97c1e12a09973e0fb97f23a1dc496443 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/991576185140a77411185839fd0533f1 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/99e8d6370ba85ec4a61d953f5ed261af +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/9c9ee3bcfa3192458b487b7b9558ee97 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/9cb4510e55f0c07098e6a2a270265e99 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/9ee80730ab26986d507820ac7a288d5c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a25a5420710420425c171eb2f62627f3 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a3faca31eb11ba1a981535f9c8408282 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a5c68a2aec806face32c749f380f1e14 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a6d357fbe03dae6f590180f6c5e0e148 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a7478d68549f51df0523244f7bc75f6d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/aa58fb159780a7200a1bc4c6844cc5c4 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/aaba73a43e02d8c6550bae851f17e7a0 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ac7254cb771a232e117073343e8bcfca +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/af26c017afcf68f1edd44a4c9bb942e4 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b3defd466aec80b128284b8d85324630 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b48ed8a3de3ca66055ee4fd18b16421f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ba3a30de386fac6b6725525c6fa5c5a0 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/bd51aad443f452b0aa7d863427f5b164 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/be8a0cd6c3605b9d7c22642609316a9f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c11c6d97cfc7ef7945fa87f14b44445c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c5f3450b5366b6fbdc4172ce089fba48 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c982bb1e71844744a60dc9b4afcb2f49 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c9dfca6de1f728a082245491ed927b38 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cf24c3f1bb8adb1f168758f2bd9775c9 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d3e5a199890ba7c706fc62c2b891714d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d3e6478e505aa1d0482c102b86205e0c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d584baf83d8a779d945f9668f902fa7c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d71b820ce5f8b310e466f517bd3a8e4b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d8dab59d17daf5a5081153e2ad7d09b4 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/dc4e2dfae80b82939b81a2aeef7f03d9 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/dd4a8658311b7a2cd8effa6479827559 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e11970a225a09526aac3f76d7ee91822 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e3dd086dd858b5bff9cfd60a031c2091 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e43bcf201d76cdf6e1fe345195c1cd9e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e6e4cc77e615a00707af83c80a7eed17 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e945ca604ee0240455a5652953b3e495 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ec33505f0e2ed4dd12951ecceffa3695 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ee287313e28f341f83628dec0a353fa6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ee9a23832dc2a49ee6ec6d3f1d6a0e1f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ef2d6862f5fd690c5387cafd88944a9f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ef8c3824b85ed745cad651aadda4f2b8 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f06187d4328e75bbd878bc2dced2b601 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f557612d05bb9fea499dce8352b3f0ca +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f7f3056583a2454471a4a5f7200dcefa +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f9c51fa87975943d31bc1bfd7cb684c6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ff9ed89418a3f78032b8f8184dd98e80 +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{0abc660c880b2e10d695d713e519e6a4257cd348 → 2b54d68f44ccef8d8a637182d9e35eaea2024385}/application.css.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{0abc660c880b2e10d695d713e519e6a4257cd348 → 2b54d68f44ccef8d8a637182d9e35eaea2024385}/bootstrap_and_overrides.css.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{0abc660c880b2e10d695d713e519e6a4257cd348 → 2b54d68f44ccef8d8a637182d9e35eaea2024385}/bootstrap_custom.css.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{0abc660c880b2e10d695d713e519e6a4257cd348 → 2b54d68f44ccef8d8a637182d9e35eaea2024385}/bootstrap_variables.css.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{b27ef787063ed015fccbe329d61e14a18daf3345 → 307fb08091d8c0489104a05b321a9f2b0f1eef38}/_hacks.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13 → 4dcf8798a5e82c6e1fb349f566278d8a474e98e2}/admin.css.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13 → 4dcf8798a5e82c6e1fb349f566278d8a474e98e2}/admin_tpl.css.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13 → 4dcf8798a5e82c6e1fb349f566278d8a474e98e2}/bootstrap_and_overrides.css.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13 → 4dcf8798a5e82c6e1fb349f566278d8a474e98e2}/bootstrap_custom.css.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13 → 4dcf8798a5e82c6e1fb349f566278d8a474e98e2}/colors.css.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13 → 4dcf8798a5e82c6e1fb349f566278d8a474e98e2}/tinymce.css.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13 → 4dcf8798a5e82c6e1fb349f566278d8a474e98e2}/tpl.css.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_alerts.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_badges.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_breadcrumbs.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_button-groups.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_buttons.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_carousel.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_close.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_code.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_component-animations.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_dropdowns.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_forms.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_glyphicons.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_grid.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_input-groups.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_jumbotron.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_labels.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_list-group.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_media.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_mixins.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_modals.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_navbar.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_navs.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_normalize.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_pager.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_pagination.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_panels.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_popovers.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_print.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_progress-bars.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_responsive-embed.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_responsive-utilities.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_scaffolding.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_tables.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_thumbnails.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_tooltip.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_type.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_utilities.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_variables.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{a187b9541eb09cfae0c829c63cfde3b9430dcf1d → 53cc251ec7d503551d5cca5a52cf3e21e13df61c}/_wells.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{4b8b59c3cee3225b46cdcaa54f7d0474421be9c6 → 813e6d87699c3a2c48abd16c7f35b61b434d4808}/_bootstrap-sprockets.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{255a203cf5ecbb5470dfd267d6d4b923c8f1e5f0 → a77c98d86b869607d1c161017fa1c88387d1997e}/_css3.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{255a203cf5ecbb5470dfd267d6d4b923c8f1e5f0 → a77c98d86b869607d1c161017fa1c88387d1997e}/_support.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_appearance.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_background-clip.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_background-origin.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_background-size.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_border-radius.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_box-shadow.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_box-sizing.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_box.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_columns.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_filter.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_font-face.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_hyphenation.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_images.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_inline-block.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_opacity.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_regions.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{f438bd478b9ef93f8ca1863646316d42015ad317 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_shared.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_text-shadow.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_transform.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{f438bd478b9ef93f8ca1863646316d42015ad317 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_transition.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{e04ca948242d213270bfe676c8b96e7b33226468 → b35f0e69c4892ac057a21d74a049b3bf7065c46e}/_user-interface.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{7f871ea7e3a8127767d5a5868622ef2909611f26 → cba79790f566813ecf0ee9ddd5cbf390b682f8ee}/noskin.css.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{38aaf4982e776a83df88ee6142fe315d8c8a4576 → e78863fbefa25b9b3ada284552103b751a61c1c3}/font-awesome.css.erbc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_alerts.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_background-variant.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_border-radius.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_buttons.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_center-block.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_clearfix.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_forms.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_gradients.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_grid-framework.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_grid.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_hide-text.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_image.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_labels.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_list-group.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_nav-divider.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_nav-vertical-align.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_opacity.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_pagination.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_panels.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_progress-bar.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_reset-filter.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_reset-text.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_resize.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_responsive-visibility.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_size.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_tab-focus.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_table-row.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_text-emphasis.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_text-overflow.scssc +0 -0
- /data/spec/dummy/tmp/cache/assets/development/sass/{64274c788e379a0793dc9738d8050418da1d172b → edeefea066f37bf37a09beb3312185d2b6063947}/_vendor-prefixes.scssc +0 -0
@@ -1,390 +1,390 @@
|
|
1
|
-
module Optimacms
|
2
|
-
class Template < ActiveRecord::Base
|
3
|
-
self.table_name = 'cms_templates'
|
4
|
-
|
5
|
-
EXTENSION_DEFAULT = 'html'
|
6
|
-
EXTENSIONS = {'blank'=>'', 'html'=>'html', 'erb'=>'html.erb', 'haml'=>'html.haml'}
|
7
|
-
|
8
|
-
|
9
|
-
belongs_to :type, :foreign_key => 'type_id', :class_name => 'TemplateType'
|
10
|
-
|
11
|
-
before_validation :_before_validation
|
12
|
-
before_create :_before_create
|
13
|
-
before_update :_before_update
|
14
|
-
before_destroy :_before_destroy
|
15
|
-
|
16
|
-
# tree
|
17
|
-
has_ancestry
|
18
|
-
|
19
|
-
#
|
20
|
-
#validate :check_unique_path, unless: :is_folder?
|
21
|
-
validates_uniqueness_of :basepath, :scope => :is_folder
|
22
|
-
|
23
|
-
#validate :check_parent_folder_exists, unless: :is_folder?
|
24
|
-
|
25
|
-
#
|
26
|
-
paginates_per 10
|
27
|
-
|
28
|
-
|
29
|
-
# scopes
|
30
|
-
scope :folders, -> { where(is_folder: true) }
|
31
|
-
scope :layouts, -> { where(is_folder: false, type_id: TemplateType::TYPE_LAYOUT) }
|
32
|
-
|
33
|
-
|
34
|
-
# search
|
35
|
-
scope :of_parent, lambda { |parent_id| where_parent(parent_id) }
|
36
|
-
|
37
|
-
searchable_by_simple_filter
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
###
|
44
|
-
def to_s
|
45
|
-
"#{title} (#{basepath})"
|
46
|
-
end
|
47
|
-
|
48
|
-
|
49
|
-
### settings
|
50
|
-
|
51
|
-
def self.base_dir
|
52
|
-
Rails.root.to_s + '/app/views/'
|
53
|
-
end
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
### properties
|
60
|
-
|
61
|
-
def parent_title
|
62
|
-
self.parent.title
|
63
|
-
end
|
64
|
-
|
65
|
-
|
66
|
-
def has_code?
|
67
|
-
['haml', 'erb', 'blank'].include?(self.tpl_format)
|
68
|
-
end
|
69
|
-
|
70
|
-
def is_folder?
|
71
|
-
self.is_folder
|
72
|
-
end
|
73
|
-
|
74
|
-
def is_layout?
|
75
|
-
return self.type_id==TemplateType::TYPE_LAYOUT
|
76
|
-
end
|
77
|
-
|
78
|
-
def is_type_page?
|
79
|
-
return self.type_id==TemplateType::TYPE_PAGE
|
80
|
-
end
|
81
|
-
|
82
|
-
def is_type_partial?
|
83
|
-
return self.type_id==TemplateType::TYPE_PARTIAL
|
84
|
-
end
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
##### search
|
89
|
-
|
90
|
-
def self.where_parent(parent_id)
|
91
|
-
if parent_id==0
|
92
|
-
roots
|
93
|
-
elsif parent_id>0
|
94
|
-
children_of(parent_id.to_s)
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
#### operations
|
101
|
-
|
102
|
-
def attach
|
103
|
-
# check if file exists
|
104
|
-
if !content_file_exists?
|
105
|
-
errors.add(:attach, "file not found")
|
106
|
-
return false
|
107
|
-
end
|
108
|
-
|
109
|
-
save
|
110
|
-
end
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
#### path
|
115
|
-
|
116
|
-
def path(lang='')
|
117
|
-
return nil if self.basename.nil?
|
118
|
-
self.basedirpath + filename_base + Template.filename_lang_postfix(lang) + Template.filename_ext_with_dot(self.tpl_format)
|
119
|
-
end
|
120
|
-
|
121
|
-
def fullpath(lang='')
|
122
|
-
f = self.path(lang)
|
123
|
-
return nil if f.nil?
|
124
|
-
Template.base_dir + f
|
125
|
-
end
|
126
|
-
|
127
|
-
def content_file_exists?(lang='')
|
128
|
-
postfixes = EXTENSIONS.map{|k,v| '.'+v}
|
129
|
-
|
130
|
-
found = false
|
131
|
-
postfixes.each do |p|
|
132
|
-
if File.exists?(self.fullpath(lang))
|
133
|
-
found = true
|
134
|
-
break
|
135
|
-
end
|
136
|
-
end
|
137
|
-
found
|
138
|
-
end
|
139
|
-
|
140
|
-
|
141
|
-
### validations
|
142
|
-
|
143
|
-
def check_parent_folder_exists
|
144
|
-
if self.parent_id.nil? && !self.basedirpath.blank?
|
145
|
-
errors.add(:basedirpath, "folder not exists. create it first")
|
146
|
-
end
|
147
|
-
end
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
##### folder
|
153
|
-
|
154
|
-
def folder_path
|
155
|
-
return nil if self.basepath.nil?
|
156
|
-
self.basepath+'/'
|
157
|
-
end
|
158
|
-
|
159
|
-
def folder_fullpath
|
160
|
-
f = self.folder_path
|
161
|
-
return nil if f.nil?
|
162
|
-
Template.base_dir + f
|
163
|
-
end
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
### content
|
168
|
-
|
169
|
-
def content(lang='')
|
170
|
-
filename = fullpath(lang)
|
171
|
-
return nil if filename.nil?
|
172
|
-
return '' if !File.exists? filename
|
173
|
-
File.read(filename)
|
174
|
-
end
|
175
|
-
|
176
|
-
def content=(v, lang='')
|
177
|
-
File.open(self.fullpath(lang), "w+") do |f|
|
178
|
-
f.write(v)
|
179
|
-
end
|
180
|
-
end
|
181
|
-
|
182
|
-
|
183
|
-
### helpers for path
|
184
|
-
|
185
|
-
# base filename depending on type
|
186
|
-
# for page = name
|
187
|
-
# for partial = _name
|
188
|
-
def filename_base
|
189
|
-
return '_'+self.basename if self.is_type_partial?
|
190
|
-
|
191
|
-
self.basename
|
192
|
-
end
|
193
|
-
|
194
|
-
|
195
|
-
def self.filename_lang_postfix(lang)
|
196
|
-
return '' if lang==''
|
197
|
-
return '.'+lang
|
198
|
-
end
|
199
|
-
|
200
|
-
def self.filename_ext(format)
|
201
|
-
EXTENSIONS[format]
|
202
|
-
end
|
203
|
-
|
204
|
-
def self.filename_ext_with_dot(format)
|
205
|
-
ext = filename_ext(format)
|
206
|
-
ext = '.'+ext unless ext.blank?
|
207
|
-
ext
|
208
|
-
end
|
209
|
-
|
210
|
-
|
211
|
-
### operations with path
|
212
|
-
|
213
|
-
def set_basepath
|
214
|
-
if self.parent.nil?
|
215
|
-
self.basepath = self.basename
|
216
|
-
self.basedirpath ||= ''
|
217
|
-
else
|
218
|
-
self.basepath = self.parent.basepath+'/'+self.basename
|
219
|
-
self.basedirpath ||= self.parent.basepath+'/'
|
220
|
-
end
|
221
|
-
|
222
|
-
end
|
223
|
-
|
224
|
-
|
225
|
-
def fix_basedirpath
|
226
|
-
self.basedirpath ||= ''
|
227
|
-
if !self.basedirpath.blank? && self.basedirpath[-1] !='/'
|
228
|
-
self.basedirpath << '/'
|
229
|
-
end
|
230
|
-
end
|
231
|
-
|
232
|
-
def set_basedirpath_from_parent
|
233
|
-
v = ''
|
234
|
-
if self.parent_id.nil?
|
235
|
-
v = ''
|
236
|
-
else
|
237
|
-
v = self.parent.basepath+'/' if self.parent_id >0
|
238
|
-
end
|
239
|
-
|
240
|
-
self.basedirpath = v
|
241
|
-
#v
|
242
|
-
end
|
243
|
-
|
244
|
-
def set_parent_from_basedirpath
|
245
|
-
v = self.basedirpath
|
246
|
-
|
247
|
-
# set parent_id from dir
|
248
|
-
d = v.chop
|
249
|
-
r = Template.where(is_folder: true, basepath: d).first
|
250
|
-
if r
|
251
|
-
self.parent_id = r.id
|
252
|
-
else
|
253
|
-
self.parent_id = nil
|
254
|
-
end
|
255
|
-
end
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
#### callbacks
|
260
|
-
|
261
|
-
def _before_validation
|
262
|
-
fix_basedirpath
|
263
|
-
|
264
|
-
# parent, basedirpath
|
265
|
-
if self.parent_id.nil? && !self.basedirpath.blank?
|
266
|
-
set_parent_from_basedirpath
|
267
|
-
elsif self.basedirpath.nil? && !self.parent_id.nil?
|
268
|
-
set_basedirpath_from_parent
|
269
|
-
end
|
270
|
-
|
271
|
-
set_basepath
|
272
|
-
end
|
273
|
-
|
274
|
-
|
275
|
-
def _before_create
|
276
|
-
if self.is_folder
|
277
|
-
# create dir on disk
|
278
|
-
Fileutils::Fileutils.create_dir_if_not_exists self.folder_fullpath
|
279
|
-
else
|
280
|
-
# add folders if needed
|
281
|
-
if self.parent_id.nil? && !self.basedirpath.blank?
|
282
|
-
self.parent = Template.create_folders_tree(self.basedirpath)
|
283
|
-
end
|
284
|
-
|
285
|
-
end
|
286
|
-
|
287
|
-
end
|
288
|
-
|
289
|
-
def _before_update
|
290
|
-
if self.is_folder
|
291
|
-
oldpath = self.folder_fullpath
|
292
|
-
|
293
|
-
self.set_basepath
|
294
|
-
|
295
|
-
# rename dir on disk
|
296
|
-
if self.basename_changed?
|
297
|
-
raise "cannot change folder path"
|
298
|
-
|
299
|
-
require 'fileutils'
|
300
|
-
newpath = self.folder_fullpath
|
301
|
-
|
302
|
-
if Dir.exists?(newpath)
|
303
|
-
errors.add(:basename, 'Folder already exists')
|
304
|
-
return false
|
305
|
-
end
|
306
|
-
|
307
|
-
FileUtils.mv oldpath, newpath
|
308
|
-
|
309
|
-
# TODO: change paths for child templates
|
310
|
-
|
311
|
-
end
|
312
|
-
|
313
|
-
else
|
314
|
-
# file
|
315
|
-
|
316
|
-
# TODO: rename file
|
317
|
-
#self.make_basepath
|
318
|
-
|
319
|
-
end
|
320
|
-
|
321
|
-
end
|
322
|
-
|
323
|
-
def _before_destroy
|
324
|
-
if self.is_folder
|
325
|
-
|
326
|
-
# cannot delete not empty dir
|
327
|
-
if !self.folder_empty?
|
328
|
-
return false
|
329
|
-
end
|
330
|
-
|
331
|
-
# delete dir
|
332
|
-
folder_delete
|
333
|
-
|
334
|
-
else
|
335
|
-
# file
|
336
|
-
|
337
|
-
|
338
|
-
end
|
339
|
-
|
340
|
-
|
341
|
-
true
|
342
|
-
end
|
343
|
-
|
344
|
-
|
345
|
-
# create folders if necessary - NOT WORKING
|
346
|
-
def self.create_folders_tree(dirpath)
|
347
|
-
a = dirpath.split /\//
|
348
|
-
|
349
|
-
d = ''
|
350
|
-
parent_current = nil
|
351
|
-
prev_d = d
|
352
|
-
a.each do |s|
|
353
|
-
d = d + (d=='' ? '' : '/') +s
|
354
|
-
r = Template.where(is_folder: true, basepath: d).first
|
355
|
-
if r
|
356
|
-
parent_current = r
|
357
|
-
next
|
358
|
-
end
|
359
|
-
# create missing folder
|
360
|
-
path_new = File.basename(d)
|
361
|
-
basedirpath_new = prev_d
|
362
|
-
r = Template.create(is_folder: true, basename: path_new, basedirpath: basedirpath_new, title: path_new, parent: parent_current)
|
363
|
-
parent_current = r
|
364
|
-
|
365
|
-
prev_d = d
|
366
|
-
end
|
367
|
-
|
368
|
-
parent_current
|
369
|
-
|
370
|
-
end
|
371
|
-
|
372
|
-
|
373
|
-
#### folders
|
374
|
-
|
375
|
-
def folder_delete
|
376
|
-
dirpath = self.folder_fullpath
|
377
|
-
FileUtils.remove_dir(dirpath) if Dir.exists? dirpath
|
378
|
-
end
|
379
|
-
|
380
|
-
def folder_empty?
|
381
|
-
dirpath = self.folder_fullpath
|
382
|
-
if !Dir.exists? dirpath
|
383
|
-
return true
|
384
|
-
end
|
385
|
-
|
386
|
-
return Dir.entries(dirpath).size == 2
|
387
|
-
end
|
388
|
-
|
389
|
-
end
|
390
|
-
end
|
1
|
+
module Optimacms
|
2
|
+
class Template < ActiveRecord::Base
|
3
|
+
self.table_name = 'cms_templates'
|
4
|
+
|
5
|
+
EXTENSION_DEFAULT = 'html'
|
6
|
+
EXTENSIONS = {'blank'=>'', 'html'=>'html', 'erb'=>'html.erb', 'haml'=>'html.haml'}
|
7
|
+
|
8
|
+
|
9
|
+
belongs_to :type, :foreign_key => 'type_id', :class_name => 'TemplateType'
|
10
|
+
|
11
|
+
before_validation :_before_validation
|
12
|
+
before_create :_before_create
|
13
|
+
before_update :_before_update
|
14
|
+
before_destroy :_before_destroy
|
15
|
+
|
16
|
+
# tree
|
17
|
+
has_ancestry
|
18
|
+
|
19
|
+
#
|
20
|
+
#validate :check_unique_path, unless: :is_folder?
|
21
|
+
validates_uniqueness_of :basepath, :scope => :is_folder
|
22
|
+
|
23
|
+
#validate :check_parent_folder_exists, unless: :is_folder?
|
24
|
+
|
25
|
+
#
|
26
|
+
paginates_per 10
|
27
|
+
|
28
|
+
|
29
|
+
# scopes
|
30
|
+
scope :folders, -> { where(is_folder: true) }
|
31
|
+
scope :layouts, -> { where(is_folder: false, type_id: TemplateType::TYPE_LAYOUT) }
|
32
|
+
|
33
|
+
|
34
|
+
# search
|
35
|
+
scope :of_parent, lambda { |parent_id| where_parent(parent_id) }
|
36
|
+
|
37
|
+
searchable_by_simple_filter
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
###
|
44
|
+
def to_s
|
45
|
+
"#{title} (#{basepath})"
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
### settings
|
50
|
+
|
51
|
+
def self.base_dir
|
52
|
+
Rails.root.to_s + '/app/views/'
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
### properties
|
60
|
+
|
61
|
+
def parent_title
|
62
|
+
self.parent.title
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
def has_code?
|
67
|
+
['haml', 'erb', 'blank'].include?(self.tpl_format)
|
68
|
+
end
|
69
|
+
|
70
|
+
def is_folder?
|
71
|
+
self.is_folder
|
72
|
+
end
|
73
|
+
|
74
|
+
def is_layout?
|
75
|
+
return self.type_id==TemplateType::TYPE_LAYOUT
|
76
|
+
end
|
77
|
+
|
78
|
+
def is_type_page?
|
79
|
+
return self.type_id==TemplateType::TYPE_PAGE
|
80
|
+
end
|
81
|
+
|
82
|
+
def is_type_partial?
|
83
|
+
return self.type_id==TemplateType::TYPE_PARTIAL
|
84
|
+
end
|
85
|
+
|
86
|
+
|
87
|
+
|
88
|
+
##### search
|
89
|
+
|
90
|
+
def self.where_parent(parent_id)
|
91
|
+
if parent_id==0
|
92
|
+
roots
|
93
|
+
elsif parent_id>0
|
94
|
+
children_of(parent_id.to_s)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
#### operations
|
101
|
+
|
102
|
+
def attach
|
103
|
+
# check if file exists
|
104
|
+
if !content_file_exists?
|
105
|
+
errors.add(:attach, "file not found")
|
106
|
+
return false
|
107
|
+
end
|
108
|
+
|
109
|
+
save
|
110
|
+
end
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
#### path
|
115
|
+
|
116
|
+
def path(lang='')
|
117
|
+
return nil if self.basename.nil?
|
118
|
+
self.basedirpath + filename_base + Template.filename_lang_postfix(lang) + Template.filename_ext_with_dot(self.tpl_format)
|
119
|
+
end
|
120
|
+
|
121
|
+
def fullpath(lang='')
|
122
|
+
f = self.path(lang)
|
123
|
+
return nil if f.nil?
|
124
|
+
Template.base_dir + f
|
125
|
+
end
|
126
|
+
|
127
|
+
def content_file_exists?(lang='')
|
128
|
+
postfixes = EXTENSIONS.map{|k,v| '.'+v}
|
129
|
+
|
130
|
+
found = false
|
131
|
+
postfixes.each do |p|
|
132
|
+
if File.exists?(self.fullpath(lang))
|
133
|
+
found = true
|
134
|
+
break
|
135
|
+
end
|
136
|
+
end
|
137
|
+
found
|
138
|
+
end
|
139
|
+
|
140
|
+
|
141
|
+
### validations
|
142
|
+
|
143
|
+
def check_parent_folder_exists
|
144
|
+
if self.parent_id.nil? && !self.basedirpath.blank?
|
145
|
+
errors.add(:basedirpath, "folder not exists. create it first")
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
|
152
|
+
##### folder
|
153
|
+
|
154
|
+
def folder_path
|
155
|
+
return nil if self.basepath.nil?
|
156
|
+
self.basepath+'/'
|
157
|
+
end
|
158
|
+
|
159
|
+
def folder_fullpath
|
160
|
+
f = self.folder_path
|
161
|
+
return nil if f.nil?
|
162
|
+
Template.base_dir + f
|
163
|
+
end
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
### content
|
168
|
+
|
169
|
+
def content(lang='')
|
170
|
+
filename = fullpath(lang)
|
171
|
+
return nil if filename.nil?
|
172
|
+
return '' if !File.exists? filename
|
173
|
+
File.read(filename)
|
174
|
+
end
|
175
|
+
|
176
|
+
def content=(v, lang='')
|
177
|
+
File.open(self.fullpath(lang), "w+") do |f|
|
178
|
+
f.write(v)
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
|
183
|
+
### helpers for path
|
184
|
+
|
185
|
+
# base filename depending on type
|
186
|
+
# for page = name
|
187
|
+
# for partial = _name
|
188
|
+
def filename_base
|
189
|
+
return '_'+self.basename if self.is_type_partial?
|
190
|
+
|
191
|
+
self.basename
|
192
|
+
end
|
193
|
+
|
194
|
+
|
195
|
+
def self.filename_lang_postfix(lang)
|
196
|
+
return '' if lang==''
|
197
|
+
return '.'+lang
|
198
|
+
end
|
199
|
+
|
200
|
+
def self.filename_ext(format)
|
201
|
+
EXTENSIONS[format]
|
202
|
+
end
|
203
|
+
|
204
|
+
def self.filename_ext_with_dot(format)
|
205
|
+
ext = filename_ext(format)
|
206
|
+
ext = '.'+ext unless ext.blank?
|
207
|
+
ext
|
208
|
+
end
|
209
|
+
|
210
|
+
|
211
|
+
### operations with path
|
212
|
+
|
213
|
+
def set_basepath
|
214
|
+
if self.parent.nil?
|
215
|
+
self.basepath = self.basename
|
216
|
+
self.basedirpath ||= ''
|
217
|
+
else
|
218
|
+
self.basepath = self.parent.basepath+'/'+self.basename
|
219
|
+
self.basedirpath ||= self.parent.basepath+'/'
|
220
|
+
end
|
221
|
+
|
222
|
+
end
|
223
|
+
|
224
|
+
|
225
|
+
def fix_basedirpath
|
226
|
+
self.basedirpath ||= ''
|
227
|
+
if !self.basedirpath.blank? && self.basedirpath[-1] !='/'
|
228
|
+
self.basedirpath << '/'
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
232
|
+
def set_basedirpath_from_parent
|
233
|
+
v = ''
|
234
|
+
if self.parent_id.nil?
|
235
|
+
v = ''
|
236
|
+
else
|
237
|
+
v = self.parent.basepath+'/' if self.parent_id >0
|
238
|
+
end
|
239
|
+
|
240
|
+
self.basedirpath = v
|
241
|
+
#v
|
242
|
+
end
|
243
|
+
|
244
|
+
def set_parent_from_basedirpath
|
245
|
+
v = self.basedirpath
|
246
|
+
|
247
|
+
# set parent_id from dir
|
248
|
+
d = v.chop
|
249
|
+
r = Template.where(is_folder: true, basepath: d).first
|
250
|
+
if r
|
251
|
+
self.parent_id = r.id
|
252
|
+
else
|
253
|
+
self.parent_id = nil
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
#### callbacks
|
260
|
+
|
261
|
+
def _before_validation
|
262
|
+
fix_basedirpath
|
263
|
+
|
264
|
+
# parent, basedirpath
|
265
|
+
if self.parent_id.nil? && !self.basedirpath.blank?
|
266
|
+
set_parent_from_basedirpath
|
267
|
+
elsif self.basedirpath.nil? && !self.parent_id.nil?
|
268
|
+
set_basedirpath_from_parent
|
269
|
+
end
|
270
|
+
|
271
|
+
set_basepath
|
272
|
+
end
|
273
|
+
|
274
|
+
|
275
|
+
def _before_create
|
276
|
+
if self.is_folder
|
277
|
+
# create dir on disk
|
278
|
+
Fileutils::Fileutils.create_dir_if_not_exists self.folder_fullpath
|
279
|
+
else
|
280
|
+
# add folders if needed
|
281
|
+
if self.parent_id.nil? && !self.basedirpath.blank?
|
282
|
+
self.parent = Template.create_folders_tree(self.basedirpath)
|
283
|
+
end
|
284
|
+
|
285
|
+
end
|
286
|
+
|
287
|
+
end
|
288
|
+
|
289
|
+
def _before_update
|
290
|
+
if self.is_folder
|
291
|
+
oldpath = self.folder_fullpath
|
292
|
+
|
293
|
+
self.set_basepath
|
294
|
+
|
295
|
+
# rename dir on disk
|
296
|
+
if self.basename_changed?
|
297
|
+
raise "cannot change folder path"
|
298
|
+
|
299
|
+
require 'fileutils'
|
300
|
+
newpath = self.folder_fullpath
|
301
|
+
|
302
|
+
if Dir.exists?(newpath)
|
303
|
+
errors.add(:basename, 'Folder already exists')
|
304
|
+
return false
|
305
|
+
end
|
306
|
+
|
307
|
+
FileUtils.mv oldpath, newpath
|
308
|
+
|
309
|
+
# TODO: change paths for child templates
|
310
|
+
|
311
|
+
end
|
312
|
+
|
313
|
+
else
|
314
|
+
# file
|
315
|
+
|
316
|
+
# TODO: rename file
|
317
|
+
#self.make_basepath
|
318
|
+
|
319
|
+
end
|
320
|
+
|
321
|
+
end
|
322
|
+
|
323
|
+
def _before_destroy
|
324
|
+
if self.is_folder
|
325
|
+
|
326
|
+
# cannot delete not empty dir
|
327
|
+
if !self.folder_empty?
|
328
|
+
return false
|
329
|
+
end
|
330
|
+
|
331
|
+
# delete dir
|
332
|
+
folder_delete
|
333
|
+
|
334
|
+
else
|
335
|
+
# file
|
336
|
+
|
337
|
+
|
338
|
+
end
|
339
|
+
|
340
|
+
|
341
|
+
true
|
342
|
+
end
|
343
|
+
|
344
|
+
|
345
|
+
# create folders if necessary - NOT WORKING
|
346
|
+
def self.create_folders_tree(dirpath)
|
347
|
+
a = dirpath.split /\//
|
348
|
+
|
349
|
+
d = ''
|
350
|
+
parent_current = nil
|
351
|
+
prev_d = d
|
352
|
+
a.each do |s|
|
353
|
+
d = d + (d=='' ? '' : '/') +s
|
354
|
+
r = Template.where(is_folder: true, basepath: d).first
|
355
|
+
if r
|
356
|
+
parent_current = r
|
357
|
+
next
|
358
|
+
end
|
359
|
+
# create missing folder
|
360
|
+
path_new = File.basename(d)
|
361
|
+
basedirpath_new = prev_d
|
362
|
+
r = Template.create(is_folder: true, basename: path_new, basedirpath: basedirpath_new, title: path_new, parent: parent_current)
|
363
|
+
parent_current = r
|
364
|
+
|
365
|
+
prev_d = d
|
366
|
+
end
|
367
|
+
|
368
|
+
parent_current
|
369
|
+
|
370
|
+
end
|
371
|
+
|
372
|
+
|
373
|
+
#### folders
|
374
|
+
|
375
|
+
def folder_delete
|
376
|
+
dirpath = self.folder_fullpath
|
377
|
+
FileUtils.remove_dir(dirpath) if Dir.exists? dirpath
|
378
|
+
end
|
379
|
+
|
380
|
+
def folder_empty?
|
381
|
+
dirpath = self.folder_fullpath
|
382
|
+
if !Dir.exists? dirpath
|
383
|
+
return true
|
384
|
+
end
|
385
|
+
|
386
|
+
return Dir.entries(dirpath).size == 2
|
387
|
+
end
|
388
|
+
|
389
|
+
end
|
390
|
+
end
|