futurism 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +86 -84
  3. data/README.md +26 -0
  4. data/app/assets/javascripts/futurism.min.js.map +1 -1
  5. data/app/assets/javascripts/futurism.umd.min.js.map +1 -1
  6. data/futurism.gemspec +0 -3
  7. data/futurism.gemspec~ +1 -1
  8. data/lib/futurism/engine.rb +4 -0
  9. data/lib/futurism/helpers.rb +5 -5
  10. data/lib/futurism/options_transformer.rb +1 -1
  11. data/lib/futurism/resolver/controller/instrumentation.rb +33 -0
  12. data/lib/futurism/resolver/controller/renderer.rb +5 -1
  13. data/lib/futurism/resolver/resources.rb +3 -3
  14. data/lib/futurism/version.rb +1 -1
  15. data/lib/futurism.rb +11 -3
  16. data/package.json +1 -1
  17. data/package.json~ +2 -2
  18. data/yarn.lock +61 -21
  19. metadata +5 -94
  20. data/test/cable/channel_test.rb +0 -319
  21. data/test/dummy/app/channels/application_cable/channel.rb +0 -4
  22. data/test/dummy/app/channels/application_cable/connection.rb +0 -4
  23. data/test/dummy/app/controllers/application_controller.rb +0 -2
  24. data/test/dummy/app/controllers/home_controller.rb +0 -6
  25. data/test/dummy/app/controllers/posts_controller.rb +0 -59
  26. data/test/dummy/app/helpers/application_helper.rb +0 -2
  27. data/test/dummy/app/helpers/posts_helper.rb +0 -2
  28. data/test/dummy/app/jobs/application_job.rb +0 -7
  29. data/test/dummy/app/models/action_item.rb +0 -2
  30. data/test/dummy/app/models/application_record.rb +0 -3
  31. data/test/dummy/app/models/post.rb +0 -2
  32. data/test/dummy/config/application.rb +0 -29
  33. data/test/dummy/config/boot.rb +0 -5
  34. data/test/dummy/config/environment.rb +0 -5
  35. data/test/dummy/config/environments/development.rb +0 -40
  36. data/test/dummy/config/environments/production.rb +0 -94
  37. data/test/dummy/config/environments/test.rb +0 -39
  38. data/test/dummy/config/initializers/application_controller_renderer.rb +0 -8
  39. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  40. data/test/dummy/config/initializers/content_security_policy.rb +0 -28
  41. data/test/dummy/config/initializers/cookies_serializer.rb +0 -5
  42. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  43. data/test/dummy/config/initializers/inflections.rb +0 -16
  44. data/test/dummy/config/initializers/mime_types.rb +0 -4
  45. data/test/dummy/config/initializers/wrap_parameters.rb +0 -9
  46. data/test/dummy/config/puma.rb +0 -38
  47. data/test/dummy/config/routes.rb +0 -12
  48. data/test/dummy/config/spring.rb +0 -6
  49. data/test/dummy/db/migrate/20200711122838_create_posts.rb +0 -9
  50. data/test/dummy/db/migrate/2021042923813_create_action_items.rb +0 -9
  51. data/test/dummy/db/schema.rb +0 -27
  52. data/test/futurism_test.rb +0 -28
  53. data/test/helper/helper_test.rb +0 -206
  54. data/test/integration/navigation_test.rb +0 -7
  55. data/test/resolver/controller/renderer_test.rb +0 -120
  56. data/test/resolver/controller_test.rb +0 -26
  57. data/test/test_helper.rb +0 -14
