rbs_rails 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f5dc0321730c8a515b7fb485221b43cc9424994fa6e6c351505fbca3c09ae4e1
4
- data.tar.gz: a930ab4b1cac5c0f819ab2d8d1bc18be47bbca00dc41990e185513f7a2cff1a8
3
+ metadata.gz: 16709127e339f2c71c00ad11ac8ed13fa0dae3090c2ee30105486acd2cde536e
4
+ data.tar.gz: 70464319628ea31b6ba77c958be4e335fcfefa6f55b3908ef168578a5bc4a03e
5
5
  SHA512:
6
- metadata.gz: 5efd9e8eabe42a075f9dcf0d15c5e79d7cec935b8d812161cd20ed675b81691ab4d766bc3f59b8b196b3afb39961599d599082bb5d57166b34400f52c16aa716
7
- data.tar.gz: ede7db12226ec86c8f4617c2fcf6713dfda220572bc0dcad7b6d58c3a372c716d20b15124bc245cb02968fb17ca2dbe97d160d137a026d85054ef6257f5eaa95
6
+ metadata.gz: 3a26bb616fd9ff5a174c089afdc2f5283c182abe3868dd6fab1b25ca16c7f447c21520915d131b84e00a25e800dca8ca3ff5b5d2c093ac65fab924dd5424221b
7
+ data.tar.gz: 52d257af8544a3639a3ffd98f3f0917fc5dd503e4682951cce3391ceed94bedf5d9eca1b0cd86b57e67fdc7d90093cf0a5acbc089c744e8bba5a49f38bd19364
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /spec/reports/
8
8
  /tmp/
9
9
  /Gemfile.lock
10
+ /test/sig
@@ -5,4 +5,7 @@ rvm:
5
5
  - 2.7.0
6
6
  - ruby-head
7
7
 
8
+ before_install:
9
+ - gem install bundler -v 2.1.4
10
+
8
11
  cache: bundler
data/Gemfile CHANGED
@@ -4,5 +4,6 @@ source "https://rubygems.org"
4
4
  gemspec
5
5
 
6
6
  gem "rake", "~> 12.0"
7
- gem 'rbs', '>= 0.6.0'
8
- gem 'steep', '>= 0.19.0'
7
+ gem 'rbs', '>= 0.14.0'
8
+ gem 'steep', '>= 0.34.0'
9
+ gem 'minitest'
data/README.md CHANGED
@@ -86,6 +86,7 @@ target :app do
86
86
  library 'pathname'
87
87
  library 'logger'
88
88
  library 'mutex_m'
89
+ library 'date'
89
90
  end
