validated_object 2.0.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0c1aef88260ebc19d28fa8bd90a400ec6d05c45a60fea1632ebb1b81bbe2b456
4
- data.tar.gz: 239216afd24adc90bb9ae4641253443a91d303e312f49b7bc6f348c541563f5f
3
+ metadata.gz: beeec5e7c798a88c65b4f5a492ce3e59505dacf6a0a1f8de4da90ca59c73f873
4
+ data.tar.gz: 3c18ec02b076c71a020eaf7825fa2014321e09ee43a5490373698bfd8deb3c59
5
5
  SHA512:
6
- metadata.gz: 032c79475b1a99e990f4b04da2cda94cd5cca556cb38e385a783300ef675bfcd2ed51cc055d653b86f77b70270de87518cd7296b1c754a108f11c70d4e989c86
7
- data.tar.gz: affdd5eb1d8dd2525c6b0fd7730fb907317ce0ad3bf8f105b42d67c66aba69e3389c65f7eae85dbfc67ed273e242761a34c67210153f4d9cbaaa694a3e6cac57
6
+ metadata.gz: 279331de46a2f201ee2eafcb1633ab0ad3b428fa7651276e7754a4e06b6a740f1c473fd14e6296d428d74e3ee39c962bdbcc0e0ebaf6f7bbc7a7fdd393bc56c1
7
+ data.tar.gz: afe9a3252da50c7bd028ebbfec81729e0ecf71e0c8c5ff1272d31e616593d41e031a87b11602cfb0337dac3c21d0abad1af024007757c3cab462df66c79fa163
@@ -2,4 +2,5 @@ language: ruby
2
2
  rvm:
3
3
  - 2.2.2
4
4
  - 2.3.1
5
- before_install: gem install bundler -v 1.10.6
5
+ - 2.7.1
6
+ before_install: gem install bundler
data/README.md CHANGED
@@ -135,8 +135,7 @@ git commits and tags, and push the `.gem` file to
135
135
 
136
136
  ## Contributing
137
137
 
138
- Bug reports and pull requests are welcome on GitHub at
139
- https://github.com/dogweather/validated_object.
138
+ Bug reports and pull requests are welcome on GitHub.
140
139
 
141
140
 
142
141
  ## License
@@ -1,6 +1,8 @@
1
+ # typed: true
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require 'active_model'
5
+ require 'sorbet-runtime'
4
6
  require 'validated_object/version'
5
7
 
6
8
  module ValidatedObject
@@ -41,8 +43,11 @@ module ValidatedObject
41
43
  # @see http://www.rubyinside.com/rails-3-0s-activemodel-how-to-give-ruby-classes-some-activerecord-magic-2937.html Rails 3.0′s ActiveModel: How To Give Ruby Classes Some ActiveRecord Magic, Peter Cooper
42
44
  class Base
43
45
  include ActiveModel::Validations
46
+ extend T::Sig
44
47
 
45
- EMPTY_HASH = {}.freeze
48
+ SymbolHash = T.type_alias { T::Hash[Symbol, T.untyped] }
49
+
50
+ EMPTY_HASH = T.let({}.freeze, SymbolHash)
46
51
 
47
52
  # A private class definition, not intended to
48
53
  # be used directly. Implements a pseudo-boolean class
@@ -58,20 +63,21 @@ module ValidatedObject
58
63
  #
59
64
  # @raise [ArgumentError] if the object is not valid at the
60
65
  # end of initialization or `attributes` is not a Hash.
61
- def initialize(attributes=EMPTY_HASH)
62
- raise ArgumentError, "#{attributes} is not a Hash" unless attributes.is_a?(Hash)
63
-
66
+ sig { params(attributes: SymbolHash).returns(ValidatedObject::Base)}
67
+ def initialize(attributes = EMPTY_HASH)
64
68
  set_instance_variables from_hash: attributes
65
69
  check_validations!
66
- return self
70
+ self
67
71
  end
68
72
 
69
73
  # Run any validations and raise an error if invalid.
70
74
  #
71
75
  # @raise [ArgumentError] if any validations fail.
72
76
  # @return [ValidatedObject::Base] the receiver
77
+ sig {returns(ValidatedObject::Base)}
73
78
  def check_validations!
74
79
  raise ArgumentError, errors.full_messages.join('; ') if invalid?
80
+
75
81
  self
76
82
  end
77
83
 
@@ -88,47 +94,70 @@ module ValidatedObject
88
94
  # validates :neutered, type: Boolean, allow_nil: true # Typed but optional
89
95
  # end
90
96
  class TypeValidator < ActiveModel::EachValidator
97
+ extend T::Sig
98
+
91
99
  # @return [nil]
100
+ sig do
101
+ params(
102
+ record: T.untyped,
103
+ attribute: T.untyped,
104
+ value: T.untyped
105
+ )
106
+ .void
107
+ end
92
108
  def validate_each(record, attribute, value)
93
- expected_class = options[:with]
109
+ validation_options = T.let(options, SymbolHash)
110
+
111
+ expected_class = validation_options[:with]
94
112
 
95
113
  return if pseudo_boolean?(expected_class, value) ||
96
114
  expected_class?(expected_class, value)
97
115
 
98
- save_error(record, attribute, value, options)
116
+ save_error(record, attribute, value, validation_options)
99
117
  end
100
118
 
101
-
102
119
  private
103
120
 
121
+ sig {params(expected_class: T.untyped, value: T.untyped).returns(T.untyped)}
104
122
  def pseudo_boolean?(expected_class, value)
105
123
  expected_class == Boolean && boolean?(value)
106
124
  end
107
125
 
126
+ sig {params(expected_class: T.untyped, value: T.untyped).returns(T.untyped)}
108
127
  def expected_class?(expected_class, value)
109
128
  value.is_a?(expected_class)
110
129
  end
111
130
 
131
+ sig {params(value: T.untyped).returns(T.untyped)}
112
132
  def boolean?(value)
113
133
  value.is_a?(TrueClass) || value.is_a?(FalseClass)
114
134
  end
115
135
 
116
- def save_error(record, attribute, value, options)
136
+ sig do
137
+ params(
138
+ record: T.untyped,
139
+ attribute: T.untyped,
140
+ value: T.untyped,
141
+ validation_options: SymbolHash
142
+ )
143
+ .void
144
+ end
145
+ def save_error(record, attribute, value, validation_options)
117
146
  record.errors.add attribute,
118
- options[:message] || "is a #{value.class}, not a #{options[:with]}"
147
+ validation_options[:message] || "is a #{value.class}, not a #{validation_options[:with]}"
119
148
  end