@@ -1,59 +0,0 @@
1
- class PostsController < ApplicationController
2
- before_action :set_post, only: [:show, :edit, :update, :destroy]
3
-
4
- # GET /posts
5
- def index
6
- @posts = Post.all
7
- end
8
-
9
- # GET /posts/1
10
- def show
11
- end
12
-
13
- # GET /posts/new
14
- def new
15
- @post = Post.new
16
- end
17
-
18
- # GET /posts/1/edit
19
- def edit
20
- end
21
-
22
- # POST /posts
23
- def create
24
- @post = Post.new(post_params)
25
-
26
- if @post.save
27
- redirect_to @post, notice: "Post was successfully created."
28
- else
29
- render :new
30
- end
31
- end
32
-
33
- # PATCH/PUT /posts/1
34
- def update
35
- if @post.update(post_params)
36
- redirect_to @post, notice: "Post was successfully updated."
37
- else
38
- render :edit
39
- end
40
- end
41
-
42
- # DELETE /posts/1
43
- def destroy
44
- @post.destroy
45
- redirect_to posts_url, notice: "Post was successfully destroyed."
46
- end
47
-
48
- private
49
-
50
- # Use callbacks to share common setup or constraints between actions.
51
- def set_post
52
- @post = Post.find(params[:id])
53
- end
54
-
55
- # Only allow a trusted parameter "white list" through.
56
- def post_params
57
- params.require(:post).permit(:title)
58
- end
59
- end
@@ -1,2 +0,0 @@
1
- module ApplicationHelper
2
- end
@@ -1,2 +0,0 @@
1
- module PostsHelper
2
- end
@@ -1,7 +0,0 @@
1
- class ApplicationJob < ActiveJob::Base
2
- # Automatically retry jobs that encountered a deadlock
3
- # retry_on ActiveRecord::Deadlocked
4
-
5
- # Most jobs are safe to ignore if the underlying records are no longer available
6
- # discard_on ActiveJob::DeserializationError
7
- end
@@ -1,2 +0,0 @@
1
- class ActionItem < ApplicationRecord
2
- end
@@ -1,3 +0,0 @@
1
- class ApplicationRecord < ActiveRecord::Base
2
- self.abstract_class = true
3
- end
@@ -1,2 +0,0 @@
1
- class Post < ApplicationRecord
2
- end
@@ -1,29 +0,0 @@
1
- require_relative "boot"
2
-
3
- require "rails"
4
- # Pick the frameworks you want:
5
- require "active_model/railtie"
6
- require "active_job/railtie"
7
- require "active_record/railtie"
8
- # require "active_storage/engine"
9
- require "action_controller/railtie"
10
- # require "action_mailer/railtie"
11
- require "action_view/railtie"
12
- require "action_cable/engine"
13
- # require "sprockets/railtie"
14
- require "rails/test_unit/railtie"
15
-
16
- Bundler.require(*Rails.groups)
17
- require "futurism"
18
-
19
- module Dummy
20
- class Application < Rails::Application
21
- # Initialize configuration defaults for originally generated Rails version.
22
- config.load_defaults Rails::VERSION::MAJOR + (Rails::VERSION::MINOR / 10.0)
23
-
24
- # Settings in config/environments/* take precedence over those specified here.
25
- # Application configuration can go into files in config/initializers
26
- # -- all .rb files in that directory are automatically loaded after loading
27
- # the framework and any gems in your application.
28
- end
29
- end
@@ -1,5 +0,0 @@
1
- # Set up gems listed in the Gemfile.
2
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../Gemfile", __dir__)
3
-
4
- require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"])
5
- $LOAD_PATH.unshift File.expand_path("../../../lib", __dir__)
@@ -1,5 +0,0 @@
1
- # Load the Rails application.
2
- require_relative "application"
3
-
4
- # Initialize the Rails application.
5
- Rails.application.initialize!
@@ -1,40 +0,0 @@
1
- Rails.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.
13
- config.consider_all_requests_local = true
14
-
15
- # Enable/disable caching. By default caching is disabled.
16
- # Run rails dev:cache to toggle caching.
17
- if Rails.root.join("tmp", "caching-dev.txt").exist?
18
- config.action_controller.perform_caching = true
19
- config.action_controller.enable_fragment_cache_logging = true
20
-
21
- config.cache_store = :memory_store
22
- config.public_file_server.headers = {
23
- "Cache-Control" => "public, max-age=#{2.days.to_i}"
24
- }
25
- else
26
- config.action_controller.perform_caching = false
27
-
28
- config.cache_store = :null_store
29
- end
30
-
31
- # Print deprecation notices to the Rails logger.
32
- config.active_support.deprecation = :log
33
-
34
- # Raises error for missing translations.
35
- # config.action_view.raise_on_missing_translations = true
36
-
37
- # Use an evented file watcher to asynchronously detect changes in source code,
38
- # routes, locales, etc. This feature depends on the listen gem.
39
- # config.file_watcher = ActiveSupport::EventedFileUpdateChecker
40
- end
@@ -1,94 +0,0 @@
1
- Rails.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 threaded 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
- # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]
18
- # or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
19
- # config.require_master_key = true
20
-
21
- # Disable serving static files from the `/public` folder by default since
22
- # Apache or NGINX already handles this.
23
- config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present?
24
-
25
- # Enable serving of images, stylesheets, and JavaScripts from an asset server.
26
- # config.action_controller.asset_host = 'http://assets.example.com'
27
-
28
- # Specifies the header that your server uses for sending files.
29
- # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
30
- # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
31
-
32
- # Mount Action Cable outside main process or domain.
33
- # config.action_cable.mount_path = nil
34
- # config.action_cable.url = 'wss://example.com/cable'
35
- # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
36
-
37
- # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
38
- # config.force_ssl = true
39
-
40
- # Use the lowest log level to ensure availability of diagnostic information
41
- # when problems arise.
42
- config.log_level = :debug
43
-
44
- # Prepend all log lines with the following tags.
45
- config.log_tags = [:request_id]
46
-
47
- # Use a different cache store in production.
48
- # config.cache_store = :mem_cache_store
49
-
50
- # Use a real queuing backend for Active Job (and separate queues per environment).
51
- # config.active_job.queue_adapter = :resque
52
- # config.active_job.queue_name_prefix = "dummy_production"
53
-
54
- # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
55
- # the I18n.default_locale when a translation cannot be found).
56
- config.i18n.fallbacks = true
57
-
58
- # Send deprecation notices to registered listeners.
59
- config.active_support.deprecation = :notify
60
-
61
- # Use default logging formatter so that PID and timestamp are not suppressed.
62
- config.log_formatter = ::Logger::Formatter.new
63
-
64
- # Use a different logger for distributed setups.
65
- # require 'syslog/logger'
66
- # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
67
-
68
- if ENV["RAILS_LOG_TO_STDOUT"].present?
69
- logger = ActiveSupport::Logger.new(STDOUT)
70
- logger.formatter = config.log_formatter
71
- config.logger = ActiveSupport::TaggedLogging.new(logger)
72
- end
73
-
74
- # Inserts middleware to perform automatic connection switching.
75
- # The `database_selector` hash is used to pass options to the DatabaseSelector
76
- # middleware. The `delay` is used to determine how long to wait after a write
77
- # to send a subsequent read to the primary.
78
- #
79
- # The `database_resolver` class is used by the middleware to determine which
80
- # database is appropriate to use based on the time delay.
81
- #
82
- # The `database_resolver_context` class is used by the middleware to set
83
- # timestamps for the last write to the primary. The resolver uses the context
84
- # class timestamps to determine how long to wait before reading from the
85
- # replica.
86
- #
87
- # By default Rails will store a last write timestamp in the session. The
88
- # DatabaseSelector middleware is designed as such you can define your own
89
- # strategy for connection switching and pass that into the middleware through
90
- # these configuration options.
91
- # config.active_record.database_selector = { delay: 2.seconds }
92
- # config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver
93
- # config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session
94
- end
@@ -1,39 +0,0 @@
1
- # The test environment is used exclusively to run your application's
2
- # test suite. You never need to work with it otherwise. Remember that
3
- # your test database is "scratch space" for the test suite and is wiped
4
- # and recreated between test runs. Don't rely on the data there!
5
-
6
- Rails.application.configure do
7
- # Settings specified here will take precedence over those in config/application.rb.
8
-
9
- config.cache_classes = false
10
- config.action_view.cache_template_loading = true
11
-
12
- # Do not eager load code on boot. This avoids loading your whole application
13
- # just for the purpose of running a single test. If you are using a tool that
14
- # preloads Rails for running tests, you may have to set it to true.
15
- config.eager_load = false
16
-
17
- # Configure public file server for tests with Cache-Control for performance.
18
- config.public_file_server.enabled = true
19
- config.public_file_server.headers = {
20
- "Cache-Control" => "public, max-age=#{1.hour.to_i}"
21
- }
22
-
23
- # Show full error reports and disable caching.
24
- config.consider_all_requests_local = true
25
- config.action_controller.perform_caching = false
26
- config.cache_store = :null_store
27
-
28
- # Raise exceptions instead of rendering exception templates.
29
- config.action_dispatch.show_exceptions = false
30
-
31
- # Disable request forgery protection in test environment.
32
- config.action_controller.allow_forgery_protection = false
33
-
34
- # Print deprecation notices to the stderr.
35
- config.active_support.deprecation = :stderr
36
-
37
- # Raises error for missing translations.
38
- # config.action_view.raise_on_missing_translations = true
39
- end
@@ -1,8 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # ActiveSupport::Reloader.to_prepare do
4
- # ApplicationController.renderer.defaults.merge!(
5
- # http_host: 'example.org',
6
- # https: false
7
- # )
8
- # end
@@ -1,7 +0,0 @@
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!
@@ -1,28 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Define an application-wide content security policy
4
- # For further information see the following documentation
5
- # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
6
-
7
- # Rails.application.config.content_security_policy do |policy|
8
- # policy.default_src :self, :https
9
- # policy.font_src :self, :https, :data
10
- # policy.img_src :self, :https, :data
11
- # policy.object_src :none
12
- # policy.script_src :self, :https
13
- # policy.style_src :self, :https
14
-
15
- # # Specify URI for violation reports
16
- # # policy.report_uri "/csp-violation-report-endpoint"
17
- # end
18
-
19
- # If you are using UJS then enable automatic nonce generation
20
- # Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) }
21
-
22
- # Set the nonce only to specific directives
23
- # Rails.application.config.content_security_policy_nonce_directives = %w(script-src)
24
-
25
- # Report CSP violations to a specified URI
26
- # For further information see the following documentation:
27
- # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
28
- # Rails.application.config.content_security_policy_report_only = true
@@ -1,5 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Specify a serializer for the signed and encrypted cookie jars.
4
- # Valid options are :json, :marshal, and :hybrid.
5
- Rails.application.config.action_dispatch.cookies_serializer = :json
@@ -1,4 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Configure sensitive parameters which will be filtered from the log file.
4
- Rails.application.config.filter_parameters += [:password]
@@ -1,16 +0,0 @@
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
@@ -1,4 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Add new mime types for use in respond_to blocks:
4
- # Mime::Type.register "text/richtext", :rtf
@@ -1,9 +0,0 @@
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]
9
- end
@@ -1,38 +0,0 @@
1
- # Puma can serve each request in a thread from an internal thread pool.
2
- # The `threads` method setting takes two numbers: a minimum and maximum.
3
- # Any libraries that use thread pools should be configured to match
4
- # the maximum value specified for Puma. Default is set to 5 threads for minimum
5
- # and maximum; this matches the default thread size of Active Record.
6
- #
7
- max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
8
- min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
9
- threads min_threads_count, max_threads_count
10
-
11
- # Specifies the `port` that Puma will listen on to receive requests; default is 3000.
12
- #
13
- port ENV.fetch("PORT") { 3000 }
14
-
15
- # Specifies the `environment` that Puma will run in.
16
- #
17
- environment ENV.fetch("RAILS_ENV") { "development" }
18
-
19
- # Specifies the `pidfile` that Puma will use.
20
- pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
21
-
22
- # Specifies the number of `workers` to boot in clustered mode.
23
- # Workers are forked web server processes. If using threads and workers together
24
- # the concurrency of the application would be max `threads` * `workers`.
25
- # Workers do not work on JRuby or Windows (both of which do not support
26
- # processes).
27
- #
28
- # workers ENV.fetch("WEB_CONCURRENCY") { 2 }
29
-
30
- # Use the `preload_app!` method when specifying a `workers` number.
31
- # This directive tells Puma to first boot the application and load code
32
- # before forking the application. This takes advantage of Copy On Write
33
- # process behavior so workers use less memory.
34
- #
35
- # preload_app!
36
-
37
- # Allow puma to be restarted by `rails restart` command.
38
- plugin :tmp_restart
@@ -1,12 +0,0 @@
1
- Rails.application.routes.draw do
2
- resources :posts
3
- # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
4
-
5
- put "/known/get", to: "home#get_action"
6
- put "/known/put", to: "home#put_action"
7
- patch "/known/patch", to: "home#patch_action"
8
- delete "/known/delete", to: "home#delete_action"
9
- post "/known/post", to: "home#post_action"
10
-
11
- root "home#index"
12
- end
@@ -1,6 +0,0 @@
1
- Spring.watch(
2
- ".ruby-version",
3
- ".rbenv-vars",
4
- "tmp/restart.txt",
5
- "tmp/caching-dev.txt"
6
- )
@@ -1,9 +0,0 @@
1
- class CreatePosts < ActiveRecord::Migration[6.0]
2
- def change
3
- create_table :posts do |t|
4
- t.string :title
5
-
6
- t.timestamps
7
- end
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- class CreateActionItems < ActiveRecord::Migration[6.0]
2
- def change
3
- create_table :action_items do |t|
4
- t.string :description
5
-
6
- t.timestamps
7
- end
8
- end
9
- end
@@ -1,27 +0,0 @@
1
- # This file is auto-generated from the current state of the database. Instead
2
- # of editing this file, please use the migrations feature of Active Record to
3
- # incrementally modify your database, and then regenerate this schema definition.
4
- #
5
- # This file is the source Rails uses to define your schema when running `bin/rails
6
- # db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
7
- # be faster and is potentially less error prone than running all of your
8
- # migrations from scratch. Old migrations may fail to apply correctly if those
9
- # migrations use external dependencies or application code.
10
- #
11
- # It's strongly recommended that you check this file into your version control system.
12
-
13
- ActiveRecord::Schema.define(version: 2020_07_11_122838) do
14
-
15
- create_table "action_items", force: :cascade do |t|
16
- t.string "description"
17
- t.datetime "created_at", precision: 6, null: false
18
- t.datetime "updated_at", precision: 6, null: false
19
- end
20
-
21
- create_table "posts", force: :cascade do |t|
22
- t.string "title"
23
- t.datetime "created_at", precision: 6, null: false
24
- t.datetime "updated_at", precision: 6, null: false
25
- end
26
-
27
- end
@@ -1,28 +0,0 @@
1
- require "test_helper"
2
-
3
- class DummyController < ActionController::Base; end
4
-
5
- class Futurism::Test < ActiveSupport::TestCase
6
- test "module" do
7
- assert_kind_of Module, Futurism
8
- end
9
-
10
- test ".skip_in_test" do
11
- assert_equal false, Futurism.skip_in_test
12
- end
13
-
14
- test ".default_controller" do
15
- assert_equal ApplicationController, Futurism.default_controller
16
-
17
- Futurism.default_controller = nil
18
- assert_equal ApplicationController, Futurism.default_controller
19
-
20
- Futurism.default_controller = DummyController
21
- assert_equal DummyController, Futurism.default_controller
22
-
23
- Futurism.default_controller = "DummyController"
24
- assert_equal DummyController, Futurism.default_controller
25
-
26
- Futurism.default_controller = nil
27
- end
28
- end