writefully 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +31 -0
- data/Rakefile +22 -0
- data/app/assets/javascripts/writefully/authorships.js +2 -0
- data/app/assets/javascripts/writefully/sessions.js +2 -0
- data/app/assets/javascripts/writefully/writefully/initializers/boot.coffee +6 -0
- data/app/assets/javascripts/writefully/writefully/initializers/manifest.coffee +28 -0
- data/app/assets/javascripts/writefully/writefully/initializers/setup.coffee +4 -0
- data/app/assets/javascripts/writefully/writefully/loader.coffee +6 -0
- data/app/assets/javascripts/writefully/writefully.coffee +8 -0
- data/app/assets/stylesheets/writefully/base.sass +23 -0
- data/app/assets/stylesheets/writefully/sessions.sass +9 -0
- data/app/assets/stylesheets/writefully/sites.sass +33 -0
- data/app/assets/stylesheets/writefully/writefully.sass +4 -0
- data/app/controllers/writefully/application_controller.rb +28 -0
- data/app/controllers/writefully/authorships_controller.rb +8 -0
- data/app/controllers/writefully/hooks_controller.rb +51 -0
- data/app/controllers/writefully/posts_controller.rb +21 -0
- data/app/controllers/writefully/sessions_controller.rb +47 -0
- data/app/controllers/writefully/sites_controller.rb +51 -0
- data/app/helpers/writefully/application_helper.rb +15 -0
- data/app/helpers/writefully/flash_helper.rb +31 -0
- data/app/helpers/writefully/posts_helper.rb +8 -0
- data/app/helpers/writefully/sites_helper.rb +21 -0
- data/app/models/writefully/authorship.rb +34 -0
- data/app/models/writefully/post.rb +23 -0
- data/app/models/writefully/site.rb +30 -0
- data/app/models/writefully/tag.rb +15 -0
- data/app/models/writefully/tagging.rb +6 -0
- data/app/views/layouts/writefully/application.html.erb +16 -0
- data/app/views/layouts/writefully/sessions.html.erb +16 -0
- data/app/views/writefully/application/_activeable_link_to.html.erb +5 -0
- data/app/views/writefully/application/_flash.html.erb +5 -0
- data/app/views/writefully/application/_navigation.html.erb +23 -0
- data/app/views/writefully/application/flash/_owner_exists.html.erb +0 -0
- data/app/views/writefully/application/flash/_signed_in.html.erb +0 -0
- data/app/views/writefully/application/flash/_signed_out.html.erb +0 -0
- data/app/views/writefully/posts/_not_published.html.erb +1 -0
- data/app/views/writefully/posts/_post.html.erb +14 -0
- data/app/views/writefully/posts/_published.html.erb +1 -0
- data/app/views/writefully/posts/index.html.erb +7 -0
- data/app/views/writefully/posts/show.html.erb +0 -0
- data/app/views/writefully/sessions/new.html.erb +7 -0
- data/app/views/writefully/sites/_empty.html.erb +0 -0
- data/app/views/writefully/sites/_form.html.erb +15 -0
- data/app/views/writefully/sites/_site.html.erb +16 -0
- data/app/views/writefully/sites/edit.html.erb +0 -0
- data/app/views/writefully/sites/flash/create/_error.html.erb +0 -0
- data/app/views/writefully/sites/flash/create/_success.html.erb +2 -0
- data/app/views/writefully/sites/healthy/_no.html.erb +3 -0
- data/app/views/writefully/sites/healthy/_yes.html.erb +3 -0
- data/app/views/writefully/sites/index.html.erb +14 -0
- data/app/views/writefully/sites/new.html.erb +7 -0
- data/app/views/writefully/sites/processing/_no.html.erb +3 -0
- data/app/views/writefully/sites/processing/_yes.html.erb +3 -0
- data/app/views/writefully/sites/show/_errors.html.erb +0 -0
- data/app/views/writefully/sites/show/_heading.html.erb +6 -0
- data/app/views/writefully/sites/show/_processing.html.erb +0 -0
- data/app/views/writefully/sites/show/_tabs.html.erb +5 -0
- data/app/views/writefully/sites/show.html.erb +3 -0
- data/bin/rails +12 -0
- data/bin/writefully +7 -0
- data/config/routes.rb +16 -0
- data/db/migrate/20140402091204_create_writefully_posts.rb +22 -0
- data/db/migrate/20140402091244_create_writefully_tags.rb +14 -0
- data/db/migrate/20140402091415_create_writefully_taggings.rb +10 -0
- data/db/migrate/20140402200330_create_writefully_authorships.rb +12 -0
- data/db/migrate/20140403181629_create_writefully_sites.rb +20 -0
- data/lib/sample/README.md +26 -0
- data/lib/sample/meta.yml +7 -0
- data/lib/sample/writefully.png +0 -0
- data/lib/tasks/writefully_tasks.rake +9 -0
- data/lib/writefully/asset.rb +33 -0
- data/lib/writefully/cli.rb +57 -0
- data/lib/writefully/content.rb +31 -0
- data/lib/writefully/engine.rb +25 -0
- data/lib/writefully/indices.rb +21 -0
- data/lib/writefully/news_agency.rb +8 -0
- data/lib/writefully/postable.rb +57 -0
- data/lib/writefully/process.rb +84 -0
- data/lib/writefully/source.rb +52 -0
- data/lib/writefully/storage.rb +33 -0
- data/lib/writefully/taxon.rb +28 -0
- data/lib/writefully/tools/dispatcher.rb +59 -0
- data/lib/writefully/tools/eraser.rb +0 -0
- data/lib/writefully/tools/hammer.rb +41 -0
- data/lib/writefully/tools/initializer.rb +38 -0
- data/lib/writefully/tools/pencil.rb +71 -0
- data/lib/writefully/tools/pigeon.rb +19 -0
- data/lib/writefully/tools/synchronizer.rb +24 -0
- data/lib/writefully/tools.rb +13 -0
- data/lib/writefully/version.rb +3 -0
- data/lib/writefully/workers/base_worker.rb +25 -0
- data/lib/writefully/workers/handyman.rb +44 -0
- data/lib/writefully/workers/helpers/handyman/builder.rb +17 -0
- data/lib/writefully/workers/helpers.rb +8 -0
- data/lib/writefully/workers/journalist.rb +23 -0
- data/lib/writefully/workers.rb +9 -0
- data/lib/writefully/workers_helpers.rb +7 -0
- data/lib/writefully.rb +77 -0
- data/scripts/initialize.sh +30 -0
- data/scripts/sync.sh +17 -0
- data/spec/controllers/writefully/hooks_controller_spec.rb +35 -0
- data/spec/controllers/writefully/posts_controller_spec.rb +46 -0
- data/spec/controllers/writefully/sites_controller_spec.rb +91 -0
- data/spec/dummy/Rakefile +8 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/models/playlist.rb +3 -0
- data/spec/dummy/app/models/post.rb +3 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config/application.rb +22 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +29 -0
- data/spec/dummy/config/environments/production.rb +80 -0
- data/spec/dummy/config/environments/test.rb +36 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +12 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/config/writefully.yml +9 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/content/codemy-net/posts/1-hash-selector-pattern/README.md +119 -0
- data/spec/dummy/content/codemy-net/posts/1-hash-selector-pattern/assets/hash-selector-cover.png +0 -0
- data/spec/dummy/content/codemy-net/posts/1-hash-selector-pattern/assets/hash-selector-icon.png +0 -0
- data/spec/dummy/content/codemy-net/posts/1-hash-selector-pattern/benchmark/selector.rb +77 -0
- data/spec/dummy/content/codemy-net/posts/1-hash-selector-pattern/meta.yml +7 -0
- data/spec/dummy/content/codemy-net/posts/2-rails-flash-partials/README.md +171 -0
- data/spec/dummy/content/codemy-net/posts/2-rails-flash-partials/assets/cover.png +0 -0
- data/spec/dummy/content/codemy-net/posts/2-rails-flash-partials/meta.yml +7 -0
- data/spec/dummy/db/schema.rb +89 -0
- data/spec/dummy/log/development.log +13946 -0
- data/spec/dummy/log/test.log +100164 -0
- data/spec/dummy/tmp/cache/assets/development/sass/77bc3b7f842c905df4dddb7e3ac7b7cf15d9035b/application.sassc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/77bc3b7f842c905df4dddb7e3ac7b7cf15d9035b/bootstrap.cssc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/77bc3b7f842c905df4dddb7e3ac7b7cf15d9035b/setups.sassc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sass/77bc3b7f842c905df4dddb7e3ac7b7cf15d9035b/writefully.sassc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/04641fdb653c0ff3c557033d87eb6a16 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/064b3076e29f54ea572ca43d6c5950cc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/0d2e79f7f8c9026d7d8a7f6dc63fb4a8 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/0f1c342384786865a6200cc3ed6234a3 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/13c3568b2854b103512b2658e6507d4b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/18eb9f12c7e8971e0e2fad29c85a8b8e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/18f8d9596e0fba3397539181f63befe1 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1977498f5af78beca26942a7c812b294 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1ae121eed970dfdb5f4f09953ade4de2 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1b5404b64386f619af12582a1a634574 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/22b701cb6ffd8eac83ec1bfc563b54cb +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2d27da60cfa2f1952c3aadd169ea2570 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2e33b23d27ad5b8771d09ed8a1435cf6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3063f229c5edc0e8a3d82d7bf78024de +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/31c84f37a0c92c38be6459f19997c981 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/320d61138ae0221b11c7e4ea0f3d53d3 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3355368d663ec5236287158290d6c297 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3df2d5c2f4f6b6d502c017346b915051 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/4596b288fc67fdb9037e06897d416879 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/47381977da0f1b2165bdbb09480ccff3 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/4aab863b927c65a4b9e70c43e4e6d482 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/4c0271d24537b8a24979e07bbd75956c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/4c16c5c88ae074d893e1de2ad787b031 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/51610d35f263eb68b1cf73737045113d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5af65427549750bdf60b3f06ce273b41 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/63958de32a7352bcfb139639ba2d4209 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/63f349e6a646ae0252d46e1816064e0c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/67ae1c504593279ebd6da7b6fdbe99b7 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/68e61e8d5ac667de89a4bf1e732cde0a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/69dfb59cc80e2c111bfbfc108371b27b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6d0103100e416966beba1039661e234e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/71ea75f9945cdb543e0dc44527fcd926 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/7556620a4f8405144dca74330e54608c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/76598a5aebf24a1b763f5b10ae223c15 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/7af8770b019b471931e4f6cb86027307 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/7b696db3b421aeaa1afd210b07db8aae +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/7ff072db2442371da6ee49c9b279efdc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/82b92bb7c88523dc617b3c0c877aeade +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8c388cf0035e064a06ae30a03d96b51b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/95703f30550e80a229dd0ec4a6ddc85c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/98ccb36ebbfc6f6ac684a05ad8543c01 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/9ad5688a6dad8d54658f492eb1fa07d6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/9b9ee2a899dd8b3bfa592fba44ebf8d2 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/9c48c31b831040e919db903d9edef2ab +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/9f9f72b9edf89242aada0d52dbc57635 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a0e14dd5894f94a561a349d40037db07 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a125c2261ecc9d800e450373950ea433 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a3999d8baf1b9ed61d91ea6bd5e42951 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a8b93e1f061f64547b92633c5bde6b13 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ad8f1428d5543a9fc4ed7a9e9526e40a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/adae8faa21b116471ec4285998d3f3cf +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/aea01e6a7f75a01b9f61f7e0430bd61b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b690c630e4500da8d405b10c5d827ac9 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b83537e814e13cf03642ccc3d90fda13 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ba4f054949cb1c1bea0fd796890fcb11 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/bccc085acd77705bf4cd104dbd5dbec3 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c0c44ab8b0b90fb0287ca1400731f920 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c1208bf8d0e9714161d8e6ae61781efc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c6dae51db325ad18ac445895075e66b5 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ca8c11b2ed33b38e8b65858a2ba66d6f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/ce5a98586efc888dc74dff9380760c33 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d0e440792b09f3cc258704d7850f0652 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d0e6d527077e64dc87dfa25abccd4dd3 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d10e06dee94ddaa562f7df319407bf18 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d1238ae38ca7b9522d86d67ee367223e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d2c2fff5893ce8979ca48bab1c6f1c3a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e1a679a58449aa2ee72eb4341d85b5d6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e8fafe37de58ddbf16ebaf5cdc988320 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f15276b8745ef08f03a61f6fabe0001f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f79e04c0583c4be5f17610f948bc7436 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f966462e6d5e859d5be8f52161d2f53b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f977be4be94ab364314f054e18c53742 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/23cfae14a65dc753e1ade92b6095067a45aad26f/bootstrap.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_alerts.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_badges.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_breadcrumbs.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_button-groups.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_buttons.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_carousel.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_close.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_code.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_component-animations.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_dropdowns.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_forms.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_glyphicons.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_grid.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_input-groups.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_jumbotron.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_labels.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_list-group.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_media.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_mixins.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_modals.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_navbar.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_navs.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_normalize.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_pager.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_pagination.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_panels.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_popovers.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_print.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_progress-bars.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_responsive-utilities.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_scaffolding.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_tables.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_thumbnails.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_tooltip.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_type.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_utilities.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_variables.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/6cd443894d18a18028b11ff7afc2188b8e6a0c6d/_wells.scssc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/77bc3b7f842c905df4dddb7e3ac7b7cf15d9035b/base.sassc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/77bc3b7f842c905df4dddb7e3ac7b7cf15d9035b/sessions.sassc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/77bc3b7f842c905df4dddb7e3ac7b7cf15d9035b/sites.sassc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sass/77bc3b7f842c905df4dddb7e3ac7b7cf15d9035b/writefully.sassc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/064b3076e29f54ea572ca43d6c5950cc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/0d2e79f7f8c9026d7d8a7f6dc63fb4a8 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/18eb9f12c7e8971e0e2fad29c85a8b8e +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/1977498f5af78beca26942a7c812b294 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/2d27da60cfa2f1952c3aadd169ea2570 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/2e33b23d27ad5b8771d09ed8a1435cf6 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/3063f229c5edc0e8a3d82d7bf78024de +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/31c84f37a0c92c38be6459f19997c981 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/3df2d5c2f4f6b6d502c017346b915051 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/4aab863b927c65a4b9e70c43e4e6d482 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/4c0271d24537b8a24979e07bbd75956c +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/4c16c5c88ae074d893e1de2ad787b031 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/63f349e6a646ae0252d46e1816064e0c +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/67ae1c504593279ebd6da7b6fdbe99b7 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/68e61e8d5ac667de89a4bf1e732cde0a +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/6cf5095a6f2a3e346267010d81431898 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/71ea75f9945cdb543e0dc44527fcd926 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/74d56087624f43b73234c3691a21203b +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/76598a5aebf24a1b763f5b10ae223c15 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/7af8770b019b471931e4f6cb86027307 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/7ff072db2442371da6ee49c9b279efdc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/82b92bb7c88523dc617b3c0c877aeade +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/8789652d56b500257c05b6b3370096a2 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/95703f30550e80a229dd0ec4a6ddc85c +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/98ccb36ebbfc6f6ac684a05ad8543c01 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/9ad5688a6dad8d54658f492eb1fa07d6 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/9b9ee2a899dd8b3bfa592fba44ebf8d2 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/9c48c31b831040e919db903d9edef2ab +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/9f9f72b9edf89242aada0d52dbc57635 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/a2398b853766dfb3e66e6709e65e0fe8 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/a8b93e1f061f64547b92633c5bde6b13 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/adae8faa21b116471ec4285998d3f3cf +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/b776b64154999147a7219e7ab2ec18c5 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/b83537e814e13cf03642ccc3d90fda13 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/bccc085acd77705bf4cd104dbd5dbec3 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/c1208bf8d0e9714161d8e6ae61781efc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d0e6d527077e64dc87dfa25abccd4dd3 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d10e06dee94ddaa562f7df319407bf18 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d1238ae38ca7b9522d86d67ee367223e +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d2c2fff5893ce8979ca48bab1c6f1c3a +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d743017d31a484ac9254192a452e4619 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/e1c18951e718ae5b0d527ddf0099a3b0 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/e1eb88bc099cda2e70c0a0ebc1e99665 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/e8fafe37de58ddbf16ebaf5cdc988320 +0 -0
- data/spec/features/writefully/sites_feature_spec.rb +27 -0
- data/spec/fixtures/writefully/authorships.yml +11 -0
- data/spec/fixtures/writefully/github_hook_test.json +4 -0
- data/spec/fixtures/writefully/github_member_add_hook.json +127 -0
- data/spec/fixtures/writefully/github_push_hook.json +94 -0
- data/spec/fixtures/writefully/posts.yml +14 -0
- data/spec/fixtures/writefully/sites.yml +10 -0
- data/spec/lib/writefully/asset_spec.rb +22 -0
- data/spec/lib/writefully/content_spec.rb +22 -0
- data/spec/lib/writefully/indices_spec.rb +17 -0
- data/spec/lib/writefully/postable_spec.rb +27 -0
- data/spec/lib/writefully/source_spec.rb +23 -0
- data/spec/lib/writefully/taxon_spec.rb +27 -0
- data/spec/lib/writefully/tools/dispatcher_spec.rb +75 -0
- data/spec/lib/writefully/tools/hammer_spec.rb +78 -0
- data/spec/lib/writefully/tools/initializer_spec.rb +18 -0
- data/spec/lib/writefully/tools/pencil_spec.rb +72 -0
- data/spec/lib/writefully/tools/synchronizer_spec.rb +17 -0
- data/spec/lib/writefully/workers/handyman_spec.rb +50 -0
- data/spec/lib/writefully/workers/journalist_spec.rb +30 -0
- data/spec/spec_helper.rb +56 -0
- metadata +903 -0
data/lib/writefully.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'hashie'
|
3
|
+
require 'github_api'
|
4
|
+
require 'activerecord-import'
|
5
|
+
|
6
|
+
require 'connection_pool'
|
7
|
+
require 'redis'
|
8
|
+
require 'redis-namespace'
|
9
|
+
|
10
|
+
require 'writefully/engine'
|
11
|
+
require 'writefully/storage'
|
12
|
+
|
13
|
+
module Writefully
|
14
|
+
SCOPES = %w(repo public_repo user write:repo_hook)
|
15
|
+
|
16
|
+
class << self
|
17
|
+
|
18
|
+
def options
|
19
|
+
@_options ||= config_from(config_yml)
|
20
|
+
end
|
21
|
+
|
22
|
+
def redis
|
23
|
+
r = Redis.new(host: 'localhost', port: 6379)
|
24
|
+
@_redis ||= ConnectionPool.new(size: 5, timeout: 5) do
|
25
|
+
Redis::Namespace.new(:"#{env}:writefully", redis: r)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def add_job worker, message
|
30
|
+
Writefully.redis.with { |c| c.sadd "jobs", convert_job(worker, message) }
|
31
|
+
end
|
32
|
+
|
33
|
+
def convert_job worker, message
|
34
|
+
Marshal.dump({worker: worker, message: message})
|
35
|
+
end
|
36
|
+
|
37
|
+
def env
|
38
|
+
ENV["RACK_ENV"] || ENV["RAILS_ENV"] || 'development'
|
39
|
+
end
|
40
|
+
|
41
|
+
def github_app
|
42
|
+
@_github_app ||= Github.new(client_id: options[:github_client],
|
43
|
+
client_secret: options[:github_secret])
|
44
|
+
end
|
45
|
+
|
46
|
+
def logger
|
47
|
+
@logger ||= Logger.new(log_location)
|
48
|
+
end
|
49
|
+
|
50
|
+
def log_location
|
51
|
+
env == 'development' ? STDOUT : Writefully.options[:logfile]
|
52
|
+
end
|
53
|
+
|
54
|
+
def db_config
|
55
|
+
YAML::load(ERB.new(IO.read(File.join(options[:app_directory], 'config', 'database.yml'))).result)[env]
|
56
|
+
end
|
57
|
+
|
58
|
+
def config_from(path = nil)
|
59
|
+
YAML::load(ERB.new(IO.read(path)).result)[env]
|
60
|
+
rescue Errno::ENOENT
|
61
|
+
$stdout.puts "config/writefully.yml does not exist"
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
def config_yml
|
66
|
+
Rails.root.join('config', 'writefully.yml') if defined?(Rails)
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
require 'writefully/taxon'
|
73
|
+
require 'writefully/asset'
|
74
|
+
require 'writefully/source'
|
75
|
+
require 'writefully/postable'
|
76
|
+
require 'writefully/indices'
|
77
|
+
require 'writefully/content'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
set -o nounset
|
4
|
+
set -o errexit
|
5
|
+
|
6
|
+
ContentFolder="$1"
|
7
|
+
SiteName="$2"
|
8
|
+
OriginRemote="$3"
|
9
|
+
|
10
|
+
SitePath="$1/$2"
|
11
|
+
|
12
|
+
# setup site / content / sample / assets
|
13
|
+
[ -d $SitePath ] || mkdir -p $SitePath
|
14
|
+
|
15
|
+
# setup git repo for site path
|
16
|
+
git init $SitePath
|
17
|
+
|
18
|
+
# go into the site directory
|
19
|
+
cd $SitePath
|
20
|
+
|
21
|
+
# add remote origin
|
22
|
+
git remote add origin $OriginRemote
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
|
data/scripts/sync.sh
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
set -o nounset
|
4
|
+
set -o errexit
|
5
|
+
|
6
|
+
ContentFolder="$1"
|
7
|
+
SiteName="$2"
|
8
|
+
|
9
|
+
SitePath="$1/$2"
|
10
|
+
|
11
|
+
# cd into the site content directory
|
12
|
+
cd $SitePath
|
13
|
+
|
14
|
+
# sync the changes from origin
|
15
|
+
git fetch origin master
|
16
|
+
git reset --hard FETCH_HEAD
|
17
|
+
git clean -df
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Writefully
|
4
|
+
describe HooksController do
|
5
|
+
routes { Writefully::Engine.routes }
|
6
|
+
|
7
|
+
let(:github_push_hook) { open(File.dirname(__FILE__) + "/../../fixtures/writefully/github_push_hook.json").read }
|
8
|
+
let(:github_member_add_hook) { open(File.dirname(__FILE__) + "/../../fixtures/writefully/github_member_add_hook.json").read }
|
9
|
+
|
10
|
+
before do
|
11
|
+
controller.stub(:check_signature).and_return(true)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should call 'push'" do
|
15
|
+
request.headers["X-Github-Event"] = 'push'
|
16
|
+
controller.should_receive(:push).once
|
17
|
+
post :create, github_push_hook
|
18
|
+
response.should be_success
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should call 'member'" do
|
22
|
+
request.headers["X-Github-Event"] = 'member'
|
23
|
+
controller.should_receive(:member).once
|
24
|
+
post :create, github_member_add_hook
|
25
|
+
response.should be_success
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should add new authorship" do
|
29
|
+
request.headers["X-Github-Event"] = 'member'
|
30
|
+
expect {
|
31
|
+
post :create, github_member_add_hook
|
32
|
+
}.to change(Authorship, :count).by(1)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Writefully
|
4
|
+
describe PostsController do
|
5
|
+
routes { Writefully::Engine.routes }
|
6
|
+
|
7
|
+
fixtures :"writefully/sites"
|
8
|
+
fixtures :"writefully/posts"
|
9
|
+
fixtures :"writefully/authorships"
|
10
|
+
|
11
|
+
let(:owner) { writefully_authorships(:wf_owner_1) }
|
12
|
+
let(:site) { writefully_sites(:codemy_net) }
|
13
|
+
let(:post_1) { writefully_posts(:hash_selector_pattern) }
|
14
|
+
|
15
|
+
let(:some_post) { writefully_posts(:blah_post) }
|
16
|
+
|
17
|
+
before do
|
18
|
+
session[:wf_authorship_id] = owner.id
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "#index" do
|
22
|
+
it "should be success" do
|
23
|
+
get :index, site_id: site.slug
|
24
|
+
response.should be_success
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should assign correct posts" do
|
28
|
+
get :index, site_id: site.slug
|
29
|
+
assigns[:posts].should include post_1
|
30
|
+
assigns[:posts].should_not include some_post
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "#show" do
|
35
|
+
it "should be success" do
|
36
|
+
get :show, site_id: site.slug, id: post_1.id
|
37
|
+
response.should be_success
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should assign the correct post" do
|
41
|
+
get :show, site_id: site.slug, id: post_1.id
|
42
|
+
assigns[:post].should eq post_1
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Writefully
|
4
|
+
describe SitesController do
|
5
|
+
routes { Writefully::Engine.routes }
|
6
|
+
|
7
|
+
fixtures :"writefully/sites"
|
8
|
+
fixtures :"writefully/posts"
|
9
|
+
fixtures :"writefully/authorships"
|
10
|
+
|
11
|
+
let(:owner) { writefully_authorships(:wf_owner_1) }
|
12
|
+
let(:site) { writefully_sites(:codemy_net) }
|
13
|
+
let(:some_site) { writefully_sites(:some_site) }
|
14
|
+
|
15
|
+
before do
|
16
|
+
session[:wf_authorship_id] = owner.id
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "#index" do
|
20
|
+
context "when user has sites" do
|
21
|
+
it "should be success" do
|
22
|
+
get :index
|
23
|
+
response.should be_success
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should assign correct sites" do
|
27
|
+
get :index
|
28
|
+
assigns[:sites].should include site
|
29
|
+
assigns[:sites].should_not include some_site
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context "when user doesn't have any site" do
|
34
|
+
let(:owner) { writefully_authorships(:wf_owner_2) }
|
35
|
+
|
36
|
+
it "should be redirect" do
|
37
|
+
get :index
|
38
|
+
response.should redirect_to(new_site_path)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "#show" do
|
44
|
+
it "should be redirect when no tab specified" do
|
45
|
+
get :show, id: site.slug
|
46
|
+
response.should redirect_to(site_posts_path(site))
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should be success when correct tab is specified" do
|
50
|
+
get :show, id: site.slug, tab: 'processing'
|
51
|
+
response.should be_success
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should be redirect when wrong tab is specified" do
|
55
|
+
get :show, id: site.slug, tab: 'weird'
|
56
|
+
response.should redirect_to(site_posts_path(site))
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe "#new" do
|
61
|
+
it "should be success" do
|
62
|
+
get :new
|
63
|
+
response.should be_success
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe "#edit" do
|
68
|
+
it "should be success" do
|
69
|
+
get :edit, id: site.slug
|
70
|
+
response.should be_success
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe "#create" do
|
75
|
+
before do
|
76
|
+
Site.any_instance.stub(:setup_repository).and_return(true)
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should create new site" do
|
80
|
+
expect {
|
81
|
+
post :create, site: { name: "New Site", domain: "http://www.newsite.com" }
|
82
|
+
}.to change(Site, :count).by(1)
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should be redirect" do
|
86
|
+
post :create, site: { name: "New Site", domain: "http://www.newsite.com" }
|
87
|
+
response.should be_redirect
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
data/spec/dummy/Rakefile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Dummy</title>
|
5
|
+
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
|
6
|
+
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
|
7
|
+
<%= csrf_meta_tags %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<%= yield %>
|
12
|
+
|
13
|
+
</body>
|
14
|
+
</html>
|
data/spec/dummy/bin/rake
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require File.expand_path('../boot', __FILE__)
|
2
|
+
|
3
|
+
require 'rails/all'
|
4
|
+
|
5
|
+
Bundler.require(*Rails.groups)
|
6
|
+
require "writefully"
|
7
|
+
|
8
|
+
module Dummy
|
9
|
+
class Application < Rails::Application
|
10
|
+
# Settings in config/environments/* take precedence over those specified here.
|
11
|
+
# Application configuration should go into files in config/initializers
|
12
|
+
# -- all .rb files in that directory are automatically loaded.
|
13
|
+
|
14
|
+
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
15
|
+
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
16
|
+
# config.time_zone = 'Central Time (US & Canada)'
|
17
|
+
|
18
|
+
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
19
|
+
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
20
|
+
# config.i18n.default_locale = :de
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# SQLite version 3.x
|
2
|
+
# gem install sqlite3
|
3
|
+
#
|
4
|
+
# Ensure the SQLite 3 gem is defined in your Gemfile
|
5
|
+
# gem 'sqlite3'
|
6
|
+
development:
|
7
|
+
adapter: postgresql
|
8
|
+
database: writefully_dummy_development
|
9
|
+
pool: 25
|
10
|
+
host: localhost
|
11
|
+
username:
|
12
|
+
password:
|
13
|
+
|
14
|
+
# Warning: The database defined as "test" will be erased and
|
15
|
+
# re-generated from your development database when you run "rake".
|
16
|
+
# Do not set this db to the same as development or production.
|
17
|
+
test:
|
18
|
+
adapter: postgresql
|
19
|
+
database: writefully_dummy_test
|
20
|
+
pool: 25
|
21
|
+
host: localhost
|
22
|
+
username:
|
23
|
+
password:
|
24
|
+
|
25
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
Dummy::Application.configure do
|
2
|
+
# Settings specified here will take precedence over those in config/application.rb.
|
3
|
+
|
4
|
+
# In the development environment your application's code is reloaded on
|
5
|
+
# every request. This slows down response time but is perfect for development
|
6
|
+
# since you don't have to restart the web server when you make code changes.
|
7
|
+
config.cache_classes = false
|
8
|
+
|
9
|
+
# Do not eager load code on boot.
|
10
|
+
config.eager_load = false
|
11
|
+
|
12
|
+
# Show full error reports and disable caching.
|
13
|
+
config.consider_all_requests_local = true
|
14
|
+
config.action_controller.perform_caching = false
|
15
|
+
|
16
|
+
# Don't care if the mailer can't send.
|
17
|
+
config.action_mailer.raise_delivery_errors = false
|
18
|
+
|
19
|
+
# Print deprecation notices to the Rails logger.
|
20
|
+
config.active_support.deprecation = :log
|
21
|
+
|
22
|
+
# Raise an error on page load if there are pending migrations
|
23
|
+
config.active_record.migration_error = :page_load
|
24
|
+
|
25
|
+
# Debug mode disables concatenation and preprocessing of assets.
|
26
|
+
# This option may cause significant delays in view rendering with a large
|
27
|
+
# number of complex assets.
|
28
|
+
config.assets.debug = true
|
29
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
Dummy::Application.configure do
|
2
|
+
# Settings specified here will take precedence over those in config/application.rb.
|
3
|
+
|
4
|
+
# Code is not reloaded between requests.
|
5
|
+
config.cache_classes = true
|
6
|
+
|
7
|
+
# Eager load code on boot. This eager loads most of Rails and
|
8
|
+
# your application in memory, allowing both thread web servers
|
9
|
+
# and those relying on copy on write to perform better.
|
10
|
+
# Rake tasks automatically ignore this option for performance.
|
11
|
+
config.eager_load = true
|
12
|
+
|
13
|
+
# Full error reports are disabled and caching is turned on.
|
14
|
+
config.consider_all_requests_local = false
|
15
|
+
config.action_controller.perform_caching = true
|
16
|
+
|
17
|
+
# Enable Rack::Cache to put a simple HTTP cache in front of your application
|
18
|
+
# Add `rack-cache` to your Gemfile before enabling this.
|
19
|
+
# For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
|
20
|
+
# config.action_dispatch.rack_cache = true
|
21
|
+
|
22
|
+
# Disable Rails's static asset server (Apache or nginx will already do this).
|
23
|
+
config.serve_static_assets = false
|
24
|
+
|
25
|
+
# Compress JavaScripts and CSS.
|
26
|
+
config.assets.js_compressor = :uglifier
|
27
|
+
# config.assets.css_compressor = :sass
|
28
|
+
|
29
|
+
# Do not fallback to assets pipeline if a precompiled asset is missed.
|
30
|
+
config.assets.compile = false
|
31
|
+
|
32
|
+
# Generate digests for assets URLs.
|
33
|
+
config.assets.digest = true
|
34
|
+
|
35
|
+
# Version of your assets, change this if you want to expire all your assets.
|
36
|
+
config.assets.version = '1.0'
|
37
|
+
|
38
|
+
# Specifies the header that your server uses for sending files.
|
39
|
+
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
|
40
|
+
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
|
41
|
+
|
42
|
+
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
43
|
+
# config.force_ssl = true
|
44
|
+
|
45
|
+
# Set to :debug to see everything in the log.
|
46
|
+
config.log_level = :info
|
47
|
+
|
48
|
+
# Prepend all log lines with the following tags.
|
49
|
+
# config.log_tags = [ :subdomain, :uuid ]
|
50
|
+
|
51
|
+
# Use a different logger for distributed setups.
|
52
|
+
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
|
53
|
+
|
54
|
+
# Use a different cache store in production.
|
55
|
+
# config.cache_store = :mem_cache_store
|
56
|
+
|
57
|
+
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
58
|
+
# config.action_controller.asset_host = "http://assets.example.com"
|
59
|
+
|
60
|
+
# Precompile additional assets.
|
61
|
+
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
|
62
|
+
# config.assets.precompile += %w( search.js )
|
63
|
+
|
64
|
+
# Ignore bad email addresses and do not raise email delivery errors.
|
65
|
+
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
|
66
|
+
# config.action_mailer.raise_delivery_errors = false
|
67
|
+
|
68
|
+
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
|
69
|
+
# the I18n.default_locale when a translation can not be found).
|
70
|
+
config.i18n.fallbacks = true
|
71
|
+
|
72
|
+
# Send deprecation notices to registered listeners.
|
73
|
+
config.active_support.deprecation = :notify
|
74
|
+
|
75
|
+
# Disable automatic flushing of the log to improve performance.
|
76
|
+
# config.autoflush_log = false
|
77
|
+
|
78
|
+
# Use default logging formatter so that PID and timestamp are not suppressed.
|
79
|
+
config.log_formatter = ::Logger::Formatter.new
|
80
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
Dummy::Application.configure do
|
2
|
+
# Settings specified here will take precedence over those in config/application.rb.
|
3
|
+
|
4
|
+
# The test environment is used exclusively to run your application's
|
5
|
+
# test suite. You never need to work with it otherwise. Remember that
|
6
|
+
# your test database is "scratch space" for the test suite and is wiped
|
7
|
+
# and recreated between test runs. Don't rely on the data there!
|
8
|
+
config.cache_classes = true
|
9
|
+
|
10
|
+
# Do not eager load code on boot. This avoids loading your whole application
|
11
|
+
# just for the purpose of running a single test. If you are using a tool that
|
12
|
+
# preloads Rails for running tests, you may have to set it to true.
|
13
|
+
config.eager_load = false
|
14
|
+
|
15
|
+
# Configure static asset server for tests with Cache-Control for performance.
|
16
|
+
config.serve_static_assets = true
|
17
|
+
config.static_cache_control = "public, max-age=3600"
|
18
|
+
|
19
|
+
# Show full error reports and disable caching.
|
20
|
+
config.consider_all_requests_local = true
|
21
|
+
config.action_controller.perform_caching = false
|
22
|
+
|
23
|
+
# Raise exceptions instead of rendering exception templates.
|
24
|
+
config.action_dispatch.show_exceptions = false
|
25
|
+
|
26
|
+
# Disable request forgery protection in test environment.
|
27
|
+
config.action_controller.allow_forgery_protection = false
|
28
|
+
|
29
|
+
# Tell Action Mailer not to deliver emails to the real world.
|
30
|
+
# The :test delivery method accumulates sent emails in the
|
31
|
+
# ActionMailer::Base.deliveries array.
|
32
|
+
config.action_mailer.delivery_method = :test
|
33
|
+
|
34
|
+
# Print deprecation notices to the stderr.
|
35
|
+
config.active_support.deprecation = :stderr
|
36
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
|
4
|
+
# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
|
5
|
+
|
6
|
+
# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
|
7
|
+
# Rails.backtrace_cleaner.remove_silencers!
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
# Add new inflection rules using the following format. Inflections
|
4
|
+
# are locale specific, and you may define rules for as many different
|
5
|
+
# locales as you wish. All of these examples are active by default:
|
6
|
+
# ActiveSupport::Inflector.inflections(:en) do |inflect|
|
7
|
+
# inflect.plural /^(ox)$/i, '\1en'
|
8
|
+
# inflect.singular /^(ox)en/i, '\1'
|
9
|
+
# inflect.irregular 'person', 'people'
|
10
|
+
# inflect.uncountable %w( fish sheep )
|
11
|
+
# end
|
12
|
+
|
13
|
+
# These inflection rules are supported but not enabled by default:
|
14
|
+
# ActiveSupport::Inflector.inflections(:en) do |inflect|
|
15
|
+
# inflect.acronym 'RESTful'
|
16
|
+
# end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
# Your secret key is used for verifying the integrity of signed cookies.
|
4
|
+
# If you change this key, all old signed cookies will become invalid!
|
5
|
+
|
6
|
+
# Make sure the secret is at least 30 characters and all random,
|
7
|
+
# no regular words or you'll be exposed to dictionary attacks.
|
8
|
+
# You can use `rake secret` to generate a secure secret key.
|
9
|
+
|
10
|
+
# Make sure your secret_key_base is kept private
|
11
|
+
# if you're sharing your code publicly.
|
12
|
+
Dummy::Application.config.secret_key_base = '321b64e54a3a9581d60217742983350fceebc772691e66252fa3ef314ea81590c49f743dab56e6e7ad95791c7d428d010d15853012a8fb509040aee5f73c5798'
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
# This file contains settings for ActionController::ParamsWrapper which
|
4
|
+
# is enabled by default.
|
5
|
+
|
6
|
+
# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
|
7
|
+
ActiveSupport.on_load(:action_controller) do
|
8
|
+
wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
|
9
|
+
end
|
10
|
+
|
11
|
+
# To enable root element in JSON for ActiveRecord objects.
|
12
|
+
# ActiveSupport.on_load(:active_record) do
|
13
|
+
# self.include_root_in_json = true
|
14
|
+
# end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Files in the config/locales directory are used for internationalization
|
2
|
+
# and are automatically loaded by Rails. If you want to use locales other
|
3
|
+
# than English, add the necessary files in this directory.
|
4
|
+
#
|
5
|
+
# To use the locales, use `I18n.t`:
|
6
|
+
#
|
7
|
+
# I18n.t 'hello'
|
8
|
+
#
|
9
|
+
# In views, this is aliased to just `t`:
|
10
|
+
#
|
11
|
+
# <%= t('hello') %>
|
12
|
+
#
|
13
|
+
# To use a different locale, set it with `I18n.locale`:
|
14
|
+
#
|
15
|
+
# I18n.locale = :es
|
16
|
+
#
|
17
|
+
# This would use the information in config/locales/es.yml.
|
18
|
+
#
|
19
|
+
# To learn more, please read the Rails Internationalization guide
|
20
|
+
# available at http://guides.rubyonrails.org/i18n.html.
|
21
|
+
|
22
|
+
en:
|
23
|
+
hello: "Hello world"
|