90
91
  ```
91
92
 
data/Rakefile CHANGED
@@ -1,5 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
- task :default => [:rbs_validate, :steep]
2
+ require 'rake/testtask'
3
+
4
+ task :default => [:rbs_validate, :steep, :test]
3
5
 
4
6
  desc 'run Steep'
5
7
  task :steep do
@@ -7,5 +9,11 @@ task :steep do
7
9
  end
8
10
 
9
11
  task :rbs_validate do
10
- sh 'bin/rbs validate'
12
+ sh 'bin/rbs validate --silent'
13
+ end
14
+
15
+ Rake::TestTask.new do |test|
16
+ test.libs << 'test'
17
+ test.test_files = Dir['test/**/*_test.rb']
18
+ test.verbose = true
11
19
  end
data/Steepfile CHANGED
@@ -7,5 +7,6 @@ target :lib do
7
7
  library "pathname"
8
8
  library "logger"
9
9
  library "mutex_m"
10
+ library "date"
10
11
  # library "strong_json" # Gems
11
12
  end
@@ -37,7 +37,7 @@ class ActiveRecord::Base
37
37
 
38
38
  def will_save_change_to_attribute?: (String | Symbol attr_name, ?from: untyped, ?to: untyped) -> bool
39
39
 
40
- def save!: () -> self
40
+ def save!: (?validate: bool, ?touch: bool) -> self
41
41
  def save: () -> bool
42
42
  def update!: (*untyped) -> self
43
43
  def update: (*untyped) -> bool
@@ -23,6 +23,8 @@ module AbstractController
23
23
 
24
24
  attr_reader abstract: untyped
25
25
 
26
+ alias self.abstract? self.abstract
27
+
26
28
  # Define a controller as abstract. See internal_methods for more
27
29
  # details.
28
30
  def self.abstract!: () -> untyped
@@ -121,6 +123,13 @@ module AbstractController
121
123
  # which is *not* necessarily the same as the action name.
122
124
  def process_action: (untyped method_name, *untyped args) -> untyped
123
125
 
126
+ # Actually call the method associated with the action. Override
127
+ # this method if you wish to change how action methods are called,
128
+ # not to add additional behavior around it. For example, you would
129
+ # override #send_action if you want to inject arguments into the
130
+ # method.
131
+ alias send_action send
132
+
124
133
  # If the action name was not found, but a method called "action_missing"
125
134
  # was found, #method_for_action will return "_handle_action_missing".
126
135
  # This method calls #action_missing with the current action name.
@@ -507,12 +516,6 @@ module AbstractController
507
516
  end
508
517
  end
509
518
 
510
- module AbstractController
511
- extend ActiveSupport::Autoload
512
-
513
- def self.eager_load!: () -> untyped
514
- end
515
-
516
519
  module AbstractController
517
520
  class DoubleRenderError < Error
518
521
  DEFAULT_MESSAGE: ::String
@@ -525,6 +528,8 @@ module AbstractController
525
528
 
526
529
  include ActionView::ViewPaths
527
530
 
531
+ extend ::ActionView::ViewPaths::ClassMethods
532
+
528
533
  # Normalizes arguments, options and then delegates render_to_body and
529
534
  # sticks the result in <tt>self.response_body</tt>.
530
535
  def render: (*untyped args) { () -> untyped } -> untyped
@@ -585,8 +590,12 @@ module AbstractController
585
590
  # simple framework for scoping them consistently.
586
591
  def translate: (untyped key, **untyped options) -> untyped
587
592
 
593
+ alias t translate
594
+
588
595
  # Delegates to <tt>I18n.localize</tt>. Also aliased as <tt>l</tt>.
589
596
  def localize: (untyped object, **untyped options) -> untyped
597
+
598
+ alias l localize
590
599
  end
591
600
  end
592
601
 
@@ -612,6 +621,12 @@ module AbstractController
612
621
  end
613
622
  end
614
623
 
624
+ module AbstractController
625
+ extend ActiveSupport::Autoload
626
+
627
+ def self.eager_load!: () -> untyped
628
+ end
629
+
615
630
  module ActionController
616
631
  module ApiRendering
617
632
  extend ActiveSupport::Concern
@@ -2416,6 +2431,8 @@ module ActionController
2416
2431
 
2417
2432
  def `any`: (*untyped args) { () -> untyped } -> untyped
2418
2433
 
2434
+ alias all any
2435
+
2419
2436
  def custom: (untyped mime_type) { () -> untyped } -> untyped
2420
2437
 
2421
2438
  def response: () -> untyped
@@ -2428,6 +2445,8 @@ module ActionController
2428
2445
 
2429
2446
  def `any`: (*untyped args) { () -> untyped } -> untyped
2430
2447
 
2448
+ alias all any
2449
+
2431
2450
  def method_missing: (untyped name, *untyped args) { () -> untyped } -> untyped
2432
2451
 
2433
2452
  def variant: () -> untyped
@@ -2547,7 +2566,6 @@ module ActionController
2547
2566
 
2548
2567
  EXCLUDE_PARAMETERS: ::Array[untyped]
2549
2568
 
2550
- # Note: It inherits unnamed class, but omitted^
2551
2569
  class Options
2552
2570
  # :nodoc:
2553
2571
  include Mutex_m
@@ -2632,148 +2650,6 @@ module ActionController
2632
2650
  end
2633
2651
  end
2634
2652
 
2635
- module ActionController
2636
- class MiddlewareStack < ActionDispatch::MiddlewareStack
2637
- class Middleware < ActionDispatch::MiddlewareStack::Middleware
2638
- # Extend ActionDispatch middleware stack to make it aware of options
2639
- # allowing the following syntax in controllers:
2640
- #
2641
- # class PostsController < ApplicationController
2642
- # use AuthenticationMiddleware, except: [:index, :show]
2643
- # end
2644
- #
2645
- # nodoc:
2646
- # nodoc:
2647
- def initialize: (untyped klass, untyped args, untyped actions, untyped strategy, untyped block) -> untyped
2648
-
2649
- def valid?: (untyped action) -> untyped
2650
- end
2651
-
2652
- def build: (untyped action, ?untyped? app) { () -> untyped } -> untyped
2653
-
2654
- INCLUDE: untyped
2655
-
2656
- EXCLUDE: untyped
2657
-
2658
- NULL: untyped
2659
-
2660
- def build_middleware: (untyped klass, untyped args, untyped block) -> Middleware
2661
- end
2662
-
2663
- # <tt>ActionController::Metal</tt> is the simplest possible controller, providing a
2664
- # valid Rack interface without the additional niceties provided by
2665
- # <tt>ActionController::Base</tt>.
2666
- #
2667
- # A sample metal controller might look like this:
2668
- #
2669
- # class HelloController < ActionController::Metal
2670
- # def index
2671
- # self.response_body = "Hello World!"
2672
- # end
2673
- # end
2674
- #
2675
- # And then to route requests to your metal controller, you would add
2676
- # something like this to <tt>config/routes.rb</tt>:
2677
- #
2678
- # get 'hello', to: HelloController.action(:index)
2679
- #
2680
- # The +action+ method returns a valid Rack application for the \Rails
2681
- # router to dispatch to.
2682
- #
2683
- # == Rendering Helpers
2684
- #
2685
- # <tt>ActionController::Metal</tt> by default provides no utilities for rendering
2686
- # views, partials, or other responses aside from explicitly calling of
2687
- # <tt>response_body=</tt>, <tt>content_type=</tt>, and <tt>status=</tt>. To
2688
- # add the render helpers you're used to having in a normal controller, you
2689
- # can do the following:
2690
- #
2691
- # class HelloController < ActionController::Metal
2692
- # include AbstractController::Rendering
2693
- # include ActionView::Layouts
2694
- # append_view_path "#{Rails.root}/app/views"
2695
- #
2696
- # def index
2697
- # render "hello/index"
2698
- # end
2699
- # end
2700
- #
2701
- # == Redirection Helpers
2702
- #
2703
- # To add redirection helpers to your metal controller, do the following:
2704
- #
2705
- # class HelloController < ActionController::Metal
2706
- # include ActionController::Redirecting
2707
- # include Rails.application.routes.url_helpers
2708
- #
2709
- # def index
2710
- # redirect_to root_url
2711
- # end
2712
- # end
2713
- #
2714
- # == Other Helpers
2715
- #
2716
- # You can refer to the modules included in <tt>ActionController::Base</tt> to see
2717
- # other features you can bring into your metal controller.
2718
- #
2719
- class Metal < AbstractController::Base
2720
- # Returns the last part of the controller's name, underscored, without the ending
2721
- # <tt>Controller</tt>. For instance, PostsController returns <tt>posts</tt>.
2722
- # Namespaces are left out, so Admin::PostsController returns <tt>posts</tt> as well.
2723
- #
2724
- # ==== Returns
2725
- # * <tt>string</tt>
2726
- def self.controller_name: () -> untyped
2727
-
2728
- def self.make_response!: (untyped request) -> untyped
2729
-
2730
- def self.binary_params_for?: (untyped action) -> ::FalseClass
2731
-
2732
- # Delegates to the class' <tt>controller_name</tt>.
2733
- def controller_name: () -> untyped
2734
-
2735
- def initialize: () -> untyped
2736
-
2737
- def params: () -> untyped
2738
-
2739
- def params=: (untyped val) -> untyped
2740
-
2741
- # Basic url_for that can be overridden for more robust functionality.
2742
- def url_for: (untyped string) -> untyped
2743
-
2744
- def response_body=: (untyped body) -> (nil | untyped)
2745
-
2746
- # Tests if render or redirect has already happened.
2747
- def performed?: () -> untyped
2748
-
2749
- def dispatch: (untyped name, untyped request, untyped response) -> untyped
2750
-
2751
- def set_response!: (untyped response) -> untyped
2752
-
2753
- def set_request!: (untyped request) -> untyped
2754
-
2755
- def to_a: () -> untyped
2756
-
2757
- def reset_session: () -> untyped
2758
-
2759
- def self.inherited: (untyped base) -> untyped
2760
-
2761
- # Pushes the given Rack middleware and its arguments to the bottom of the
2762
- # middleware stack.
2763
- def self.use: (*untyped args) { () -> untyped } -> untyped
2764
-
2765
- # Alias for +middleware_stack+.
2766
- def self.middleware: () -> untyped
2767
-
2768
- # Returns a Rack endpoint for the given action name.
2769
- def self.action: (untyped name) -> untyped
2770
-
2771
- # Direct dispatch to the controller. Instantiates the controller, then
2772
- # executes the action named +name+.
2773
- def self.dispatch: (untyped name, untyped req, untyped res) -> untyped
2774
- end
2775
- end
2776
-
2777
2653
  module ActionController
2778
2654
  module Redirecting
2779
2655
  extend ActiveSupport::Concern
@@ -2970,6 +2846,8 @@ module ActionController
2970
2846
  # You must specify a +use_renderer+, else the +controller.renderer+ and
2971
2847
  # +controller._renderers+ will be <tt>nil</tt>, and the action will fail.
2972
2848
  def use_renderers: (*untyped args) -> untyped
2849
+
2850
+ alias use_renderer use_renderers
2973
2851
  end
2974
2852
 
2975
2853
  # Called by +render+ in <tt>AbstractController::Rendering</tt>
@@ -3646,6 +3524,8 @@ module ActionController
3646
3524
  # This method is also aliased as +to_param+.
3647
3525
  def to_query: (*untyped args) -> untyped
3648
3526
 
3527
+ alias to_param to_query
3528
+
3649
3529
  # Returns an unsafe, unfiltered
3650
3530
  # <tt>ActiveSupport::HashWithIndifferentAccess</tt> representation of the
3651
3531
  # parameters.
@@ -3658,10 +3538,14 @@ module ActionController
3658
3538
  # # => {"name"=>"Senjougahara Hitagi", "oddity" => "Heavy stone crab"}
3659
3539
  def to_unsafe_h: () -> untyped
3660
3540
 
3541
+ alias to_unsafe_hash to_unsafe_h
3542
+
3661
3543
  # Convert all hashes in values into parameters, then yield each pair in
3662
3544
  # the same way as <tt>Hash#each_pair</tt>.
3663
3545
  def each_pair: () { (untyped) -> untyped } -> untyped
3664
3546
 
3547
+ alias each each_pair
3548
+
3665
3549
  # Convert all hashes in values into parameters, then yield each value in
3666
3550
  # the same way as <tt>Hash#each_value</tt>.
3667
3551
  def each_value: () { (untyped) -> untyped } -> untyped
@@ -3749,6 +3633,9 @@ module ActionController
3749
3633
  # for example.
3750
3634
  def require: (untyped key) -> untyped
3751
3635
 
3636
+ # Alias of #require.
3637
+ alias required require
3638
+
3752
3639
  # Returns a new <tt>ActionController::Parameters</tt> instance that
3753
3640
  # includes only the given +filters+ and sets the +permitted+ attribute
3754
3641
  # for the object to +true+. This is useful for limiting which attributes
@@ -3928,6 +3815,8 @@ module ActionController
3928
3815
  # Equivalent to Hash#keep_if, but returns +nil+ if no changes were made.
3929
3816
  def select!: () { () -> untyped } -> untyped
3930
3817
 
3818
+ alias keep_if select!
3819
+
3931
3820
  # Returns a new instance of <tt>ActionController::Parameters</tt> with items
3932
3821
  # that the block evaluates to true removed.
3933
3822
  def reject: () { () -> untyped } -> untyped
@@ -3935,6 +3824,8 @@ module ActionController
3935
3824
  # Removes items that the block evaluates to true and returns self.
3936
3825
  def reject!: () { () -> untyped } -> untyped
3937
3826
 
3827
+ alias delete_if reject!
3828
+
3938
3829
  # Returns values that were assigned to the given +keys+. Note that all the
3939
3830
  # +Hash+ objects will be converted to <tt>ActionController::Parameters</tt>.
3940
3831
  def values_at: (*untyped keys) -> untyped
@@ -3951,10 +3842,14 @@ module ActionController
3951
3842
  # current hash merged into +other_hash+.
3952
3843
  def reverse_merge: (untyped other_hash) -> untyped
3953
3844
 
3845
+ alias with_defaults reverse_merge
3846
+
3954
3847
  # Returns current <tt>ActionController::Parameters</tt> instance with
3955
3848
  # current hash merged into +other_hash+.
3956
3849
  def reverse_merge!: (untyped other_hash) -> untyped
3957
3850
 
3851
+ alias with_defaults! reverse_merge!
3852
+
3958
3853
  def stringify_keys: () -> untyped
3959
3854
 
3960
3855
  def inspect: () -> ::String
@@ -4152,55 +4047,195 @@ module ActionController
4152
4047
  end
4153
4048
 
4154
4049
  module ActionController
4155
- class Railtie < Rails::Railtie
4156
- extend ::ActionController::Railties::Helpers
4157
- end
4158
- end
4050
+ class MiddlewareStack < ActionDispatch::MiddlewareStack
4051
+ class Middleware < ActionDispatch::MiddlewareStack::Middleware
4052
+ # Extend ActionDispatch middleware stack to make it aware of options
4053
+ # allowing the following syntax in controllers:
4054
+ #
4055
+ # class PostsController < ApplicationController
4056
+ # use AuthenticationMiddleware, except: [:index, :show]
4057
+ # end
4058
+ #
4059
+ # nodoc:
4060
+ # nodoc:
4061
+ def initialize: (untyped klass, untyped args, untyped actions, untyped strategy, untyped block) -> untyped
4159
4062
 
4160
- module ActionController
4161
- module Railties
4162
- module Helpers
4163
- def inherited: (untyped klass) -> (nil | untyped)
4063
+ def valid?: (untyped action) -> untyped
4164
4064
  end
4165
- end
4166
- end
4167
4065
 
4168
- module ActionController
4169
- extend ActiveSupport::Autoload
4170
- end
4066
+ def build: (untyped action, ?untyped? app) { () -> untyped } -> untyped
4171
4067
 
4172
- module ActionController
4173
- # ActionController::Renderer allows you to render arbitrary templates
4174
- # without requirement of being in controller actions.
4175
- #
4176
- # You get a concrete renderer class by invoking ActionController::Base#renderer.
4177
- # For example:
4068
+ INCLUDE: untyped
4069
+
4070
+ EXCLUDE: untyped
4071
+
4072
+ NULL: untyped
4073
+
4074
+ def build_middleware: (untyped klass, untyped args, untyped block) -> Middleware
4075
+ end
4076
+
4077
+ # <tt>ActionController::Metal</tt> is the simplest possible controller, providing a
4078
+ # valid Rack interface without the additional niceties provided by
4079
+ # <tt>ActionController::Base</tt>.
4178
4080
  #
4179
- # ApplicationController.renderer
4081
+ # A sample metal controller might look like this:
4180
4082
  #
4181
- # It allows you to call method #render directly.
4083
+ # class HelloController < ActionController::Metal
4084
+ # def index
4085
+ # self.response_body = "Hello World!"
4086
+ # end
4087
+ # end
4182
4088
  #
4183
- # ApplicationController.renderer.render template: '...'
4089
+ # And then to route requests to your metal controller, you would add
4090
+ # something like this to <tt>config/routes.rb</tt>:
4184
4091
  #
4185
- # You can use this shortcut in a controller, instead of the previous example:
4092
+ # get 'hello', to: HelloController.action(:index)
4186
4093
  #
4187
- # ApplicationController.render template: '...'
4094
+ # The +action+ method returns a valid Rack application for the \Rails
4095
+ # router to dispatch to.
4188
4096
  #
4189
- # #render allows you to use the same options that you can use when rendering in a controller.
4190
- # For example:
4097
+ # == Rendering Helpers
4191
4098
  #
4192
- # FooController.render :action, locals: { ... }, assigns: { ... }
4099
+ # <tt>ActionController::Metal</tt> by default provides no utilities for rendering
4100
+ # views, partials, or other responses aside from explicitly calling of
4101
+ # <tt>response_body=</tt>, <tt>content_type=</tt>, and <tt>status=</tt>. To
4102
+ # add the render helpers you're used to having in a normal controller, you
4103
+ # can do the following:
4193
4104
  #
4194
- # The template will be rendered in a Rack environment which is accessible through
4195
- # ActionController::Renderer#env. You can set it up in two ways:
4105
+ # class HelloController < ActionController::Metal
4106
+ # include AbstractController::Rendering
4107
+ # include ActionView::Layouts
4108
+ # append_view_path "#{Rails.root}/app/views"
4196
4109
  #
4197
- # * by changing renderer defaults, like
4110
+ # def index
4111
+ # render "hello/index"
4112
+ # end
4113
+ # end
4198
4114
  #
4199
- # ApplicationController.renderer.defaults # => hash with default Rack environment
4115
+ # == Redirection Helpers
4200
4116
  #
4201
- # * by initializing an instance of renderer by passing it a custom environment.
4117
+ # To add redirection helpers to your metal controller, do the following:
4202
4118
  #
4203
- # ApplicationController.renderer.new(method: 'post', https: true)
4119
+ # class HelloController < ActionController::Metal
4120
+ # include ActionController::Redirecting
4121
+ # include Rails.application.routes.url_helpers
4122
+ #
4123
+ # def index
4124
+ # redirect_to root_url
4125
+ # end
4126
+ # end
4127
+ #
4128
+ # == Other Helpers
4129
+ #
4130
+ # You can refer to the modules included in <tt>ActionController::Base</tt> to see
4131
+ # other features you can bring into your metal controller.
4132
+ #
4133
+ class Metal < AbstractController::Base
4134
+ # Returns the last part of the controller's name, underscored, without the ending
4135
+ # <tt>Controller</tt>. For instance, PostsController returns <tt>posts</tt>.
4136
+ # Namespaces are left out, so Admin::PostsController returns <tt>posts</tt> as well.
4137
+ #
4138
+ # ==== Returns
4139
+ # * <tt>string</tt>
4140
+ def self.controller_name: () -> untyped
4141
+
4142
+ def self.make_response!: (untyped request) -> untyped
4143
+
4144
+ def self.binary_params_for?: (untyped action) -> ::FalseClass
4145
+
4146
+ # Delegates to the class' <tt>controller_name</tt>.
4147
+ def controller_name: () -> untyped
4148
+
4149
+ def initialize: () -> untyped
4150
+
4151
+ def params: () -> untyped
4152
+
4153
+ def params=: (untyped val) -> untyped
4154
+
4155
+ alias response_code status
4156
+
4157
+ # Basic url_for that can be overridden for more robust functionality.
4158
+ def url_for: (untyped string) -> untyped
4159
+
4160
+ def response_body=: (untyped body) -> (nil | untyped)
4161
+
4162
+ # Tests if render or redirect has already happened.
4163
+ def performed?: () -> untyped
4164
+
4165
+ def dispatch: (untyped name, untyped request, untyped response) -> untyped
4166
+
4167
+ def set_response!: (untyped response) -> untyped
4168
+
4169
+ def set_request!: (untyped request) -> untyped
4170
+
4171
+ def to_a: () -> untyped
4172
+
4173
+ def reset_session: () -> untyped
4174
+
4175
+ def self.inherited: (untyped base) -> untyped
4176
+
4177
+ # Pushes the given Rack middleware and its arguments to the bottom of the
4178
+ # middleware stack.
4179
+ def self.use: (*untyped args) { () -> untyped } -> untyped
4180
+
4181
+ # Alias for +middleware_stack+.
4182
+ def self.middleware: () -> untyped
4183
+
4184
+ # Returns a Rack endpoint for the given action name.
4185
+ def self.action: (untyped name) -> untyped
4186
+
4187
+ # Direct dispatch to the controller. Instantiates the controller, then
4188
+ # executes the action named +name+.
4189
+ def self.dispatch: (untyped name, untyped req, untyped res) -> untyped
4190
+ end
4191
+ end
4192
+
4193
+ module ActionController
4194
+ class Railtie < Rails::Railtie
4195
+ extend ::ActionController::Railties::Helpers
4196
+ end
4197
+ end
4198
+
4199
+ module ActionController
4200
+ module Railties
4201
+ module Helpers
4202
+ def inherited: (untyped klass) -> (nil | untyped)
4203
+ end
4204
+ end
4205
+ end
4206
+
4207
+ module ActionController
4208
+ # ActionController::Renderer allows you to render arbitrary templates
4209
+ # without requirement of being in controller actions.
4210
+ #
4211
+ # You get a concrete renderer class by invoking ActionController::Base#renderer.
4212
+ # For example:
4213
+ #
4214
+ # ApplicationController.renderer
4215
+ #
4216
+ # It allows you to call method #render directly.
4217
+ #
4218
+ # ApplicationController.renderer.render template: '...'
4219
+ #
4220
+ # You can use this shortcut in a controller, instead of the previous example:
4221
+ #
4222
+ # ApplicationController.render template: '...'
4223
+ #
4224
+ # #render allows you to use the same options that you can use when rendering in a controller.
4225
+ # For example:
4226
+ #
4227
+ # FooController.render :action, locals: { ... }, assigns: { ... }
4228
+ #
4229
+ # The template will be rendered in a Rack environment which is accessible through
4230
+ # ActionController::Renderer#env. You can set it up in two ways:
4231
+ #
4232
+ # * by changing renderer defaults, like
4233
+ #
4234
+ # ApplicationController.renderer.defaults # => hash with default Rack environment
4235
+ #
4236
+ # * by initializing an instance of renderer by passing it a custom environment.
4237
+ #
4238
+ # ApplicationController.renderer.new(method: 'post', https: true)
4204
4239
  #
4205
4240
  class Renderer
4206
4241
  attr_reader defaults: untyped
@@ -4267,6 +4302,10 @@ module ActionController
4267
4302
  include Testing::Functional
4268
4303
  end
4269
4304
 
4305
+ module Live
4306
+ def new_controller_thread: () { () -> untyped } -> untyped
4307
+ end
4308
+
4270
4309
  class TestRequest < ActionDispatch::TestRequest
4271
4310
  # ActionController::TestCase will be deprecated and moved to a gem in the future.
4272
4311
  # Please use ActionDispatch::IntegrationTest going forward.
@@ -4296,6 +4335,14 @@ module ActionController
4296
4335
  end
4297
4336
 
4298
4337
  class LiveTestResponse < Live::Response
4338
+ # Was the response successful?
4339
+ alias success? successful?
4340
+
4341
+ # Was the URL not found?
4342
+ alias missing? not_found?
4343
+
4344
+ # Was there a server-side error?
4345
+ alias error? server_error?
4299
4346
  end
4300
4347
 
4301
4348
  class TestSession < Rack::Session::Abstract::PersistedSecure::SecureSessionHash
@@ -4562,6 +4609,10 @@ module ActionController
4562
4609
  end
4563
4610
  end
4564
4611
 
4612
+ module ActionController
4613
+ extend ActiveSupport::Autoload
4614
+ end
4615
+
4565
4616
  module ActionDispatch
4566
4617
  module Http
4567
4618
  module Cache
@@ -4902,6 +4953,8 @@ module ActionDispatch
4902
4953
 
4903
4954
  def key?: (untyped key) -> untyped
4904
4955
 
4956
+ alias include? key?
4957
+
4905
4958
  DEFAULT: untyped
4906
4959
 
4907
4960
  # Returns the value for the given key mapped to @env.
@@ -5062,6 +5115,8 @@ module Mime
5062
5115
  # nodoc:
5063
5116
  attr_accessor q: untyped
5064
5117
 
5118
+ alias to_s name
5119
+
5065
5120
  def initialize: (untyped index, untyped name, ?untyped? q) -> untyped
5066
5121
 
5067
5122
  def <=>: (untyped item) -> untyped
@@ -5226,6 +5281,8 @@ module ActionDispatch
5226
5281
  # Returns both GET and POST \parameters in a single hash.
5227
5282
  def parameters: () -> untyped
5228
5283
 
5284
+ alias params parameters
5285
+
5229
5286
  def path_parameters=: (untyped parameters) -> untyped
5230
5287
 
5231
5288
  # Returns a hash with the \parameters used to form the \path of the request.
@@ -5305,6 +5362,8 @@ module ActionDispatch
5305
5362
 
5306
5363
  def initialize: (untyped env) -> untyped
5307
5364
 
5365
+ def commit_cookie_jar!: () -> nil
5366
+
5308
5367
  PASS_NOT_FOUND: untyped
5309
5368
 
5310
5369
  def controller_class: () -> untyped
@@ -5438,6 +5497,8 @@ module ActionDispatch
5438
5497
  # choice of JavaScript libraries and frameworks.
5439
5498
  def xml_http_request?: () -> untyped
5440
5499
 
5500
+ alias xhr? xml_http_request?
5501
+
5441
5502
  # Returns the IP address of client as a +String+.
5442
5503
  def ip: () -> untyped
5443
5504
 
@@ -5459,6 +5520,8 @@ module ActionDispatch
5459
5520
 
5460
5521
  def request_id=: (untyped id) -> untyped
5461
5522
 
5523
+ alias uuid request_id
5524
+
5462
5525
  # Returns the lowercase name of the HTTP server software.
5463
5526
  def server_software: () -> untyped
5464
5527
 
@@ -5493,9 +5556,13 @@ module ActionDispatch
5493
5556
  # Override Rack's GET method to support indifferent access.
5494
5557
  def GET: () -> untyped
5495
5558
 
5559
+ alias query_parameters GET
5560
+
5496
5561
  # Override Rack's POST method to support indifferent access.
5497
5562
  def POST: () -> untyped
5498
5563
 
5564
+ alias request_parameters POST
5565
+
5499
5566
  # Returns the authorization header regardless of whether it was specified directly or through one of the
5500
5567
  # proxy alternatives.
5501
5568
  def authorization: () -> untyped
@@ -5546,7 +5613,6 @@ module ActionDispatch
5546
5613
  # end
5547
5614
  # end
5548
5615
  class Response
5549
- # Note: It inherits unnamed class, but omitted^
5550
5616
  class Header
5551
5617
  # :nodoc:
5552
5618
  def initialize: (untyped response, untyped header) -> untyped
@@ -5567,6 +5633,8 @@ module ActionDispatch
5567
5633
  # Get headers for this response.
5568
5634
  attr_reader header: untyped
5569
5635
 
5636
+ alias headers header
5637
+
5570
5638
  def each: () { () -> untyped } -> untyped
5571
5639
 
5572
5640
  CONTENT_TYPE: ::String
@@ -5579,6 +5647,11 @@ module ActionDispatch
5579
5647
 
5580
5648
  include Rack::Response::Helpers
5581
5649
 
5650
+ # Aliasing these off because AD::Http::Cache::Response defines them.
5651
+ alias _cache_control cache_control
5652
+
5653
+ alias _cache_control= cache_control=
5654
+
5582
5655
  include ActionDispatch::Http::FilterRedirect
5583
5656
 
5584
5657
  include ActionDispatch::Http::Cache::Response
@@ -5685,6 +5758,8 @@ module ActionDispatch
5685
5758
  #
5686
5759
  def message: () -> untyped
5687
5760
 
5761
+ alias status_message message
5762
+
5688
5763
  # Returns the content of the response as a string. This contains the contents
5689
5764
  # of any calls to <tt>render</tt>.
5690
5765
  def body: () -> untyped
@@ -5716,6 +5791,9 @@ module ActionDispatch
5716
5791
 
5717
5792
  def body_parts: () -> untyped
5718
5793
 
5794
+ # The location header we'll be responding with.
5795
+ alias redirect_url location
5796
+
5719
5797
  def close: () -> untyped
5720
5798
 
5721
5799
  def abort: () -> untyped
@@ -5726,6 +5804,8 @@ module ActionDispatch
5726
5804
  # status, headers, body = *response
5727
5805
  def to_a: () -> untyped
5728
5806
 
5807
+ alias prepare! to_a
5808
+
5729
5809
  # Returns the response cookies, converted to a Hash of (name => value) pairs
5730
5810
  #
5731
5811
  # assert_equal 'AuthorOfNewPage', r.cookies['author']
@@ -6224,6 +6304,10 @@ module ActionDispatch
6224
6304
  def initialize: (untyped transition_table) -> untyped
6225
6305
 
6226
6306
  def simulate: (untyped string) -> (nil | MatchData)
6307
+
6308
+ alias =~ simulate
6309
+
6310
+ alias match simulate
6227
6311
  end
6228
6312
  end
6229
6313
  end
@@ -6321,6 +6405,9 @@ module ActionDispatch
6321
6405
  end
6322
6406
 
6323
6407
  class Terminal < Node
6408
+ # :nodoc:
6409
+ alias symbol left
6410
+
6324
6411
  def terminal?: () -> ::TrueClass
6325
6412
  end
6326
6413
 
@@ -6352,6 +6439,8 @@ module ActionDispatch
6352
6439
  # :nodoc:
6353
6440
  attr_accessor regexp: untyped
6354
6441
 
6442
+ alias symbol regexp
6443
+
6355
6444
  attr_reader name: untyped
6356
6445
 
6357
6446
  DEFAULT_EXP: untyped
@@ -6414,23 +6503,6 @@ module ActionDispatch
6414
6503
  end
6415
6504
  end
6416
6505
 
6417
- module ActionDispatch
6418
- # :stopdoc:
6419
- module Journey
6420
- class Parser < Racc::Parser
6421
- include Journey::Nodes
6422
-
6423
- def self.parse: (untyped string) -> untyped
6424
-
6425
- def initialize: () -> untyped
6426
-
6427
- def parse: (untyped string) -> untyped
6428
-
6429
- def next_token: () -> untyped
6430
- end
6431
- end
6432
- end
6433
-
6434
6506
  module ActionDispatch
6435
6507
  module Journey
6436
6508
  class Parser < Racc::Parser
@@ -6465,6 +6537,23 @@ module ActionDispatch
6465
6537
  end
6466
6538
  end
6467
6539
 
6540
+ module ActionDispatch
6541
+ # :stopdoc:
6542
+ module Journey
6543
+ class Parser < Racc::Parser
6544
+ include Journey::Nodes
6545
+
6546
+ def self.parse: (untyped string) -> untyped
6547
+
6548
+ def initialize: () -> untyped
6549
+
6550
+ def parse: (untyped string) -> untyped
6551
+
6552
+ def next_token: () -> untyped
6553
+ end
6554
+ end
6555
+ end
6556
+
6468
6557
  module ActionDispatch
6469
6558
  module Journey
6470
6559
  module Path
@@ -6516,6 +6605,8 @@ module ActionDispatch
6516
6605
 
6517
6606
  def visit_LITERAL: (untyped node) -> untyped
6518
6607
 
6608
+ alias visit_DOT visit_LITERAL
6609
+
6519
6610
  def visit_SLASH: (untyped node) -> untyped
6520
6611
 
6521
6612
  def visit_STAR: (untyped node) -> ::String
@@ -6549,6 +6640,8 @@ module ActionDispatch
6549
6640
 
6550
6641
  def match: (untyped other) -> (nil | MatchData)
6551
6642
 
6643
+ alias =~ match
6644
+
6552
6645
  def source: () -> untyped
6553
6646
 
6554
6647
  def to_regexp: () -> untyped
@@ -6581,6 +6674,8 @@ module ActionDispatch
6581
6674
 
6582
6675
  attr_reader scope_options: untyped
6583
6676
 
6677
+ alias conditions constraints
6678
+
6584
6679
  module VerbMatchers
6585
6680
  VERBS: ::Array[untyped]
6586
6681
 
@@ -6632,6 +6727,8 @@ module ActionDispatch
6632
6727
 
6633
6728
  def parts: () -> untyped
6634
6729
 
6730
+ alias segment_keys parts
6731
+
6635
6732
  def format: (untyped path_options) -> untyped
6636
6733
 
6637
6734
  def required_parts: () -> untyped
@@ -6659,42 +6756,6 @@ module ActionDispatch
6659
6756
  end
6660
6757
  end
6661
6758
 
6662
- module ActionDispatch
6663
- module Journey
6664
- class Router
6665
- # :nodoc:
6666
- # :nodoc:
6667
- attr_accessor routes: untyped
6668
-
6669
- def initialize: (untyped routes) -> untyped
6670
-
6671
- def eager_load!: () -> nil
6672
-
6673
- def serve: (untyped req) -> (::Array[untyped] | ::Array[404 | ::Hash[::String, "pass"] | ::Array["Not Found"]])
6674
-
6675
- def recognize: (untyped rails_req) { (untyped, untyped) -> untyped } -> untyped
6676
-
6677
- def visualizer: () -> untyped
6678
-
6679
- def partitioned_routes: () -> untyped
6680
-
6681
- def ast: () -> untyped
6682
-
6683
- def simulator: () -> untyped
6684
-
6685
- def custom_routes: () -> untyped
6686
-
6687
- def filter_routes: (untyped path) -> (::Array[untyped] | untyped)
6688
-
6689
- def find_routes: (untyped req) -> untyped
6690
-
6691
- def match_head_routes: (untyped routes, untyped req) -> untyped
6692
-
6693
- def match_routes: (untyped routes, untyped req) -> untyped
6694
- end
6695
- end
6696
- end
6697
-
6698
6759
  module ActionDispatch
6699
6760
  module Journey
6700
6761
  class Router
@@ -6777,40 +6838,78 @@ end
6777
6838
 
6778
6839
  module ActionDispatch
6779
6840
  module Journey
6780
- class Routes
6841
+ class Router
6781
6842
  # :nodoc:
6782
- # The Routing table. Contains all routes for a system. Routes can be
6783
- # added to the table by calling Routes#add_route.
6784
6843
  # :nodoc:
6785
- include Enumerable[untyped, untyped]
6786
-
6787
- attr_reader routes: untyped
6844
+ attr_accessor routes: untyped
6788
6845
 
6789
- attr_reader custom_routes: untyped
6846
+ def initialize: (untyped routes) -> untyped
6790
6847
 
6791
- attr_reader anchored_routes: untyped
6848
+ def eager_load!: () -> nil
6792
6849
 
6793
- def initialize: () -> untyped
6850
+ def serve: (untyped req) -> (::Array[untyped] | ::Array[404 | ::Hash[::String, "pass"] | ::Array["Not Found"]])
6794
6851
 
6795
- def empty?: () -> untyped
6852
+ def recognize: (untyped rails_req) { (untyped, untyped) -> untyped } -> untyped
6796
6853
 
6797
- def length: () -> untyped
6854
+ def visualizer: () -> untyped
6798
6855
 
6799
- def last: () -> untyped
6856
+ def partitioned_routes: () -> untyped
6800
6857
 
6801
- def each: () { () -> untyped } -> untyped
6858
+ def ast: () -> untyped
6802
6859
 
6803
- def clear: () -> untyped
6860
+ def simulator: () -> untyped
6804
6861
 
6805
- def partition_route: (untyped route) -> untyped
6862
+ def custom_routes: () -> untyped
6806
6863
 
6807
- def ast: () -> untyped
6864
+ def filter_routes: (untyped path) -> (::Array[untyped] | untyped)
6808
6865
 
6809
- def simulator: () -> untyped
6866
+ def find_routes: (untyped req) -> untyped
6810
6867
 
6811
- def add_route: (untyped name, untyped mapping) -> untyped
6868
+ def match_head_routes: (untyped routes, untyped req) -> untyped
6812
6869
 
6813
- def clear_cache!: () -> untyped
6870
+ def match_routes: (untyped routes, untyped req) -> untyped
6871
+ end
6872
+ end
6873
+ end
6874
+
6875
+ module ActionDispatch
6876
+ module Journey
6877
+ class Routes
6878
+ # :nodoc:
6879
+ # The Routing table. Contains all routes for a system. Routes can be
6880
+ # added to the table by calling Routes#add_route.
6881
+ # :nodoc:
6882
+ include Enumerable[untyped, untyped]
6883
+
6884
+ attr_reader routes: untyped
6885
+
6886
+ attr_reader custom_routes: untyped
6887
+
6888
+ attr_reader anchored_routes: untyped
6889
+
6890
+ def initialize: () -> untyped
6891
+
6892
+ def empty?: () -> untyped
6893
+
6894
+ def length: () -> untyped
6895
+
6896
+ alias size length
6897
+
6898
+ def last: () -> untyped
6899
+
6900
+ def each: () { () -> untyped } -> untyped
6901
+
6902
+ def clear: () -> untyped
6903
+
6904
+ def partition_route: (untyped route) -> untyped
6905
+
6906
+ def ast: () -> untyped
6907
+
6908
+ def simulator: () -> untyped
6909
+
6910
+ def add_route: (untyped name, untyped mapping) -> untyped
6911
+
6912
+ def clear_cache!: () -> untyped
6814
6913
  end
6815
6914
  end
6816
6915
  end
@@ -7277,6 +7376,11 @@ module ActionDispatch
7277
7376
 
7278
7377
  def key?: (untyped name) -> untyped
7279
7378
 
7379
+ alias has_key? key?
7380
+
7381
+ # Returns the cookies as Hash.
7382
+ alias to_hash to_h
7383
+
7280
7384
  def update: (untyped other_hash) -> untyped
7281
7385
 
7282
7386
  def update_cookies_from_jar: () -> untyped
@@ -7641,6 +7745,8 @@ module ActionDispatch
7641
7745
 
7642
7746
  def each: () { () -> untyped } -> untyped
7643
7747
 
7748
+ alias merge! update
7749
+
7644
7750
  def replace: (untyped h) -> untyped
7645
7751
 
7646
7752
  # Sets a flash that will not be available to the next action, only to the current.
@@ -8024,8 +8130,8 @@ module ActionDispatch
8024
8130
  # Other useful options include <tt>:key</tt>, <tt>:secure</tt> and
8025
8131
  # <tt>:httponly</tt>.
8026
8132
  class CookieStore < AbstractSecureStore
8027
- # Note: It inherits unnamed class, but omitted^
8028
8133
  class SessionId
8134
+ # Note: It inherits unnamed class, but omitted
8029
8135
  attr_reader cookie_value: untyped
8030
8136
 
8031
8137
  def initialize: (untyped session_id, ?::Hash[untyped, untyped] cookie_value) -> untyped
@@ -8224,6 +8330,8 @@ module ActionDispatch
8224
8330
 
8225
8331
  def insert: (untyped index, untyped klass, *untyped args) { () -> untyped } -> untyped
8226
8332
 
8333
+ alias insert_before insert
8334
+
8227
8335
  def insert_after: (untyped index, *untyped args) { () -> untyped } -> untyped
8228
8336
 
8229
8337
  def swap: (untyped target, *untyped args) { () -> untyped } -> untyped
@@ -8296,26 +8404,6 @@ module ActionDispatch
8296
8404
  end
8297
8405
  end
8298
8406
 
8299
- module Rack
8300
- end
8301
-
8302
- module ActionDispatch
8303
- extend ActiveSupport::Autoload
8304
-
8305
- class IllegalStateError < StandardError
8306
- end
8307
-
8308
- class MissingController[T] < NameError[T]
8309
- end
8310
-
8311
- module Http
8312
- extend ActiveSupport::Autoload
8313
- end
8314
-
8315
- module Session
8316
- end
8317
- end
8318
-
8319
8407
  module ActionDispatch
8320
8408
  class Request
8321
8409
  class Session
@@ -8371,6 +8459,10 @@ module ActionDispatch
8371
8459
  # Returns true if the session has the given key or false.
8372
8460
  def has_key?: (untyped key) -> untyped
8373
8461
 
8462
+ alias key? has_key?
8463
+
8464
+ alias include? has_key?
8465
+
8374
8466
  # Returns keys of the session as Array.
8375
8467
  def keys: () -> untyped
8376
8468
 
@@ -8386,6 +8478,8 @@ module ActionDispatch
8386
8478
  # Returns the session as Hash.
8387
8479
  def to_hash: () -> untyped
8388
8480
 
8481
+ alias to_h to_hash
8482
+
8389
8483
  # Updates the session with given Hash.
8390
8484
  #
8391
8485
  # session.to_hash
@@ -8906,6 +9000,8 @@ module ActionDispatch
8906
9000
 
8907
9001
  def default_url_options=: (untyped options) -> untyped
8908
9002
 
9003
+ alias default_url_options default_url_options=
9004
+
8909
9005
  def with_default_scope: (untyped scope) { () -> untyped } -> untyped
8910
9006
 
8911
9007
  # Query if the following named route was already defined.
@@ -9257,14 +9353,20 @@ module ActionDispatch
9257
9353
 
9258
9354
  def singular: () -> untyped
9259
9355
 
9356
+ alias member_name singular
9357
+
9260
9358
  # Checks for uncountable plurals, and appends "_index" if the plural
9261
9359
  # and singular form are the same.
9262
9360
  def collection_name: () -> untyped
9263
9361
 
9264
9362
  def resource_scope: () -> untyped
9265
9363
 
9364
+ alias collection_scope path
9365
+
9266
9366
  def member_scope: () -> ::String
9267
9367
 
9368
+ alias shallow_scope member_scope
9369
+
9268
9370
  def new_scope: (untyped new_path) -> ::String
9269
9371
 
9270
9372
  def nested_param: () -> ::Symbol
@@ -9286,6 +9388,14 @@ module ActionDispatch
9286
9388
 
9287
9389
  def singular: () -> untyped
9288
9390
 
9391
+ alias member_name singular
9392
+
9393
+ alias collection_name singular
9394
+
9395
+ alias member_scope path
9396
+
9397
+ alias nested_scope path
9398
+
9289
9399
  def singleton?: () -> ::TrueClass
9290
9400
  end
9291
9401
 
@@ -9984,259 +10094,6 @@ module ActionDispatch
9984
10094
  end
9985
10095
  end
9986
10096
 
9987
- module ActionDispatch
9988
- # The routing module provides URL rewriting in native Ruby. It's a way to
9989
- # redirect incoming requests to controllers and actions. This replaces
9990
- # mod_rewrite rules. Best of all, Rails' \Routing works with any web server.
9991
- # Routes are defined in <tt>config/routes.rb</tt>.
9992
- #
9993
- # Think of creating routes as drawing a map for your requests. The map tells
9994
- # them where to go based on some predefined pattern:
9995
- #
9996
- # Rails.application.routes.draw do
9997
- # Pattern 1 tells some request to go to one place
9998
- # Pattern 2 tell them to go to another
9999
- # ...
10000
- # end
10001
- #
10002
- # The following symbols are special:
10003
- #
10004
- # :controller maps to your controller name
10005
- # :action maps to an action with your controllers
10006
- #
10007
- # Other names simply map to a parameter as in the case of <tt>:id</tt>.
10008
- #
10009
- # == Resources
10010
- #
10011
- # Resource routing allows you to quickly declare all of the common routes
10012
- # for a given resourceful controller. Instead of declaring separate routes
10013
- # for your +index+, +show+, +new+, +edit+, +create+, +update+ and +destroy+
10014
- # actions, a resourceful route declares them in a single line of code:
10015
- #
10016
- # resources :photos
10017
- #
10018
- # Sometimes, you have a resource that clients always look up without
10019
- # referencing an ID. A common example, /profile always shows the profile of
10020
- # the currently logged in user. In this case, you can use a singular resource
10021
- # to map /profile (rather than /profile/:id) to the show action.
10022
- #
10023
- # resource :profile
10024
- #
10025
- # It's common to have resources that are logically children of other
10026
- # resources:
10027
- #
10028
- # resources :magazines do
10029
- # resources :ads
10030
- # end
10031
- #
10032
- # You may wish to organize groups of controllers under a namespace. Most
10033
- # commonly, you might group a number of administrative controllers under
10034
- # an +admin+ namespace. You would place these controllers under the
10035
- # <tt>app/controllers/admin</tt> directory, and you can group them together
10036
- # in your router:
10037
- #
10038
- # namespace "admin" do
10039
- # resources :posts, :comments
10040
- # end
10041
- #
10042
- # Alternatively, you can add prefixes to your path without using a separate
10043
- # directory by using +scope+. +scope+ takes additional options which
10044
- # apply to all enclosed routes.
10045
- #
10046
- # scope path: "/cpanel", as: 'admin' do
10047
- # resources :posts, :comments
10048
- # end
10049
- #
10050
- # For more, see <tt>Routing::Mapper::Resources#resources</tt>,
10051
- # <tt>Routing::Mapper::Scoping#namespace</tt>, and
10052
- # <tt>Routing::Mapper::Scoping#scope</tt>.
10053
- #
10054
- # == Non-resourceful routes
10055
- #
10056
- # For routes that don't fit the <tt>resources</tt> mold, you can use the HTTP helper
10057
- # methods <tt>get</tt>, <tt>post</tt>, <tt>patch</tt>, <tt>put</tt> and <tt>delete</tt>.
10058
- #
10059
- # get 'post/:id', to: 'posts#show'
10060
- # post 'post/:id', to: 'posts#create_comment'
10061
- #
10062
- # Now, if you POST to <tt>/posts/:id</tt>, it will route to the <tt>create_comment</tt> action. A GET on the same
10063
- # URL will route to the <tt>show</tt> action.
10064
- #
10065
- # If your route needs to respond to more than one HTTP method (or all methods) then using the
10066
- # <tt>:via</tt> option on <tt>match</tt> is preferable.
10067
- #
10068
- # match 'post/:id', to: 'posts#show', via: [:get, :post]
10069
- #
10070
- # == Named routes
10071
- #
10072
- # Routes can be named by passing an <tt>:as</tt> option,
10073
- # allowing for easy reference within your source as +name_of_route_url+
10074
- # for the full URL and +name_of_route_path+ for the URI path.
10075
- #
10076
- # Example:
10077
- #
10078
- # # In config/routes.rb
10079
- # get '/login', to: 'accounts#login', as: 'login'
10080
- #
10081
- # # With render, redirect_to, tests, etc.
10082
- # redirect_to login_url
10083
- #
10084
- # Arguments can be passed as well.
10085
- #
10086
- # redirect_to show_item_path(id: 25)
10087
- #
10088
- # Use <tt>root</tt> as a shorthand to name a route for the root path "/".
10089
- #
10090
- # # In config/routes.rb
10091
- # root to: 'blogs#index'
10092
- #
10093
- # # would recognize http://www.example.com/ as
10094
- # params = { controller: 'blogs', action: 'index' }
10095
- #
10096
- # # and provide these named routes
10097
- # root_url # => 'http://www.example.com/'
10098
- # root_path # => '/'
10099
- #
10100
- # Note: when using +controller+, the route is simply named after the
10101
- # method you call on the block parameter rather than map.
10102
- #
10103
- # # In config/routes.rb
10104
- # controller :blog do
10105
- # get 'blog/show', to: :list
10106
- # get 'blog/delete', to: :delete
10107
- # get 'blog/edit', to: :edit
10108
- # end
10109
- #
10110
- # # provides named routes for show, delete, and edit
10111
- # link_to @article.title, blog_show_path(id: @article.id)
10112
- #
10113
- # == Pretty URLs
10114
- #
10115
- # Routes can generate pretty URLs. For example:
10116
- #
10117
- # get '/articles/:year/:month/:day', to: 'articles#find_by_id', constraints: {
10118
- # year: /\d{4}/,
10119
- # month: /\d{1,2}/,
10120
- # day: /\d{1,2}/
10121
- # }
10122
- #
10123
- # Using the route above, the URL "http://localhost:3000/articles/2005/11/06"
10124
- # maps to
10125
- #
10126
- # params = {year: '2005', month: '11', day: '06'}
10127
- #
10128
- # == Regular Expressions and parameters
10129
- # You can specify a regular expression to define a format for a parameter.
10130
- #
10131
- # controller 'geocode' do
10132
- # get 'geocode/:postalcode', to: :show, constraints: {
10133
- # postalcode: /\d{5}(-\d{4})?/
10134
- # }
10135
- # end
10136
- #
10137
- # Constraints can include the 'ignorecase' and 'extended syntax' regular
10138
- # expression modifiers:
10139
- #
10140
- # controller 'geocode' do
10141
- # get 'geocode/:postalcode', to: :show, constraints: {
10142
- # postalcode: /hx\d\d\s\d[a-z]{2}/i
10143
- # }
10144
- # end
10145
- #
10146
- # controller 'geocode' do
10147
- # get 'geocode/:postalcode', to: :show, constraints: {
10148
- # postalcode: /# Postalcode format
10149
- # \d{5} #Prefix
10150
- # (-\d{4})? #Suffix
10151
- # /x
10152
- # }
10153
- # end
10154
- #
10155
- # Using the multiline modifier will raise an +ArgumentError+.
10156
- # Encoding regular expression modifiers are silently ignored. The
10157
- # match will always use the default encoding or ASCII.
10158
- #
10159
- # == External redirects
10160
- #
10161
- # You can redirect any path to another path using the redirect helper in your router:
10162
- #
10163
- # get "/stories", to: redirect("/posts")
10164
- #
10165
- # == Unicode character routes
10166
- #
10167
- # You can specify unicode character routes in your router:
10168
- #
10169
- # get "(trim non-ascii characters)", to: "welcome#index"
10170
- #
10171
- # == Routing to Rack Applications
10172
- #
10173
- # Instead of a String, like <tt>posts#index</tt>, which corresponds to the
10174
- # index action in the PostsController, you can specify any Rack application
10175
- # as the endpoint for a matcher:
10176
- #
10177
- # get "/application.js", to: Sprockets
10178
- #
10179
- # == Reloading routes
10180
- #
10181
- # You can reload routes if you feel you must:
10182
- #
10183
- # Rails.application.reload_routes!
10184
- #
10185
- # This will clear all named routes and reload config/routes.rb if the file has been modified from
10186
- # last load. To absolutely force reloading, use <tt>reload!</tt>.
10187
- #
10188
- # == Testing Routes
10189
- #
10190
- # The two main methods for testing your routes:
10191
- #
10192
- # === +assert_routing+
10193
- #
10194
- # def test_movie_route_properly_splits
10195
- # opts = {controller: "plugin", action: "checkout", id: "2"}
10196
- # assert_routing "plugin/checkout/2", opts
10197
- # end
10198
- #
10199
- # +assert_routing+ lets you test whether or not the route properly resolves into options.
10200
- #
10201
- # === +assert_recognizes+
10202
- #
10203
- # def test_route_has_options
10204
- # opts = {controller: "plugin", action: "show", id: "12"}
10205
- # assert_recognizes opts, "/plugins/show/12"
10206
- # end
10207
- #
10208
- # Note the subtle difference between the two: +assert_routing+ tests that
10209
- # a URL fits options while +assert_recognizes+ tests that a URL
10210
- # breaks into parameters properly.
10211
- #
10212
- # In tests you can simply pass the URL or named route to +get+ or +post+.
10213
- #
10214
- # def send_to_jail
10215
- # get '/jail'
10216
- # assert_response :success
10217
- # end
10218
- #
10219
- # def goes_to_login
10220
- # get login_url
10221
- # #...
10222
- # end
10223
- #
10224
- # == View a list of all your routes
10225
- #
10226
- # rails routes
10227
- #
10228
- # Target a specific controller with <tt>-c</tt>, or grep routes
10229
- # using <tt>-g</tt>. Useful in conjunction with <tt>--expanded</tt>
10230
- # which displays routes vertically.
10231
- module Routing
10232
- extend ActiveSupport::Autoload
10233
-
10234
- SEPARATORS: ::Array[untyped]
10235
-
10236
- HTTP_METHODS: ::Array[untyped]
10237
- end
10238
- end
10239
-
10240
10097
  module ActionDispatch
10241
10098
  module Routing
10242
10099
  class Redirect < Endpoint
@@ -10278,6 +10135,9 @@ module ActionDispatch
10278
10135
  end
10279
10136
 
10280
10137
  class OptionRedirect < Redirect
10138
+ # :nodoc:
10139
+ alias options block
10140
+
10281
10141
  def path: (untyped params, untyped request) -> untyped
10282
10142
 
10283
10143
  def inspect: () -> ::String
@@ -10340,6 +10200,12 @@ module ActionDispatch
10340
10200
  module Routing
10341
10201
  # :stopdoc:
10342
10202
  class RouteSet
10203
+ # Since the router holds references to many parts of the system
10204
+ # like engines, controllers and the application itself, inspecting
10205
+ # the route set can actually be really slow, therefore we default
10206
+ # alias inspect to to_s.
10207
+ alias inspect to_s
10208
+
10343
10209
  class Dispatcher < Routing::Endpoint
10344
10210
  def initialize: (untyped raise_on_name_error) -> untyped
10345
10211
 
@@ -10384,6 +10250,12 @@ module ActionDispatch
10384
10250
 
10385
10251
  def key?: (untyped name) -> (nil | untyped)
10386
10252
 
10253
+ alias []= add
10254
+
10255
+ alias [] get
10256
+
10257
+ alias clear clear!
10258
+
10387
10259
  def each: () { (untyped, untyped) -> untyped } -> untyped
10388
10260
 
10389
10261
  def names: () -> untyped
@@ -10467,6 +10339,8 @@ module ActionDispatch
10467
10339
 
10468
10340
  attr_reader polymorphic_mappings: untyped
10469
10341
 
10342
+ alias routes set
10343
+
10470
10344
  def self.default_resources_path_names: () -> { new: "new", edit: "edit" }
10471
10345
 
10472
10346
  def self.new_with_config: (untyped config) -> untyped
@@ -10629,6 +10503,8 @@ module ActionDispatch
10629
10503
 
10630
10504
  attr_accessor routes: untyped
10631
10505
 
10506
+ alias _routes routes
10507
+
10632
10508
  def initialize: (untyped routes, untyped scope, untyped helpers, ?untyped? script_namer) -> untyped
10633
10509
 
10634
10510
  def url_options: () -> untyped
@@ -10826,6 +10702,259 @@ module ActionDispatch
10826
10702
  end
10827
10703
  end
10828
10704
 
10705
+ module ActionDispatch
10706
+ # The routing module provides URL rewriting in native Ruby. It's a way to
10707
+ # redirect incoming requests to controllers and actions. This replaces
10708
+ # mod_rewrite rules. Best of all, Rails' \Routing works with any web server.
10709
+ # Routes are defined in <tt>config/routes.rb</tt>.
10710
+ #
10711
+ # Think of creating routes as drawing a map for your requests. The map tells
10712
+ # them where to go based on some predefined pattern:
10713
+ #
10714
+ # Rails.application.routes.draw do
10715
+ # Pattern 1 tells some request to go to one place
10716
+ # Pattern 2 tell them to go to another
10717
+ # ...
10718
+ # end
10719
+ #
10720
+ # The following symbols are special:
10721
+ #
10722
+ # :controller maps to your controller name
10723
+ # :action maps to an action with your controllers
10724
+ #
10725
+ # Other names simply map to a parameter as in the case of <tt>:id</tt>.
10726
+ #
10727
+ # == Resources
10728
+ #
10729
+ # Resource routing allows you to quickly declare all of the common routes
10730
+ # for a given resourceful controller. Instead of declaring separate routes
10731
+ # for your +index+, +show+, +new+, +edit+, +create+, +update+ and +destroy+
10732
+ # actions, a resourceful route declares them in a single line of code:
10733
+ #
10734
+ # resources :photos
10735
+ #
10736
+ # Sometimes, you have a resource that clients always look up without
10737
+ # referencing an ID. A common example, /profile always shows the profile of
10738
+ # the currently logged in user. In this case, you can use a singular resource
10739
+ # to map /profile (rather than /profile/:id) to the show action.
10740
+ #
10741
+ # resource :profile
10742
+ #
10743
+ # It's common to have resources that are logically children of other
10744
+ # resources:
10745
+ #
10746
+ # resources :magazines do
10747
+ # resources :ads
10748
+ # end
10749
+ #
10750
+ # You may wish to organize groups of controllers under a namespace. Most
10751
+ # commonly, you might group a number of administrative controllers under
10752
+ # an +admin+ namespace. You would place these controllers under the
10753
+ # <tt>app/controllers/admin</tt> directory, and you can group them together
10754
+ # in your router:
10755
+ #
10756
+ # namespace "admin" do
10757
+ # resources :posts, :comments
10758
+ # end
10759
+ #
10760
+ # Alternatively, you can add prefixes to your path without using a separate
10761
+ # directory by using +scope+. +scope+ takes additional options which
10762
+ # apply to all enclosed routes.
10763
+ #
10764
+ # scope path: "/cpanel", as: 'admin' do
10765
+ # resources :posts, :comments
10766
+ # end
10767
+ #
10768
+ # For more, see <tt>Routing::Mapper::Resources#resources</tt>,
10769
+ # <tt>Routing::Mapper::Scoping#namespace</tt>, and
10770
+ # <tt>Routing::Mapper::Scoping#scope</tt>.
10771
+ #
10772
+ # == Non-resourceful routes
10773
+ #
10774
+ # For routes that don't fit the <tt>resources</tt> mold, you can use the HTTP helper
10775
+ # methods <tt>get</tt>, <tt>post</tt>, <tt>patch</tt>, <tt>put</tt> and <tt>delete</tt>.
10776
+ #
10777
+ # get 'post/:id', to: 'posts#show'
10778
+ # post 'post/:id', to: 'posts#create_comment'
10779
+ #
10780
+ # Now, if you POST to <tt>/posts/:id</tt>, it will route to the <tt>create_comment</tt> action. A GET on the same
10781
+ # URL will route to the <tt>show</tt> action.
10782
+ #
10783
+ # If your route needs to respond to more than one HTTP method (or all methods) then using the
10784
+ # <tt>:via</tt> option on <tt>match</tt> is preferable.
10785
+ #
10786
+ # match 'post/:id', to: 'posts#show', via: [:get, :post]
10787
+ #
10788
+ # == Named routes
10789
+ #
10790
+ # Routes can be named by passing an <tt>:as</tt> option,
10791
+ # allowing for easy reference within your source as +name_of_route_url+
10792
+ # for the full URL and +name_of_route_path+ for the URI path.
10793
+ #
10794
+ # Example:
10795
+ #
10796
+ # # In config/routes.rb
10797
+ # get '/login', to: 'accounts#login', as: 'login'
10798
+ #
10799
+ # # With render, redirect_to, tests, etc.
10800
+ # redirect_to login_url
10801
+ #
10802
+ # Arguments can be passed as well.
10803
+ #
10804
+ # redirect_to show_item_path(id: 25)
10805
+ #
10806
+ # Use <tt>root</tt> as a shorthand to name a route for the root path "/".
10807
+ #
10808
+ # # In config/routes.rb
10809
+ # root to: 'blogs#index'
10810
+ #
10811
+ # # would recognize http://www.example.com/ as
10812
+ # params = { controller: 'blogs', action: 'index' }
10813
+ #
10814
+ # # and provide these named routes
10815
+ # root_url # => 'http://www.example.com/'
10816
+ # root_path # => '/'
10817
+ #
10818
+ # Note: when using +controller+, the route is simply named after the
10819
+ # method you call on the block parameter rather than map.
10820
+ #
10821
+ # # In config/routes.rb
10822
+ # controller :blog do
10823
+ # get 'blog/show', to: :list
10824
+ # get 'blog/delete', to: :delete
10825
+ # get 'blog/edit', to: :edit
10826
+ # end
10827
+ #
10828
+ # # provides named routes for show, delete, and edit
10829
+ # link_to @article.title, blog_show_path(id: @article.id)
10830
+ #
10831
+ # == Pretty URLs
10832
+ #
10833
+ # Routes can generate pretty URLs. For example:
10834
+ #
10835
+ # get '/articles/:year/:month/:day', to: 'articles#find_by_id', constraints: {
10836
+ # year: /\d{4}/,
10837
+ # month: /\d{1,2}/,
10838
+ # day: /\d{1,2}/
10839
+ # }
10840
+ #
10841
+ # Using the route above, the URL "http://localhost:3000/articles/2005/11/06"
10842
+ # maps to
10843
+ #
10844
+ # params = {year: '2005', month: '11', day: '06'}
10845
+ #
10846
+ # == Regular Expressions and parameters
10847
+ # You can specify a regular expression to define a format for a parameter.
10848
+ #
10849
+ # controller 'geocode' do
10850
+ # get 'geocode/:postalcode', to: :show, constraints: {
10851
+ # postalcode: /\d{5}(-\d{4})?/
10852
+ # }
10853
+ # end
10854
+ #
10855
+ # Constraints can include the 'ignorecase' and 'extended syntax' regular
10856
+ # expression modifiers:
10857
+ #
10858
+ # controller 'geocode' do
10859
+ # get 'geocode/:postalcode', to: :show, constraints: {
10860
+ # postalcode: /hx\d\d\s\d[a-z]{2}/i
10861
+ # }
10862
+ # end
10863
+ #
10864
+ # controller 'geocode' do
10865
+ # get 'geocode/:postalcode', to: :show, constraints: {
10866
+ # postalcode: /# Postalcode format
10867
+ # \d{5} #Prefix
10868
+ # (-\d{4})? #Suffix
10869
+ # /x
10870
+ # }
10871
+ # end
10872
+ #
10873
+ # Using the multiline modifier will raise an +ArgumentError+.
10874
+ # Encoding regular expression modifiers are silently ignored. The
10875
+ # match will always use the default encoding or ASCII.
10876
+ #
10877
+ # == External redirects
10878
+ #
10879
+ # You can redirect any path to another path using the redirect helper in your router:
10880
+ #
10881
+ # get "/stories", to: redirect("/posts")
10882
+ #
10883
+ # == Unicode character routes
10884
+ #
10885
+ # You can specify unicode character routes in your router:
10886
+ #
10887
+ # get "(trim non-ascii characters)", to: "welcome#index"
10888
+ #
10889
+ # == Routing to Rack Applications
10890
+ #
10891
+ # Instead of a String, like <tt>posts#index</tt>, which corresponds to the
10892
+ # index action in the PostsController, you can specify any Rack application
10893
+ # as the endpoint for a matcher:
10894
+ #
10895
+ # get "/application.js", to: Sprockets
10896
+ #
10897
+ # == Reloading routes
10898
+ #
10899
+ # You can reload routes if you feel you must:
10900
+ #
10901
+ # Rails.application.reload_routes!
10902
+ #
10903
+ # This will clear all named routes and reload config/routes.rb if the file has been modified from
10904
+ # last load. To absolutely force reloading, use <tt>reload!</tt>.
10905
+ #
10906
+ # == Testing Routes
10907
+ #
10908
+ # The two main methods for testing your routes:
10909
+ #
10910
+ # === +assert_routing+
10911
+ #
10912
+ # def test_movie_route_properly_splits
10913
+ # opts = {controller: "plugin", action: "checkout", id: "2"}
10914
+ # assert_routing "plugin/checkout/2", opts
10915
+ # end
10916
+ #
10917
+ # +assert_routing+ lets you test whether or not the route properly resolves into options.
10918
+ #
10919
+ # === +assert_recognizes+
10920
+ #
10921
+ # def test_route_has_options
10922
+ # opts = {controller: "plugin", action: "show", id: "12"}
10923
+ # assert_recognizes opts, "/plugins/show/12"
10924
+ # end
10925
+ #
10926
+ # Note the subtle difference between the two: +assert_routing+ tests that
10927
+ # a URL fits options while +assert_recognizes+ tests that a URL
10928
+ # breaks into parameters properly.
10929
+ #
10930
+ # In tests you can simply pass the URL or named route to +get+ or +post+.
10931
+ #
10932
+ # def send_to_jail
10933
+ # get '/jail'
10934
+ # assert_response :success
10935
+ # end
10936
+ #
10937
+ # def goes_to_login
10938
+ # get login_url
10939
+ # #...
10940
+ # end
10941
+ #
10942
+ # == View a list of all your routes
10943
+ #
10944
+ # rails routes
10945
+ #
10946
+ # Target a specific controller with <tt>-c</tt>, or grep routes
10947
+ # using <tt>-g</tt>. Useful in conjunction with <tt>--expanded</tt>
10948
+ # which displays routes vertically.
10949
+ module Routing
10950
+ extend ActiveSupport::Autoload
10951
+
10952
+ SEPARATORS: ::Array[untyped]
10953
+
10954
+ HTTP_METHODS: ::Array[untyped]
10955
+ end
10956
+ end
10957
+
10829
10958
  module ActionDispatch
10830
10959
  # = System Testing
10831
10960
  #
@@ -11128,20 +11257,6 @@ module ActionDispatch
11128
11257
  end
11129
11258
  end
11130
11259
 
11131
- module ActionDispatch
11132
- module Assertions
11133
- extend ActiveSupport::Concern
11134
-
11135
- include ResponseAssertions
11136
-
11137
- include RoutingAssertions
11138
-
11139
- include Rails::Dom::Testing::Assertions
11140
-
11141
- def html_document: () -> untyped
11142
- end
11143
- end
11144
-
11145
11260
  module ActionDispatch
11146
11261
  module Assertions
11147
11262
  # A small suite of assertions that test responses from \Rails applications.
@@ -11305,6 +11420,20 @@ module ActionDispatch
11305
11420
  end
11306
11421
  end
11307
11422
 
11423
+ module ActionDispatch
11424
+ module Assertions
11425
+ extend ActiveSupport::Concern
11426
+
11427
+ include ResponseAssertions
11428
+
11429
+ include RoutingAssertions
11430
+
11431
+ include Rails::Dom::Testing::Assertions
11432
+
11433
+ def html_document: () -> untyped
11434
+ end
11435
+ end
11436
+
11308
11437
  module ActionDispatch
11309
11438
  module Integration
11310
11439
  # nodoc:
@@ -11448,6 +11577,11 @@ module ActionDispatch
11448
11577
  # process :get, '/author', params: { since: 201501011400 }
11449
11578
  def process: (untyped method, untyped path, ?params: untyped? params, ?headers: untyped? headers, ?env: untyped? env, ?xhr: bool xhr, ?as: untyped? as) -> untyped
11450
11579
 
11580
+ # Set the host name to use in the next request.
11581
+ #
11582
+ # session.host! "www.example.com"
11583
+ alias host! host=
11584
+
11451
11585
  def _mock_session: () -> untyped
11452
11586
 
11453
11587
  def build_full_uri: (untyped path, untyped env) -> ::String
@@ -11654,6 +11788,26 @@ module ActionDispatch
11654
11788
  end
11655
11789
  end
11656
11790
 
11791
+ module Rack
11792
+ end
11793
+
11794
+ module ActionDispatch
11795
+ extend ActiveSupport::Autoload
11796
+
11797
+ class IllegalStateError < StandardError
11798
+ end
11799
+
11800
+ class MissingController[T] < NameError[T]
11801
+ end
11802
+
11803
+ module Http
11804
+ extend ActiveSupport::Autoload
11805
+ end
11806
+
11807
+ module Session
11808
+ end
11809
+ end
11810
+
11657
11811
  module ActionPack
11658
11812
  # Returns the version of the currently loaded Action Pack as a <tt>Gem::Version</tt>
11659
11813
  def self.gem_version: () -> Gem::Version