120
149
  end
121
150
 
122
-
123
151
  private
124
152
 
153
+ sig {params(from_hash: SymbolHash).void}
125
154
  def set_instance_variables(from_hash:)
126
155
  from_hash.each do |variable_name, variable_value|
127
156
  # Test for the attribute reader
128
- self.send variable_name.to_sym
157
+ send variable_name.to_sym
129
158
 
130
159
  # Set value in a way that succeeds even if attr is read-only
131
- self.instance_variable_set "@#{variable_name}".to_sym, variable_value
160
+ instance_variable_set "@#{variable_name}".to_sym, variable_value
132
161
  end
133
162
  end
134
163
  end
@@ -1,5 +1,6 @@
1
+ # typed: strict
1
2
  # frozen_string_literal: true
2
3
 
3
4
  module ValidatedObject
4
- VERSION = '2.0.3'
5
+ VERSION = '2.1.0'
5
6
  end
@@ -1,3 +1,4 @@
1
+ # typed: ignore
1
2
  require 'date'
2
3
  require 'validated_object'
3
4
 
@@ -0,0 +1,2 @@
1
+ --dir
2
+ .
@@ -0,0 +1,210 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi gems
3
+
4
+ # typed: ignore
5
+ #
6
+ # If you would like to make changes to this file, great! Please create the gem's shim here:
7
+ #
8
+ # https://github.com/sorbet/sorbet-typed/new/master?filename=lib/activemodel/all/activemodel.rbi
9
+ #
10
+ # activemodel-6.0.3.2
11
+
12
+ module ActiveModel
13
+ def self.eager_load!; end
14
+ def self.gem_version; end
15
+ def self.version; end
16
+ extend ActiveSupport::Autoload
17
+ end
18
+ module ActiveModel::VERSION
19
+ end
20
+ module ActiveModel::Serializers
21
+ extend ActiveSupport::Autoload
22
+ end
23
+ module ActiveModel::Validations
24
+ def errors; end
25
+ def initialize_dup(other); end
26
+ def invalid?(context = nil); end
27
+ def raise_validation_error; end
28
+ def read_attribute_for_validation(*arg0); end
29
+ def run_validations!; end
30
+ def valid?(context = nil); end
31
+ def validate!(context = nil); end
32
+ def validate(context = nil); end
33
+ def validates_with(*args, &block); end
34
+ extend ActiveSupport::Concern
35
+ end
36
+ module ActiveModel::Validations::ClassMethods
37
+ def _parse_validates_options(options); end
38
+ def _validates_default_keys; end
39
+ def attribute_method?(attribute); end
40
+ def clear_validators!; end
41
+ def inherited(base); end
42
+ def validate(*args, &block); end
43
+ def validates!(*attributes); end
44
+ def validates(*attributes); end
45
+ def validates_each(*attr_names, &block); end
46
+ def validates_with(*args, &block); end
47
+ def validators; end
48
+ def validators_on(*attributes); end
49
+ end
50
+ module ActiveModel::Validations::Clusivity
51
+ def check_validity!; end
52
+ def delimiter; end
53
+ def include?(record, value); end
54
+ def inclusion_method(enumerable); end
55
+ end
56
+ class ActiveModel::Validator
57
+ def initialize(options = nil); end
58
+ def kind; end
59
+ def options; end
60
+ def self.kind; end
61
+ def validate(record); end
62
+ end
63
+ class ActiveModel::EachValidator < ActiveModel::Validator
64
+ def attributes; end
65
+ def check_validity!; end
66
+ def initialize(options); end
67
+ def validate(record); end
68
+ def validate_each(record, attribute, value); end
69
+ end
70
+ class ActiveModel::BlockValidator < ActiveModel::EachValidator
71
+ def initialize(options, &block); end
72
+ def validate_each(record, attribute, value); end
73
+ end
74
+ class ActiveModel::Validations::InclusionValidator < ActiveModel::EachValidator
75
+ def validate_each(record, attribute, value); end
76
+ include ActiveModel::Validations::Clusivity
77
+ end
78
+ module ActiveModel::Validations::HelperMethods
79
+ def _merge_attributes(attr_names); end
80
+ def validates_absence_of(*attr_names); end
81
+ def validates_acceptance_of(*attr_names); end
82
+ def validates_confirmation_of(*attr_names); end
83
+ def validates_exclusion_of(*attr_names); end
84
+ def validates_format_of(*attr_names); end
85
+ def validates_inclusion_of(*attr_names); end
86
+ def validates_length_of(*attr_names); end
87
+ def validates_numericality_of(*attr_names); end
88
+ def validates_presence_of(*attr_names); end
89
+ def validates_size_of(*attr_names); end
90
+ end
91
+ class ActiveModel::Validations::AbsenceValidator < ActiveModel::EachValidator
92
+ def validate_each(record, attr_name, value); end
93
+ end
94
+ class ActiveModel::Validations::NumericalityValidator < ActiveModel::EachValidator
95
+ def allow_only_integer?(record); end
96
+ def check_validity!; end
97
+ def filtered_options(value); end
98
+ def is_hexadecimal_literal?(raw_value); end
99
+ def is_integer?(raw_value); end
100
+ def is_number?(raw_value); end
101
+ def parse_as_number(raw_value); end
102
+ def record_attribute_changed_in_place?(record, attr_name); end
103
+ def validate_each(record, attr_name, value); end
104
+ end
105
+ module ActiveModel::Validations::Callbacks
106
+ def run_validations!; end
107
+ extend ActiveSupport::Concern
108
+ end
109
+ module ActiveModel::Validations::Callbacks::ClassMethods
110
+ def after_validation(*args, &block); end
111
+ def before_validation(*args, &block); end
112
+ end
113
+ class ActiveModel::Validations::ExclusionValidator < ActiveModel::EachValidator
114
+ def validate_each(record, attribute, value); end
115
+ include ActiveModel::Validations::Clusivity
116
+ end
117
+ class ActiveModel::Validations::ConfirmationValidator < ActiveModel::EachValidator
118
+ def confirmation_value_equal?(record, attribute, value, confirmed); end
119
+ def initialize(options); end
120
+ def setup!(klass); end
121
+ def validate_each(record, attribute, value); end
122
+ end
123
+ class ActiveModel::Validations::FormatValidator < ActiveModel::EachValidator
124
+ def check_options_validity(name); end
125
+ def check_validity!; end
126
+ def option_call(record, name); end
127
+ def record_error(record, attribute, name, value); end
128
+ def regexp_using_multiline_anchors?(regexp); end
129
+ def validate_each(record, attribute, value); end
130
+ end
131
+ class ActiveModel::Validations::PresenceValidator < ActiveModel::EachValidator
132
+ def validate_each(record, attr_name, value); end
133
+ end
134
+ class ActiveModel::Validations::LengthValidator < ActiveModel::EachValidator
135
+ def check_validity!; end
136
+ def initialize(options); end
137
+ def skip_nil_check?(key); end
138
+ def validate_each(record, attribute, value); end
139
+ end
140
+ class ActiveModel::Validations::AcceptanceValidator < ActiveModel::EachValidator
141
+ def acceptable_option?(value); end
142
+ def initialize(options); end
143
+ def setup!(klass); end
144
+ def validate_each(record, attribute, value); end
145
+ end
146
+ class ActiveModel::Validations::AcceptanceValidator::LazilyDefineAttributes < Module
147
+ def ==(other); end
148
+ def attributes; end
149
+ def define_on(klass); end
150
+ def included(klass); end
151
+ def initialize(attributes); end
152
+ def matches?(method_name); end
153
+ end
154
+ class ActiveModel::Validations::WithValidator < ActiveModel::EachValidator
155
+ def validate_each(record, attr, val); end
156
+ end
157
+ class ActiveModel::ValidationError < StandardError
158
+ def initialize(model); end
159
+ def model; end
160
+ end
161
+ class ActiveModel::Name
162
+ def !~(**, &&); end
163
+ def <=>(**, &&); end
164
+ def ==(arg); end
165
+ def ===(arg); end
166
+ def =~(**, &&); end
167
+ def _singularize(string); end
168
+ def as_json(**, &&); end
169
+ def cache_key; end
170
+ def collection; end
171
+ def element; end
172
+ def eql?(**, &&); end
173
+ def human(options = nil); end
174
+ def i18n_key; end
175
+ def initialize(klass, namespace = nil, name = nil); end
176
+ def match?(**, &&); end
177
+ def name; end
178
+ def param_key; end
179
+ def plural; end
180
+ def route_key; end
181
+ def singular; end
182
+ def singular_route_key; end
183
+ def to_s(**, &&); end
184
+ def to_str(**, &&); end
185
+ include Comparable
186
+ end
187
+ module ActiveModel::Naming
188
+ def model_name; end
189
+ def self.extended(base); end
190
+ def self.model_name_from_record_or_class(record_or_class); end
191
+ def self.param_key(record_or_class); end
192
+ def self.plural(record_or_class); end
193
+ def self.route_key(record_or_class); end
194
+ def self.singular(record_or_class); end
195
+ def self.singular_route_key(record_or_class); end
196
+ def self.uncountable?(record_or_class); end
197
+ end
198
+ module ActiveModel::Callbacks
199
+ def _define_after_model_callback(klass, callback); end
200
+ def _define_around_model_callback(klass, callback); end
201
+ def _define_before_model_callback(klass, callback); end
202
+ def define_model_callbacks(*callbacks); end
203
+ def self.extended(base); end
204
+ end
205
+ module ActiveModel::Translation
206
+ def human_attribute_name(attribute, options = nil); end
207
+ def i18n_scope; end
208
+ def lookup_ancestors; end
209
+ include ActiveModel::Naming
210
+ end
@@ -0,0 +1,902 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi gems
3
+
4
+ # typed: ignore
5
+ #
6
+ # If you would like to make changes to this file, great! Please create the gem's shim here:
7
+ #
8
+ # https://github.com/sorbet/sorbet-typed/new/master?filename=lib/activesupport/all/activesupport.rbi
9
+ #
10
+ # activesupport-6.0.3.2
11
+
12
+ class Hash
13
+ def _deep_transform_keys_in_object!(object, &block); end
14
+ def _deep_transform_keys_in_object(object, &block); end
15
+ def assert_valid_keys(*valid_keys); end
16
+ def blank?; end
17
+ def deep_merge!(other_hash, &block); end
18
+ def deep_merge(other_hash, &block); end
19
+ def deep_stringify_keys!; end
20
+ def deep_stringify_keys; end
21
+ def deep_symbolize_keys!; end
22
+ def deep_symbolize_keys; end
23
+ def deep_transform_keys!(&block); end
24
+ def deep_transform_keys(&block); end
25
+ def except!(*keys); end
26
+ def except(*keys); end
27
+ def extract!(*keys); end
28
+ def extractable_options?; end
29
+ def slice!(*keys); end
30
+ def stringify_keys!; end
31
+ def stringify_keys; end
32
+ def symbolize_keys!; end
33
+ def symbolize_keys; end
34
+ def to_options!; end
35
+ def to_options; end
36
+ def to_param(namespace = nil); end
37
+ def to_query(namespace = nil); end
38
+ end
39
+ module ActiveSupport
40
+ def self.eager_load!; end
41
+ def self.gem_version; end
42
+ def self.test_order; end
43
+ def self.test_order=(obj); end
44
+ def self.to_time_preserves_timezone; end
45
+ def self.to_time_preserves_timezone=(value); end
46
+ def self.version; end
47
+ def test_order; end
48
+ def test_order=(obj); end
49
+ extend ActiveSupport::Autoload
50
+ extend ActiveSupport::LazyLoadHooks
51
+ end
52
+ module ActiveSupport::LazyLoadHooks
53
+ def execute_hook(name, base, options, block); end
54
+ def on_load(name, options = nil, &block); end
55
+ def run_load_hooks(name, base = nil); end
56
+ def self.extended(base); end
57
+ def with_execution_control(name, block, once); end
58
+ end
59
+ module Kernel
60
+ def class_eval(*args, &block); end
61
+ def enable_warnings; end
62
+ def self.enable_warnings; end
63
+ def self.silence_warnings; end
64
+ def self.suppress(*exception_classes); end
65
+ def self.with_warnings(flag); end
66
+ def silence_warnings; end
67
+ def suppress(*exception_classes); end
68
+ def with_warnings(flag); end
69
+ end
70
+ class Module
71
+ def anonymous?; end
72
+ def cattr_accessor(*syms, instance_reader: nil, instance_writer: nil, instance_accessor: nil, default: nil, &blk); end
73
+ def cattr_reader(*syms, instance_reader: nil, instance_accessor: nil, default: nil); end
74
+ def cattr_writer(*syms, instance_writer: nil, instance_accessor: nil, default: nil); end
75
+ def delegate(*methods, to: nil, prefix: nil, allow_nil: nil, private: nil); end
76
+ def delegate_missing_to(target); end
77
+ def deprecate(*method_names); end
78
+ def mattr_accessor(*syms, instance_reader: nil, instance_writer: nil, instance_accessor: nil, default: nil, &blk); end
79
+ def mattr_reader(*syms, instance_reader: nil, instance_accessor: nil, default: nil); end
80
+ def mattr_writer(*syms, instance_writer: nil, instance_accessor: nil, default: nil); end
81
+ def method_visibility(method); end
82
+ def module_parent; end
83
+ def module_parent_name; end
84
+ def module_parents; end
85
+ def parent; end
86
+ def parent_name; end
87
+ def parents; end
88
+ def redefine_method(method, &block); end
89
+ def redefine_singleton_method(method, &block); end
90
+ def silence_redefinition_of_method(method); end
91
+ end
92
+ class Module::DelegationError < NoMethodError
93
+ end
94
+ class ActiveSupport::Deprecation
95
+ def self.behavior(**, &&); end
96
+ def self.behavior=(arg); end
97
+ def self.debug(**, &&); end
98
+ def self.debug=(arg); end
99
+ def self.deprecate_methods(**, &&); end
100
+ def self.deprecation_horizon(**, &&); end
101
+ def self.deprecation_horizon=(arg); end
102
+ def self.deprecation_warning(deprecated_method_name, message = nil, caller_backtrace = nil); end
103
+ def self.gem_name(**, &&); end
104
+ def self.gem_name=(arg); end
105
+ def self.initialize(**, &&); end
106
+ def self.silence(**, &&); end
107
+ def self.silenced(**, &&); end
108
+ def self.silenced=(arg); end
109
+ def self.warn(message = nil, callstack = nil); end
110
+ extend ActiveSupport::Deprecation::InstanceDelegator::ClassMethods
111
+ extend Singleton::SingletonClassMethods
112
+ include ActiveSupport::Deprecation::Behavior
113
+ include ActiveSupport::Deprecation::InstanceDelegator
114
+ include ActiveSupport::Deprecation::MethodWrapper
115
+ include ActiveSupport::Deprecation::Reporting
116
+ include Singleton
117
+ end
118
+ module ActiveSupport::Deprecation::InstanceDelegator
119
+ def self.included(base); end
120
+ end
121
+ module ActiveSupport::Deprecation::InstanceDelegator::ClassMethods
122
+ def include(included_module); end
123
+ def method_added(method_name); end
124
+ end
125
+ module ActiveSupport::Deprecation::InstanceDelegator::OverrideDelegators
126
+ def deprecation_warning(deprecated_method_name, message = nil, caller_backtrace = nil); end
127
+ def warn(message = nil, callstack = nil); end
128
+ end
129
+ module ActiveSupport::Notifications
130
+ def self.instrument(name, payload = nil); end
131
+ def self.instrumenter; end
132
+ def self.notifier; end
133
+ def self.notifier=(arg0); end
134
+ def self.publish(name, *args); end
135
+ def self.subscribe(*args, &block); end
136
+ def self.subscribed(callback, *args, &block); end
137
+ def self.unsubscribe(subscriber_or_name); end
138
+ end
139
+ class ActiveSupport::Notifications::Instrumenter
140
+ def finish(name, payload); end
141
+ def finish_with_state(listeners_state, name, payload); end
142
+ def id; end
143
+ def initialize(notifier); end
144
+ def instrument(name, payload = nil); end
145
+ def start(name, payload); end
146
+ def unique_id; end
147
+ end
148
+ class ActiveSupport::Notifications::Event
149
+ def <<(event); end
150
+ def allocations; end
151
+ def children; end
152
+ def cpu_time; end
153
+ def duration; end
154
+ def end; end
155
+ def end=(ending); end
156
+ def finish!; end
157
+ def idle_time; end
158
+ def initialize(name, start, ending, transaction_id, payload); end
159
+ def name; end
160
+ def now; end
161
+ def now_allocations; end
162
+ def now_cpu; end
163
+ def parent_of?(event); end
164
+ def payload; end
165
+ def self.clock_gettime_supported?; end
166
+ def start!; end
167
+ def time; end
168
+ def transaction_id; end
169
+ end
170
+ class ActiveSupport::Notifications::Fanout
171
+ def finish(name, id, payload, listeners = nil); end
172
+ def initialize; end
173
+ def listeners_for(name); end
174
+ def listening?(name); end
175
+ def lock; end
176
+ def locked?; end
177
+ def publish(name, *args); end
178
+ def start(name, id, payload); end
179
+ def subscribe(pattern = nil, callable = nil, &block); end
180
+ def synchronize(&block); end
181
+ def try_lock; end
182
+ def unlock; end
183
+ def unsubscribe(subscriber_or_name); end
184
+ def wait; end
185
+ include Mutex_m
186
+ end
187
+ module ActiveSupport::Notifications::Fanout::Subscribers
188
+ def self.event_object_subscriber(pattern, block); end
189
+ def self.new(pattern, listener); end
190
+ def self.wrap_all(pattern, subscriber); end
191
+ end
192
+ class ActiveSupport::Notifications::Fanout::Subscribers::Matcher
193
+ def ===(name); end
194
+ def exclusions; end
195
+ def initialize(pattern); end
196
+ def pattern; end
197
+ def self.wrap(pattern); end
198
+ def unsubscribe!(name); end
199
+ end
200
+ class ActiveSupport::Notifications::Fanout::Subscribers::Evented
201
+ def finish(name, id, payload); end
202
+ def initialize(pattern, delegate); end
203
+ def matches?(name); end
204
+ def pattern; end
205
+ def publish(name, *args); end
206
+ def start(name, id, payload); end
207
+ def subscribed_to?(name); end
208
+ def unsubscribe!(name); end
209
+ end
210
+ class ActiveSupport::Notifications::Fanout::Subscribers::Timed < ActiveSupport::Notifications::Fanout::Subscribers::Evented
211
+ def finish(name, id, payload); end
212
+ def publish(name, *args); end
213
+ def start(name, id, payload); end
214
+ end
215
+ class ActiveSupport::Notifications::Fanout::Subscribers::EventObject < ActiveSupport::Notifications::Fanout::Subscribers::Evented
216
+ def build_event(name, id, payload); end
217
+ def finish(name, id, payload); end
218
+ def start(name, id, payload); end
219
+ end
220
+ class ActiveSupport::Notifications::Fanout::Subscribers::AllMessages
221
+ def finish(name, id, payload); end
222
+ def initialize(delegate); end
223
+ def matches?(arg0); end
224
+ def publish(name, *args); end
225
+ def start(name, id, payload); end
226
+ def subscribed_to?(name); end
227
+ def unsubscribe!(*arg0); end
228
+ end
229
+ module ActiveSupport::PerThreadRegistry
230
+ def instance; end
231
+ def method_missing(name, *args, &block); end
232
+ def self.extended(object); end
233
+ end
234
+ class ActiveSupport::Notifications::InstrumentationRegistry
235
+ def initialize; end
236
+ def instrumenter_for(notifier); end
237
+ extend ActiveSupport::PerThreadRegistry
238
+ end
239
+ class ActiveSupport::DeprecationException < StandardError
240
+ end
241
+ module ActiveSupport::Deprecation::Behavior
242
+ def arity_coerce(behavior); end
243
+ def behavior; end
244
+ def behavior=(behavior); end
245
+ def debug; end
246
+ def debug=(arg0); end
247
+ end
248
+ module ActiveSupport::Deprecation::Reporting
249
+ def _extract_callstack(callstack); end
250
+ def deprecated_method_warning(method_name, message = nil); end
251
+ def deprecation_caller_message(callstack); end
252
+ def deprecation_message(callstack, message = nil); end
253
+ def deprecation_warning(deprecated_method_name, message = nil, caller_backtrace = nil); end
254
+ def extract_callstack(callstack); end
255
+ def gem_name; end
256
+ def gem_name=(arg0); end
257
+ def ignored_callstack(path); end
258
+ def silence; end
259
+ def silenced; end
260
+ def silenced=(arg0); end
261
+ def warn(message = nil, callstack = nil); end
262
+ end
263
+ module ActiveSupport::Deprecation::DeprecatedConstantAccessor
264
+ def self.included(base); end
265
+ end
266
+ class Array
267
+ def blank?; end
268
+ def extract_options!; end
269
+ def to_default_s; end
270
+ def to_formatted_s(format = nil); end
271
+ def to_param; end
272
+ def to_query(key); end
273
+ def to_sentence(options = nil); end
274
+ def to_xml(options = nil); end
275
+ end
276
+ module ActiveSupport::Deprecation::MethodWrapper
277
+ def deprecate_methods(target_module, *method_names); end
278
+ end
279
+ class ActiveSupport::Deprecation::DeprecationProxy
280
+ def inspect; end
281
+ def method_missing(called, *args, &block); end
282
+ def self.new(*args, &block); end
283
+ end
284
+ class ActiveSupport::Deprecation::DeprecatedObjectProxy < ActiveSupport::Deprecation::DeprecationProxy
285
+ def initialize(object, message, deprecator = nil); end
286
+ def target; end
287
+ def warn(callstack, called, args); end
288
+ end
289
+ class ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy < ActiveSupport::Deprecation::DeprecationProxy
290
+ def initialize(instance, method, var = nil, deprecator = nil); end
291
+ def target; end
292
+ def warn(callstack, called, args); end
293
+ end
294
+ class ActiveSupport::Deprecation::DeprecatedConstantProxy < Module
295
+ def class; end
296
+ def const_missing(name); end
297
+ def hash(**, &&); end
298
+ def initialize(old_const, new_const, deprecator = nil, message: nil); end
299
+ def inspect; end
300
+ def instance_methods(**, &&); end
301
+ def method_missing(called, *args, &block); end
302
+ def name(**, &&); end
303
+ def self.new(*args, **kwargs, &block); end
304
+ def target; end
305
+ end
306
+ module ActiveSupport::Inflector
307
+ def apply_inflections(word, rules, locale = nil); end
308
+ def camelize(term, uppercase_first_letter = nil); end
309
+ def classify(table_name); end
310
+ def const_regexp(camel_cased_word); end
311
+ def constantize(camel_cased_word); end
312
+ def dasherize(underscored_word); end
313
+ def deconstantize(path); end
314
+ def demodulize(path); end
315
+ def foreign_key(class_name, separate_class_name_and_id_with_underscore = nil); end
316
+ def humanize(lower_case_and_underscored_word, capitalize: nil, keep_id_suffix: nil); end
317
+ def inflections(locale = nil); end
318
+ def ordinal(number); end
319
+ def ordinalize(number); end
320
+ def parameterize(string, separator: nil, preserve_case: nil, locale: nil); end
321
+ def pluralize(word, locale = nil); end
322
+ def safe_constantize(camel_cased_word); end
323
+ def singularize(word, locale = nil); end
324
+ def tableize(class_name); end
325
+ def titleize(word, keep_id_suffix: nil); end
326
+ def transliterate(string, replacement = nil, locale: nil); end
327
+ def underscore(camel_cased_word); end
328
+ def upcase_first(string); end
329
+ extend ActiveSupport::Inflector
330
+ extend ActiveSupport::Inflector
331
+ end
332
+ class ActiveSupport::Inflector::Inflections
333
+ def acronym(word); end
334
+ def acronyms; end
335
+ def acronyms_camelize_regex; end
336
+ def acronyms_underscore_regex; end
337
+ def clear(scope = nil); end
338
+ def define_acronym_regex_patterns; end
339
+ def human(rule, replacement); end
340
+ def humans; end
341
+ def initialize; end
342
+ def initialize_dup(orig); end
343
+ def irregular(singular, plural); end
344
+ def plural(rule, replacement); end
345
+ def plurals; end
346
+ def self.instance(locale = nil); end
347
+ def singular(rule, replacement); end
348
+ def singulars; end
349
+ def uncountable(*words); end
350
+ def uncountables; end
351
+ end
352
+ class ActiveSupport::Inflector::Inflections::Uncountables < Array
353
+ def <<(*word); end
354
+ def add(words); end
355
+ def delete(entry); end
356
+ def initialize; end
357
+ def to_regex(string); end
358
+ def uncountable?(str); end
359
+ end
360
+ module ActiveSupport::Autoload
361
+ def autoload(const_name, path = nil); end
362
+ def autoload_at(path); end
363
+ def autoload_under(path); end
364
+ def autoloads; end
365
+ def eager_autoload; end
366
+ def eager_load!; end
367
+ def self.extended(base); end
368
+ end
369
+ module ActiveSupport::VERSION
370
+ end
371
+ module ActiveSupport::Concern
372
+ def append_features(base); end
373
+ def class_methods(&class_methods_module_definition); end
374
+ def included(base = nil, &block); end
375
+ def self.extended(base); end
376
+ end
377
+ class ActiveSupport::Concern::MultipleIncludedBlocks < StandardError
378
+ def initialize; end
379
+ end
380
+ module ActiveSupport::LoggerThreadSafeLevel
381
+ def add(severity, message = nil, progname = nil, &block); end
382
+ def after_initialize; end
383
+ def debug?; end
384
+ def error?; end
385
+ def fatal?; end
386
+ def info?; end
387
+ def level; end
388
+ def local_level; end
389
+ def local_level=(level); end
390
+ def local_log_id; end
391
+ def unknown?; end
392
+ def warn?; end
393
+ extend ActiveSupport::Concern
394
+ end
395
+ module LoggerSilence
396
+ extend ActiveSupport::Concern
397
+ end
398
+ module ActiveSupport::LoggerSilence
399
+ def silence(temporary_level = nil); end
400
+ extend ActiveSupport::Concern
401
+ end
402
+ class ActiveSupport::Logger < Logger
403
+ def initialize(*args, **kwargs); end
404
+ def self.broadcast(logger); end
405
+ def self.local_levels; end
406
+ def self.local_levels=(obj); end
407
+ def self.logger_outputs_to?(logger, *sources); end
408
+ def self.silencer; end
409
+ def self.silencer=(obj); end
410
+ def silencer; end
411
+ def silencer=(obj); end
412
+ include ActiveSupport::LoggerSilence
413
+ include ActiveSupport::LoggerThreadSafeLevel
414
+ end
415
+ class ActiveSupport::Logger::SimpleFormatter < Logger::Formatter
416
+ def call(severity, timestamp, progname, msg); end
417
+ end
418
+ module DateAndTime
419
+ end
420
+ module DateAndTime::Compatibility
421
+ def preserve_timezone; end
422
+ def self.preserve_timezone; end
423
+ def self.preserve_timezone=(obj); end
424
+ end
425
+ class Object < BasicObject
426
+ def acts_like?(duck); end
427
+ def blank?; end
428
+ def presence; end
429
+ def present?; end
430
+ def to_param; end
431
+ def to_query(key); end
432
+ end
433
+ class NilClass
434
+ def blank?; end
435
+ def to_param; end
436
+ end
437
+ class FalseClass
438
+ def blank?; end
439
+ def to_param; end
440
+ end
441
+ class TrueClass
442
+ def blank?; end
443
+ def to_param; end
444
+ end
445
+ class String
446
+ def blank?; end
447
+ def camelcase(first_letter = nil); end
448
+ def camelize(first_letter = nil); end
449
+ def classify; end
450
+ def constantize; end
451
+ def dasherize; end
452
+ def deconstantize; end
453
+ def demodulize; end
454
+ def foreign_key(separate_class_name_and_id_with_underscore = nil); end
455
+ def humanize(capitalize: nil, keep_id_suffix: nil); end
456
+ def is_utf8?; end
457
+ def mb_chars; end
458
+ def parameterize(separator: nil, preserve_case: nil, locale: nil); end
459
+ def pluralize(count = nil, locale = nil); end
460
+ def remove!(*patterns); end
461
+ def remove(*patterns); end
462
+ def safe_constantize; end
463
+ def singularize(locale = nil); end
464
+ def squish!; end
465
+ def squish; end
466
+ def tableize; end
467
+ def titlecase(keep_id_suffix: nil); end
468
+ def titleize(keep_id_suffix: nil); end
469
+ def truncate(truncate_at, options = nil); end
470
+ def truncate_bytes(truncate_at, omission: nil); end
471
+ def truncate_words(words_count, options = nil); end
472
+ def underscore; end
473
+ def upcase_first; end
474
+ end
475
+ class Numeric
476
+ def blank?; end
477
+ end
478
+ class Time
479
+ def blank?; end
480
+ end
481
+ class Class < Module
482
+ def class_attribute(*attrs, instance_accessor: nil, instance_reader: nil, instance_writer: nil, instance_predicate: nil, default: nil); end
483
+ end
484
+ module ActiveSupport::RangeWithFormat
485
+ def to_default_s(format = nil); end
486
+ def to_formatted_s(format = nil); end
487
+ def to_s(format = nil); end
488
+ end
489
+ module ActiveSupport::CompareWithRange
490
+ def ===(value); end
491
+ def cover?(value); end
492
+ def include?(value); end
493
+ end
494
+ module ActiveSupport::Multibyte
495
+ def self.proxy_class; end
496
+ def self.proxy_class=(klass); end
497
+ end
498
+ class DateTime < Date
499
+ def <=>(other); end
500
+ def advance(options); end
501
+ def ago(seconds); end
502
+ def at_beginning_of_day; end
503
+ def at_beginning_of_hour; end
504
+ def at_beginning_of_minute; end
505
+ def at_end_of_day; end
506
+ def at_end_of_hour; end
507
+ def at_end_of_minute; end
508
+ def at_midday; end
509
+ def at_middle_of_day; end
510
+ def at_midnight; end
511
+ def at_noon; end
512
+ def beginning_of_day; end
513
+ def beginning_of_hour; end
514
+ def beginning_of_minute; end
515
+ def change(options); end
516
+ def end_of_day; end
517
+ def end_of_hour; end
518
+ def end_of_minute; end
519
+ def getgm; end
520
+ def getlocal(utc_offset = nil); end
521
+ def getutc; end
522
+ def gmtime; end
523
+ def in(seconds); end
524
+ def localtime(utc_offset = nil); end
525
+ def midday; end
526
+ def middle_of_day; end
527
+ def midnight; end
528
+ def noon; end
529
+ def seconds_since_midnight; end
530
+ def seconds_until_end_of_day; end
531
+ def self.current; end
532
+ def since(seconds); end
533
+ def subsec; end
534
+ def utc; end
535
+ def utc?; end
536
+ def utc_offset; end
537
+ end
538
+ module ActiveSupport::XmlMini_REXML
539
+ def collapse(element, depth); end
540
+ def empty_content?(element); end
541
+ def get_attributes(element); end
542
+ def merge!(hash, key, value); end
543
+ def merge_element!(hash, element, depth); end
544
+ def merge_texts!(hash, element); end
545
+ def parse(data); end
546
+ extend ActiveSupport::XmlMini_REXML
547
+ end
548
+ module ActiveSupport::XmlMini
549
+ def _dasherize(key); end
550
+ def _parse_binary(bin, entity); end
551
+ def _parse_file(file, entity); end
552
+ def backend; end
553
+ def backend=(name); end
554
+ def cast_backend_name_to_module(name); end
555
+ def current_thread_backend; end
556
+ def current_thread_backend=(name); end
557
+ def depth; end
558
+ def depth=(arg0); end
559
+ def parse(**, &&); end
560
+ def rename_key(key, options = nil); end
561
+ def to_tag(key, value, options); end
562
+ def with_backend(name); end
563
+ extend ActiveSupport::XmlMini
564
+ end
565
+ module ActiveSupport::XmlMini::FileLike
566
+ def content_type; end
567
+ def content_type=(arg0); end
568
+ def original_filename; end
569
+ def original_filename=(arg0); end
570
+ end
571
+ class ActiveSupport::Duration
572
+ def %(other); end
573
+ def *(other); end
574
+ def +(other); end
575
+ def -(other); end
576
+ def -@; end
577
+ def /(other); end
578
+ def <=>(other); end
579
+ def ==(other); end
580
+ def after(time = nil); end
581
+ def ago(time = nil); end
582
+ def as_json(options = nil); end
583
+ def before(time = nil); end
584
+ def coerce(other); end
585
+ def encode_with(coder); end
586
+ def eql?(other); end
587
+ def from_now(time = nil); end
588
+ def hash; end
589
+ def init_with(coder); end
590
+ def initialize(value, parts); end
591
+ def inspect; end
592
+ def instance_of?(klass); end
593
+ def is_a?(klass); end
594
+ def iso8601(precision: nil); end
595
+ def kind_of?(klass); end
596
+ def method_missing(method, *args, &block); end
597
+ def parts; end
598
+ def parts=(arg0); end
599
+ def raise_type_error(other); end
600
+ def respond_to_missing?(method, _); end
601
+ def self.===(other); end
602
+ def self.build(value); end
603
+ def self.calculate_total_seconds(parts); end
604
+ def self.days(value); end
605
+ def self.hours(value); end
606
+ def self.minutes(value); end
607
+ def self.months(value); end
608
+ def self.parse(iso8601duration); end
609
+ def self.seconds(value); end
610
+ def self.weeks(value); end
611
+ def self.years(value); end
612
+ def since(time = nil); end
613
+ def sum(sign, time = nil); end
614
+ def to_i; end
615
+ def to_s; end
616
+ def until(time = nil); end
617
+ def value; end
618
+ def value=(arg0); end
619
+ end
620
+ class ActiveSupport::Duration::Scalar < Numeric
621
+ def %(other); end
622
+ def *(other); end
623
+ def +(other); end
624
+ def -(other); end
625
+ def -@; end
626
+ def /(other); end
627
+ def <=>(other); end
628
+ def calculate(op, other); end
629
+ def coerce(other); end
630
+ def initialize(value); end
631
+ def raise_type_error(other); end
632
+ def to_f(**, &&); end
633
+ def to_i(**, &&); end
634
+ def to_s(**, &&); end
635
+ def value; end
636
+ end
637
+ class ActiveSupport::TimeZone
638
+ def <=>(zone); end
639
+ def =~(re); end
640
+ def at(*args); end
641
+ def encode_with(coder); end
642
+ def formatted_offset(colon = nil, alternate_utc_string = nil); end
643
+ def init_with(coder); end
644
+ def initialize(name, utc_offset = nil, tzinfo = nil); end
645
+ def iso8601(str); end
646
+ def local(*args); end
647
+ def local_to_utc(time, dst = nil); end
648
+ def name; end
649
+ def now; end
650
+ def parse(str, now = nil); end
651
+ def parts_to_time(parts, now); end
652
+ def period_for_local(time, dst = nil); end
653
+ def period_for_utc(time); end
654
+ def periods_for_local(time); end
655
+ def rfc3339(str); end
656
+ def self.[](arg); end
657
+ def self.all; end
658
+ def self.clear; end
659
+ def self.country_zones(country_code); end
660
+ def self.create(*arg0); end
661
+ def self.find_tzinfo(name); end
662
+ def self.load_country_zones(code); end
663
+ def self.new(name); end
664
+ def self.seconds_to_utc_offset(seconds, colon = nil); end
665
+ def self.us_zones; end
666
+ def self.zones_map; end
667
+ def strptime(str, format, now = nil); end
668
+ def time_now; end
669
+ def to_s; end
670
+ def today; end
671
+ def tomorrow; end
672
+ def tzinfo; end
673
+ def utc_offset; end
674
+ def utc_to_local(time); end
675
+ def yesterday; end
676
+ include Comparable
677
+ end
678
+ class ActiveSupport::TimeWithZone
679
+ def +(other); end
680
+ def -(other); end
681
+ def <=>(other); end
682
+ def acts_like_time?; end
683
+ def advance(options); end
684
+ def after?(arg0); end
685
+ def ago(other); end
686
+ def as_json(options = nil); end
687
+ def before?(arg0); end
688
+ def between?(min, max); end
689
+ def blank?; end
690
+ def change(options); end
691
+ def comparable_time; end
692
+ def day; end
693
+ def dst?; end
694
+ def duration_of_variable_length?(obj); end
695
+ def encode_with(coder); end
696
+ def eql?(other); end
697
+ def formatted_offset(colon = nil, alternate_utc_string = nil); end
698
+ def freeze; end
699
+ def future?; end
700
+ def get_period_and_ensure_valid_local_time(period); end
701
+ def getgm; end
702
+ def getlocal(utc_offset = nil); end
703
+ def getutc; end
704
+ def gmt?; end
705
+ def gmt_offset; end
706
+ def gmtime; end
707
+ def gmtoff; end
708
+ def hash; end
709
+ def hour; end
710
+ def httpdate; end
711
+ def in(other); end
712
+ def in_time_zone(new_zone = nil); end
713
+ def init_with(coder); end
714
+ def initialize(utc_time, time_zone, local_time = nil, period = nil); end
715
+ def inspect; end
716
+ def is_a?(klass); end
717
+ def isdst; end
718
+ def iso8601(fraction_digits = nil); end
719
+ def kind_of?(klass); end
720
+ def localtime(utc_offset = nil); end
721
+ def marshal_dump; end
722
+ def marshal_load(variables); end
723
+ def mday; end
724
+ def method_missing(sym, *args, &block); end
725
+ def min; end
726
+ def mon; end
727
+ def month; end
728
+ def nsec; end
729
+ def past?; end
730
+ def period; end
731
+ def respond_to?(sym, include_priv = nil); end
732
+ def respond_to_missing?(sym, include_priv); end
733
+ def rfc2822; end
734
+ def rfc3339(fraction_digits = nil); end
735
+ def rfc822; end
736
+ def sec; end
737
+ def self.name; end
738
+ def since(other); end
739
+ def strftime(format); end
740
+ def time; end
741
+ def time_zone; end
742
+ def to_a; end
743
+ def to_date; end
744
+ def to_datetime; end
745
+ def to_f; end
746
+ def to_formatted_s(format = nil); end
747
+ def to_i; end
748
+ def to_r; end
749
+ def to_s(format = nil); end
750
+ def to_time; end
751
+ def today?; end
752
+ def transfer_time_values_to_utc_constructor(time); end
753
+ def tv_sec; end
754
+ def usec; end
755
+ def utc; end
756
+ def utc?; end
757
+ def utc_offset; end
758
+ def wday; end
759
+ def wrap_with_time_zone(time); end
760
+ def xmlschema(fraction_digits = nil); end
761
+ def yday; end
762
+ def year; end
763
+ def zone; end
764
+ include Comparable
765
+ end
766
+ module ActiveSupport::IncludeTimeWithZone
767
+ def include?(value); end
768
+ end
769
+ class Range
770
+ def overlaps?(other); end
771
+ end
772
+ module ActiveSupport::EachTimeWithZone
773
+ def each(&block); end
774
+ def ensure_iteration_allowed; end
775
+ def step(n = nil, &block); end
776
+ end
777
+ module ActiveSupport::DescendantsTracker
778
+ def descendants; end
779
+ def direct_descendants; end
780
+ def inherited(base); end
781
+ def self.accumulate_descendants(klass, acc); end
782
+ def self.clear; end
783
+ def self.descendants(klass); end
784
+ def self.direct_descendants(klass); end
785
+ def self.store_inherited(klass, descendant); end
786
+ end
787
+ class ActiveSupport::DescendantsTracker::DescendantsArray
788
+ def <<(klass); end
789
+ def cleanup!; end
790
+ def each; end
791
+ def initialize; end
792
+ def initialize_copy(orig); end
793
+ def refs_size; end
794
+ def reject!; end
795
+ include Enumerable
796
+ end
797
+ module ActiveSupport::Callbacks
798
+ def halted_callback_hook(filter); end
799
+ def run_callbacks(kind); end
800
+ extend ActiveSupport::Concern
801
+ end
802
+ module ActiveSupport::Callbacks::Conditionals
803
+ end
804
+ class ActiveSupport::Callbacks::Conditionals::Value
805
+ def call(target, value); end
806
+ def initialize(&block); end
807
+ end
808
+ module ActiveSupport::Callbacks::Filters
809
+ end
810
+ class ActiveSupport::Callbacks::Filters::Environment < Struct
811
+ def halted; end
812
+ def halted=(_); end
813
+ def self.[](*arg0); end
814
+ def self.inspect; end
815
+ def self.members; end
816
+ def self.new(*arg0); end
817
+ def target; end
818
+ def target=(_); end
819
+ def value; end
820
+ def value=(_); end
821
+ end
822
+ class ActiveSupport::Callbacks::Filters::Before
823
+ def self.build(callback_sequence, user_callback, user_conditions, chain_config, filter); end
824
+ def self.halting(callback_sequence, user_callback, halted_lambda, filter); end
825
+ def self.halting_and_conditional(callback_sequence, user_callback, user_conditions, halted_lambda, filter); end
826
+ end
827
+ class ActiveSupport::Callbacks::Filters::After
828
+ def self.build(callback_sequence, user_callback, user_conditions, chain_config); end
829
+ def self.conditional(callback_sequence, user_callback, user_conditions); end
830
+ def self.halting(callback_sequence, user_callback); end
831
+ def self.halting_and_conditional(callback_sequence, user_callback, user_conditions); end
832
+ def self.simple(callback_sequence, user_callback); end
833
+ end
834
+ class ActiveSupport::Callbacks::Callback
835
+ def apply(callback_sequence); end
836
+ def chain_config; end
837
+ def check_conditionals(conditionals); end
838
+ def compute_identifier(filter); end
839
+ def conditions_lambdas; end
840
+ def current_scopes; end
841
+ def duplicates?(other); end
842
+ def filter; end
843
+ def initialize(name, filter, kind, options, chain_config); end
844
+ def kind; end
845
+ def kind=(arg0); end
846
+ def matches?(_kind, _filter); end
847
+ def merge_conditional_options(chain, if_option:, unless_option:); end
848
+ def name; end
849
+ def name=(arg0); end
850
+ def raw_filter; end
851
+ def self.build(chain, filter, kind, options); end
852
+ end
853
+ class ActiveSupport::Callbacks::CallTemplate
854
+ def expand(target, value, block); end
855
+ def initialize(target, method, arguments, block); end
856
+ def inverted_lambda; end
857
+ def make_lambda; end
858
+ def self.build(filter, callback); end
859
+ end
860
+ class ActiveSupport::Callbacks::CallbackSequence
861
+ def after(&after); end
862
+ def around(call_template, user_conditions); end
863
+ def before(&before); end
864
+ def expand_call_template(arg, block); end
865
+ def final?; end
866
+ def initialize(nested = nil, call_template = nil, user_conditions = nil); end
867
+ def invoke_after(arg); end
868
+ def invoke_before(arg); end
869
+ def nested; end
870
+ def skip?(arg); end
871
+ end
872
+ class ActiveSupport::Callbacks::CallbackChain
873
+ def append(*callbacks); end
874
+ def append_one(callback); end
875
+ def chain; end
876
+ def clear; end
877
+ def compile; end
878
+ def config; end
879
+ def default_terminator; end
880
+ def delete(o); end
881
+ def each(&block); end
882
+ def empty?; end
883
+ def index(o); end
884
+ def initialize(name, config); end
885
+ def initialize_copy(other); end
886
+ def insert(index, o); end
887
+ def name; end
888
+ def prepend(*callbacks); end
889
+ def prepend_one(callback); end
890
+ def remove_duplicates(callback); end
891
+ include Enumerable
892
+ end
893
+ module ActiveSupport::Callbacks::ClassMethods
894
+ def __update_callbacks(name); end
895
+ def define_callbacks(*names); end
896
+ def get_callbacks(name); end
897
+ def normalize_callback_params(filters, block); end
898
+ def reset_callbacks(name); end
899
+ def set_callback(name, *filter_list, &block); end
900
+ def set_callbacks(name, callbacks); end
901
+ def skip_callback(name, *filter_list, &block); end
902
+ end