researchable-freedcamp-api 0.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.
Files changed (55) hide show
  1. checksums.yaml +7 -0
  2. data/.bundle/config +2 -0
  3. data/.gitignore +1 -0
  4. data/Gemfile +7 -0
  5. data/Gemfile.lock +69 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +39 -0
  8. data/Rakefile +12 -0
  9. data/bin/console +15 -0
  10. data/bin/setup +8 -0
  11. data/lib/researchable/freedcamp_api/create_task.rb +22 -0
  12. data/lib/researchable/freedcamp_api/endpoint.rb +34 -0
  13. data/lib/researchable/freedcamp_api/list_milestones.rb +1 -0
  14. data/lib/researchable/freedcamp_api/list_projects.rb +1 -0
  15. data/lib/researchable/freedcamp_api/list_tasks.rb +36 -0
  16. data/lib/researchable/freedcamp_api/sessions/session.rb +28 -0
  17. data/lib/researchable/freedcamp_api/sessions/signed_session.rb +128 -0
  18. data/lib/researchable/freedcamp_api/sessions.rb +17 -0
  19. data/lib/researchable/freedcamp_api/structs/signature.rb +11 -0
  20. data/lib/researchable/freedcamp_api/structs/task.rb +48 -0
  21. data/lib/researchable/freedcamp_api/structs.rb +8 -0
  22. data/lib/researchable/freedcamp_api/update_task.rb +27 -0
  23. data/lib/researchable/freedcamp_api/version.rb +8 -0
  24. data/lib/researchable/freedcamp_api.rb +21 -0
  25. data/lib/researchable-freedcamp-api.rb +6 -0
  26. data/output/62d1c67bf1eebc3456f9cc8879519700b2a0fc45 +1 -0
  27. data/researchable_freedcamp_api.gemspec +44 -0
  28. data/sorbet/config +3 -0
  29. data/sorbet/rbi/gems/active_interaction.rbi +304 -0
  30. data/sorbet/rbi/gems/activemodel.rbi +342 -0
  31. data/sorbet/rbi/gems/activesupport.rbi +1023 -0
  32. data/sorbet/rbi/gems/concurrent-ruby.rbi +1662 -0
  33. data/sorbet/rbi/gems/httparty.rbi +446 -0
  34. data/sorbet/rbi/gems/i18n.rbi +133 -0
  35. data/sorbet/rbi/gems/mime-types-data.rbi +17 -0
  36. data/sorbet/rbi/gems/mime-types.rbi +225 -0
  37. data/sorbet/rbi/gems/multi_xml.rbi +35 -0
  38. data/sorbet/rbi/gems/researchable-freedcamp-api.rbi +25 -0
  39. data/sorbet/rbi/gems/rspec-core.rbi +1915 -0
  40. data/sorbet/rbi/gems/rspec-expectations.rbi +1151 -0
  41. data/sorbet/rbi/gems/rspec-mocks.rbi +1110 -0
  42. data/sorbet/rbi/gems/rspec-support.rbi +280 -0
  43. data/sorbet/rbi/gems/rspec.rbi +15 -0
  44. data/sorbet/rbi/gems/tzinfo.rbi +586 -0
  45. data/sorbet/rbi/hidden-definitions/errors.txt +4251 -0
  46. data/sorbet/rbi/hidden-definitions/hidden.rbi +8306 -0
  47. data/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +715 -0
  48. data/sorbet/rbi/sorbet-typed/lib/activesupport/>=6/activesupport.rbi +37 -0
  49. data/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +1850 -0
  50. data/sorbet/rbi/sorbet-typed/lib/httparty/all/httparty.rbi +566 -0
  51. data/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +108 -0
  52. data/sorbet/rbi/sorbet-typed/lib/rspec-core/all/rspec-core.rbi +24 -0
  53. data/sorbet/rbi/todo.rbi +7 -0
  54. data/test.rb +41 -0
  55. metadata +198 -0
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/researchable/freedcamp_api/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'researchable-freedcamp-api'
7
+ spec.version = Researchable::FreedcampApi::VERSION
8
+ spec.authors = ['Frank Blaauw']
9
+ spec.email = ['f.j.blaauw@researchable.nl']
10
+ spec.summary = 'Freedcamp API gem'
11
+ spec.description = 'Wrapper around the freedcamp api'
12
+ spec.homepage = 'https://researchable.nl'
13
+ spec.license = 'MIT'
14
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.4.0')
15
+
16
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
17
+
18
+ spec.metadata['homepage_uri'] = spec.homepage
19
+ spec.metadata['source_code_uri'] = 'https://gitlab.com/researchable/open-source/api-gems/freedcamp-api-gem'
20
+ spec.metadata['changelog_uri'] = 'https://gitlab.com/researchable/open-source/api-gems/freedcamp-api-gem'
21
+
22
+ # Specify which files should be added to the gem when it is released.
23
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
25
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
26
+ end
27
+ spec.bindir = 'bin'
28
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ['lib']
30
+
31
+ # Uncomment to register a new dependency of your gem
32
+ # spec.add_dependency "example-gem", "~> 1.0"
33
+
34
+ # For more information and examples about making a new gem, checkout our
35
+ # guide at: https://bundler.io/guides/creating_gem.html
36
+ spec.add_dependency 'active_interaction', '>= 3.2'
37
+ spec.add_dependency 'httparty', '>= 0.14'
38
+ spec.add_dependency 'sorbet-runtime'
39
+
40
+ spec.add_development_dependency 'bundler', '>0'
41
+ spec.add_development_dependency 'rspec', '~> 3.0'
42
+ spec.add_development_dependency 'sorbet'
43
+ spec.add_development_dependency 'byebug'
44
+ end
data/sorbet/config ADDED
@@ -0,0 +1,3 @@
1
+ --dir
2
+ .
3
+ --ignore=/vendor/bundle
@@ -0,0 +1,304 @@
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/active_interaction/all/active_interaction.rbi
9
+ #
10
+ # active_interaction-4.1.0
11
+
12
+ module ActiveInteraction
13
+ end
14
+ class ActiveInteraction::Error < StandardError
15
+ end
16
+ class ActiveInteraction::InvalidNameError < ActiveInteraction::Error
17
+ end
18
+ class ActiveInteraction::InvalidConverterError < ActiveInteraction::Error
19
+ end
20
+ class ActiveInteraction::InvalidDefaultError < ActiveInteraction::Error
21
+ end
22
+ class ActiveInteraction::InvalidFilterError < ActiveInteraction::Error
23
+ end
24
+ class ActiveInteraction::InvalidInteractionError < ActiveInteraction::Error
25
+ def interaction; end
26
+ def interaction=(arg0); end
27
+ end
28
+ class ActiveInteraction::InvalidValueError < ActiveInteraction::Error
29
+ end
30
+ class ActiveInteraction::MissingFilterError < ActiveInteraction::Error
31
+ end
32
+ class ActiveInteraction::MissingValueError < ActiveInteraction::Error
33
+ end
34
+ class ActiveInteraction::NoDefaultError < ActiveInteraction::Error
35
+ end
36
+ class ActiveInteraction::InvalidNestedValueError < ActiveInteraction::InvalidValueError
37
+ def filter_name; end
38
+ def initialize(filter_name, input_value); end
39
+ def input_value; end
40
+ end
41
+ class ActiveInteraction::Interrupt < ActiveInteraction::Error
42
+ def errors; end
43
+ def initialize(errors); end
44
+ end
45
+ class ActiveInteraction::Errors < ActiveModel::Errors
46
+ def attribute?(attribute); end
47
+ def backtrace; end
48
+ def backtrace=(arg0); end
49
+ def detailed_error?(detail); end
50
+ def merge!(other); end
51
+ def merge_detail!(attribute, detail, message); end
52
+ def merge_details!(other); end
53
+ def merge_message!(attribute, message); end
54
+ end
55
+ module ActiveInteraction::ActiveModelable
56
+ def i18n_scope; end
57
+ def model_name(*args, &block); end
58
+ def new_record?; end
59
+ def persisted?; end
60
+ extend ActiveModel::Naming
61
+ extend ActiveSupport::Concern
62
+ include ActiveModel::Conversion
63
+ include ActiveModel::Validations
64
+ end
65
+ module ActiveInteraction::ActiveModelable::ClassMethods
66
+ def i18n_scope; end
67
+ end
68
+ module ActiveInteraction::ActiveRecordable
69
+ def column_for_attribute(name); end
70
+ def has_attribute?(name); end
71
+ end
72
+ module ActiveInteraction::Hashable
73
+ def hash(*args, &block); end
74
+ extend ActiveSupport::Concern
75
+ end
76
+ module ActiveInteraction::Missable
77
+ def filter(slug); end
78
+ def method_missing(slug, *args); end
79
+ def respond_to_missing?(slug, *arg1); end
80
+ extend ActiveSupport::Concern
81
+ end
82
+ module ActiveInteraction::Runnable
83
+ def compose(other, *args); end
84
+ def errors; end
85
+ def execute; end
86
+ def result; end
87
+ def result=(result); end
88
+ def run!; end
89
+ def run; end
90
+ def valid?(*arg0); end
91
+ extend ActiveSupport::Concern
92
+ include ActiveModel::Validations
93
+ end
94
+ module ActiveInteraction::Runnable::ClassMethods
95
+ def new(*arg0); end
96
+ def run!(*args); end
97
+ def run(*args); end
98
+ end
99
+ class ActiveInteraction::GroupedInput < OpenStruct
100
+ end
101
+ class ActiveInteraction::Inputs < Anonymous_Delegator_1
102
+ def initialize(inputs = nil); end
103
+ def self.assign_to_grouped_input!(inputs, key, index, value); end
104
+ def self.keys_for_group?(keys, group_key); end
105
+ def self.normalize_inputs!(inputs); end
106
+ def self.process(inputs); end
107
+ def self.reserved?(name); end
108
+ end
109
+ module ActiveInteraction::Validation
110
+ def self.type(filter); end
111
+ def self.validate(context, filters, inputs); end
112
+ end
113
+ class ActiveInteraction::FilterColumn
114
+ def initialize(type); end
115
+ def limit; end
116
+ def number?; end
117
+ def self.intern(type); end
118
+ def self.new(*arg0); end
119
+ def text?; end
120
+ def type; end
121
+ end
122
+ class ActiveInteraction::Filter
123
+ def accepts_grouped_inputs?; end
124
+ def adjust_output(value, _context); end
125
+ def cast(value, context, convert: nil, reconstantize: nil); end
126
+ def clean(value, context); end
127
+ def convert(value); end
128
+ def database_column_type; end
129
+ def default(context = nil); end
130
+ def default?; end
131
+ def desc; end
132
+ def describe(value); end
133
+ def filters; end
134
+ def initialize(name, options = nil, &block); end
135
+ def klass; end
136
+ def matches?(_value); end
137
+ def name; end
138
+ def options; end
139
+ def raw_default(context); end
140
+ def self.factory(slug); end
141
+ def self.register(slug); end
142
+ def self.slug; end
143
+ end
144
+ class ActiveInteraction::Base
145
+ def __callbacks; end
146
+ def __callbacks?; end
147
+ def _execute_callbacks; end
148
+ def _run_execute_callbacks(&block); end
149
+ def _run_type_check_callbacks(&block); end
150
+ def _run_validate_callbacks(&block); end
151
+ def _type_check_callbacks; end
152
+ def _validate_callbacks; end
153
+ def _validators; end
154
+ def _validators?; end
155
+ def given?(input, *rest); end
156
+ def initialize(inputs = nil); end
157
+ def inputs; end
158
+ def model_name(*args, &block); end
159
+ def populate_filters_and_inputs(inputs); end
160
+ def run_validations!; end
161
+ def self.__callbacks; end
162
+ def self.__callbacks=(value); end
163
+ def self.__callbacks?; end
164
+ def self._execute_callbacks; end
165
+ def self._execute_callbacks=(value); end
166
+ def self._type_check_callbacks; end
167
+ def self._type_check_callbacks=(value); end
168
+ def self._validate_callbacks; end
169
+ def self._validate_callbacks=(value); end
170
+ def self._validators; end
171
+ def self._validators=(value); end
172
+ def self._validators?; end
173
+ def self.add_filter(klass, name, options, &block); end
174
+ def self.desc(desc = nil); end
175
+ def self.eagerly_evaluate_default(filter); end
176
+ def self.filters; end
177
+ def self.import_filters(klass, options = nil); end
178
+ def self.inherited(klass); end
179
+ def self.initialize_filter(filter); end
180
+ def self.method_missing(*args, &block); end
181
+ def type_check; end
182
+ def validation_context; end
183
+ def validation_context=(arg0); end
184
+ extend ActiveInteraction::ActiveModelable::ClassMethods
185
+ extend ActiveInteraction::Runnable::ClassMethods
186
+ extend ActiveModel::Callbacks
187
+ extend ActiveModel::Conversion::ClassMethods
188
+ extend ActiveModel::Naming
189
+ extend ActiveModel::Translation
190
+ extend ActiveModel::Validations::ClassMethods
191
+ extend ActiveModel::Validations::HelperMethods
192
+ extend ActiveSupport::Callbacks::ClassMethods
193
+ extend ActiveSupport::DescendantsTracker
194
+ include ActiveInteraction::ActiveModelable
195
+ include ActiveInteraction::ActiveRecordable
196
+ include ActiveInteraction::Runnable
197
+ include ActiveModel::Conversion
198
+ include ActiveModel::Validations
199
+ include ActiveModel::Validations
200
+ include ActiveModel::Validations::HelperMethods
201
+ include ActiveSupport::Callbacks
202
+ end
203
+ class ActiveInteraction::InterfaceFilter < ActiveInteraction::Filter
204
+ def checking_class_inheritance?(object, from); end
205
+ def class_inherits_from?(klass, inherits_from); end
206
+ def from; end
207
+ def initialize(name, options = nil, &block); end
208
+ def matches?(object); end
209
+ def matches_methods?(object); end
210
+ def singleton_ancestor?(object, from); end
211
+ end
212
+ class ActiveInteraction::AbstractDateTimeFilter < ActiveInteraction::Filter
213
+ def accepts_grouped_inputs?; end
214
+ def convert(value); end
215
+ def convert_grouped_input(value); end
216
+ def convert_string(value); end
217
+ def database_column_type; end
218
+ def format; end
219
+ def format?; end
220
+ def klasses; end
221
+ def matches?(value); end
222
+ end
223
+ class ActiveInteraction::AbstractNumericFilter < ActiveInteraction::Filter
224
+ def convert(value); end
225
+ def converter(value); end
226
+ def database_column_type; end
227
+ def matches?(value); end
228
+ def safe_converter(value); end
229
+ end
230
+ class ActiveInteraction::ArrayFilter < ActiveInteraction::Filter
231
+ def add_option_in_place_of_name(klass, options); end
232
+ def adjust_output(value, context); end
233
+ def convert(value); end
234
+ def klasses; end
235
+ def matches?(value); end
236
+ def method_missing(*arg0, &block); end
237
+ def validate!(names); end
238
+ include ActiveInteraction::Missable
239
+ end
240
+ class ActiveInteraction::BooleanFilter < ActiveInteraction::Filter
241
+ def convert(value); end
242
+ def database_column_type; end
243
+ def matches?(value); end
244
+ end
245
+ class ActiveInteraction::DateFilter < ActiveInteraction::AbstractDateTimeFilter
246
+ end
247
+ class ActiveInteraction::DateTimeFilter < ActiveInteraction::AbstractDateTimeFilter
248
+ def database_column_type; end
249
+ end
250
+ class ActiveInteraction::DecimalFilter < ActiveInteraction::AbstractNumericFilter
251
+ def converter(value); end
252
+ def digits; end
253
+ def klass; end
254
+ end
255
+ class ActiveInteraction::FileFilter < ActiveInteraction::Filter
256
+ def database_column_type; end
257
+ def matches?(object); end
258
+ end
259
+ class ActiveInteraction::FloatFilter < ActiveInteraction::AbstractNumericFilter
260
+ end
261
+ class ActiveInteraction::HashFilter < ActiveInteraction::Filter
262
+ def adjust_output(value, context); end
263
+ def clean_value(hash, name, filter, value, context); end
264
+ def convert(value); end
265
+ def matches?(value); end
266
+ def method_missing(*args, &block); end
267
+ def raw_default(*arg0); end
268
+ def strip?; end
269
+ include ActiveInteraction::Missable
270
+ end
271
+ class ActiveInteraction::IntegerFilter < ActiveInteraction::AbstractNumericFilter
272
+ def base; end
273
+ def converter(value); end
274
+ end
275
+ class ActiveInteraction::ObjectFilter < ActiveInteraction::Filter
276
+ def convert(value); end
277
+ def converter(value); end
278
+ def klass; end
279
+ def matches?(value); end
280
+ end
281
+ class ActiveInteraction::RecordFilter < ActiveInteraction::Filter
282
+ def convert(value); end
283
+ def find(klass, value, finder); end
284
+ def klass; end
285
+ def matches?(value); end
286
+ end
287
+ class ActiveInteraction::StringFilter < ActiveInteraction::Filter
288
+ def adjust_output(value, _context); end
289
+ def convert(value); end
290
+ def matches?(value); end
291
+ def strip?; end
292
+ end
293
+ class ActiveInteraction::SymbolFilter < ActiveInteraction::Filter
294
+ def convert(value); end
295
+ def matches?(value); end
296
+ end
297
+ class ActiveInteraction::TimeFilter < ActiveInteraction::AbstractDateTimeFilter
298
+ def convert(value); end
299
+ def database_column_type; end
300
+ def initialize(name, options = nil, &block); end
301
+ def klass; end
302
+ def klasses; end
303
+ def time_with_zone?; end
304
+ end
@@ -0,0 +1,342 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi gems
3
+
4
+ # typed: strict
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.1.4.4
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
+ class ActiveModel::Error
24
+ def ==(other); end
25
+ def attribute; end
26
+ def attributes_for_hash; end
27
+ def base; end
28
+ def detail; end
29
+ def details; end
30
+ def eql?(other); end
31
+ def full_message; end
32
+ def hash; end
33
+ def i18n_customize_full_message; end
34
+ def i18n_customize_full_message=(arg0); end
35
+ def i18n_customize_full_message?; end
36
+ def initialize(base, attribute, type = nil, **options); end
37
+ def initialize_dup(other); end
38
+ def inspect; end
39
+ def match?(attribute, type = nil, **options); end
40
+ def message; end
41
+ def options; end
42
+ def raw_type; end
43
+ def self.full_message(attribute, message, base); end
44
+ def self.generate_message(attribute, type, base, options); end
45
+ def self.i18n_customize_full_message; end
46
+ def self.i18n_customize_full_message=(value); end
47
+ def self.i18n_customize_full_message?; end
48
+ def strict_match?(attribute, type, **options); end
49
+ def type; end
50
+ end
51
+ class ActiveModel::NestedError < ActiveModel::Error
52
+ def initialize(base, inner_error, override_options = nil); end
53
+ def inner_error; end
54
+ def message(*args, &block); end
55
+ extend Forwardable
56
+ end
57
+ class ActiveModel::Errors
58
+ def [](attribute); end
59
+ def add(attribute, type = nil, **options); end
60
+ def add_from_legacy_details_hash(details); end
61
+ def added?(attribute, type = nil, options = nil); end
62
+ def any?(*args, &block); end
63
+ def as_json(options = nil); end
64
+ def attribute_names; end
65
+ def blank?(*args, &block); end
66
+ def clear(*args, &block); end
67
+ def copy!(other); end
68
+ def count(*args, &block); end
69
+ def delete(attribute, type = nil, **options); end
70
+ def deprecation_removal_warning(method_name, alternative_message = nil); end
71
+ def deprecation_rename_warning(old_method_name, new_method_name); end
72
+ def details; end
73
+ def each(&block); end
74
+ def empty?(*args, &block); end
75
+ def errors; end
76
+ def full_message(attribute, message); end
77
+ def full_messages; end
78
+ def full_messages_for(attribute); end
79
+ def generate_message(attribute, type = nil, options = nil); end
80
+ def group_by_attribute; end
81
+ def has_key?(attribute); end
82
+ def import(error, override_options = nil); end
83
+ def include?(attribute); end
84
+ def init_with(coder); end
85
+ def initialize(base); end
86
+ def initialize_dup(other); end
87
+ def key?(attribute); end
88
+ def keys; end
89
+ def marshal_load(array); end
90
+ def merge!(other); end
91
+ def messages; end
92
+ def messages_for(attribute); end
93
+ def normalize_arguments(attribute, type, **options); end
94
+ def objects; end
95
+ def of_kind?(attribute, type = nil); end
96
+ def size(*args, &block); end
97
+ def slice!(*keys); end
98
+ def to_a; end
99
+ def to_h; end
100
+ def to_hash(full_messages = nil); end
101
+ def to_xml(options = nil); end
102
+ def uniq!(*args, &block); end
103
+ def values; end
104
+ def where(attribute, type = nil, **options); end
105
+ extend Forwardable
106
+ include Enumerable
107
+ end
108
+ class ActiveModel::DeprecationHandlingMessageHash < SimpleDelegator
109
+ def []=(attribute, value); end
110
+ def delete(attribute); end
111
+ def initialize(errors); end
112
+ def prepare_content; end
113
+ end
114
+ class ActiveModel::DeprecationHandlingMessageArray < SimpleDelegator
115
+ def <<(message); end
116
+ def clear; end
117
+ def initialize(content, errors, attribute); end
118
+ end
119
+ class ActiveModel::DeprecationHandlingDetailsHash < SimpleDelegator
120
+ def initialize(details); end
121
+ end
122
+ class ActiveModel::StrictValidationFailed < StandardError
123
+ end
124
+ class ActiveModel::RangeError < RangeError
125
+ end
126
+ class ActiveModel::UnknownAttributeError < NoMethodError
127
+ def attribute; end
128
+ def initialize(record, attribute); end
129
+ def record; end
130
+ end
131
+ module ActiveModel::Conversion
132
+ def to_key; end
133
+ def to_model; end
134
+ def to_param; end
135
+ def to_partial_path; end
136
+ extend ActiveSupport::Concern
137
+ end
138
+ module ActiveModel::Conversion::ClassMethods
139
+ def _to_partial_path; end
140
+ end
141
+ module ActiveModel::Validations
142
+ def errors; end
143
+ def initialize_dup(other); end
144
+ def invalid?(context = nil); end
145
+ def raise_validation_error; end
146
+ def read_attribute_for_validation(*arg0); end
147
+ def run_validations!; end
148
+ def valid?(context = nil); end
149
+ def validate!(context = nil); end
150
+ def validate(context = nil); end
151
+ def validates_with(*args, &block); end
152
+ extend ActiveSupport::Concern
153
+ end
154
+ module ActiveModel::Validations::Callbacks
155
+ def run_validations!; end
156
+ extend ActiveSupport::Concern
157
+ end
158
+ module ActiveModel::Validations::Callbacks::ClassMethods
159
+ def after_validation(*args, &block); end
160
+ def before_validation(*args, &block); end
161
+ def set_options_for_callback(options); end
162
+ end
163
+ class ActiveModel::Validator
164
+ def initialize(options = nil); end
165
+ def kind; end
166
+ def options; end
167
+ def self.kind; end
168
+ def validate(record); end
169
+ end
170
+ class ActiveModel::EachValidator < ActiveModel::Validator
171
+ def attributes; end
172
+ def check_validity!; end
173
+ def initialize(options); end
174
+ def prepare_value_for_validation(value, record, attr_name); end
175
+ def validate(record); end
176
+ def validate_each(record, attribute, value); end
177
+ end
178
+ class ActiveModel::BlockValidator < ActiveModel::EachValidator
179
+ def initialize(options, &block); end
180
+ def validate_each(record, attribute, value); end
181
+ end
182
+ class ActiveModel::Validations::ConfirmationValidator < ActiveModel::EachValidator
183
+ def confirmation_value_equal?(record, attribute, value, confirmed); end
184
+ def initialize(options); end
185
+ def setup!(klass); end
186
+ def validate_each(record, attribute, value); end
187
+ end
188
+ module ActiveModel::Validations::HelperMethods
189
+ def _merge_attributes(attr_names); end
190
+ def validates_absence_of(*attr_names); end
191
+ def validates_acceptance_of(*attr_names); end
192
+ def validates_confirmation_of(*attr_names); end
193
+ def validates_exclusion_of(*attr_names); end
194
+ def validates_format_of(*attr_names); end
195
+ def validates_inclusion_of(*attr_names); end
196
+ def validates_length_of(*attr_names); end
197
+ def validates_numericality_of(*attr_names); end
198
+ def validates_presence_of(*attr_names); end
199
+ def validates_size_of(*attr_names); end
200
+ end
201
+ module ActiveModel::Validations::Clusivity
202
+ def check_validity!; end
203
+ def delimiter; end
204
+ def include?(record, value); end
205
+ def inclusion_method(enumerable); end
206
+ end
207
+ class ActiveModel::Validations::ExclusionValidator < ActiveModel::EachValidator
208
+ def validate_each(record, attribute, value); end
209
+ include ActiveModel::Validations::Clusivity
210
+ end
211
+ class ActiveModel::Validations::FormatValidator < ActiveModel::EachValidator
212
+ def check_options_validity(name); end
213
+ def check_validity!; end
214
+ def option_call(record, name); end
215
+ def record_error(record, attribute, name, value); end
216
+ def regexp_using_multiline_anchors?(regexp); end
217
+ def validate_each(record, attribute, value); end
218
+ end
219
+ class ActiveModel::Validations::PresenceValidator < ActiveModel::EachValidator
220
+ def validate_each(record, attr_name, value); end
221
+ end
222
+ class ActiveModel::Validations::AcceptanceValidator < ActiveModel::EachValidator
223
+ def acceptable_option?(value); end
224
+ def initialize(options); end
225
+ def setup!(klass); end
226
+ def validate_each(record, attribute, value); end
227
+ end
228
+ class ActiveModel::Validations::AcceptanceValidator::LazilyDefineAttributes < Module
229
+ def ==(other); end
230
+ def attributes; end
231
+ def define_on(klass); end
232
+ def included(klass); end
233
+ def initialize(attributes); end
234
+ def matches?(method_name); end
235
+ end
236
+ class ActiveModel::Validations::WithValidator < ActiveModel::EachValidator
237
+ def validate_each(record, attr, val); end
238
+ end
239
+ module ActiveModel::Validations::ClassMethods
240
+ def _parse_validates_options(options); end
241
+ def _validates_default_keys; end
242
+ def attribute_method?(attribute); end
243
+ def clear_validators!; end
244
+ def inherited(base); end
245
+ def validate(*args, &block); end
246
+ def validates!(*attributes); end
247
+ def validates(*attributes); end
248
+ def validates_each(*attr_names, &block); end
249
+ def validates_with(*args, &block); end
250
+ def validators; end
251
+ def validators_on(*attributes); end
252
+ end
253
+ class ActiveModel::Validations::LengthValidator < ActiveModel::EachValidator
254
+ def check_validity!; end
255
+ def initialize(options); end
256
+ def skip_nil_check?(key); end
257
+ def validate_each(record, attribute, value); end
258
+ end
259
+ class ActiveModel::Validations::NumericalityValidator < ActiveModel::EachValidator
260
+ def allow_only_integer?(record); end
261
+ def check_validity!; end
262
+ def filtered_options(value); end
263
+ def is_hexadecimal_literal?(raw_value); end
264
+ def is_integer?(raw_value); end
265
+ def is_number?(raw_value, precision, scale); end
266
+ def parse_as_number(raw_value, precision, scale); end
267
+ def parse_float(raw_value, precision, scale); end
268
+ def prepare_value_for_validation(value, record, attr_name); end
269
+ def record_attribute_changed_in_place?(record, attr_name); end
270
+ def round(raw_value, scale); end
271
+ def validate_each(record, attr_name, value, precision: nil, scale: nil); end
272
+ end
273
+ class ActiveModel::Validations::AbsenceValidator < ActiveModel::EachValidator
274
+ def validate_each(record, attr_name, value); end
275
+ end
276
+ class ActiveModel::Validations::InclusionValidator < ActiveModel::EachValidator
277
+ def validate_each(record, attribute, value); end
278
+ include ActiveModel::Validations::Clusivity
279
+ end
280
+ class ActiveModel::ValidationError < StandardError
281
+ def initialize(model); end
282
+ def model; end
283
+ end
284
+ class ActiveModel::Name
285
+ def !~(*args, &block); end
286
+ def <=>(*args, &block); end
287
+ def ==(arg); end
288
+ def ===(arg); end
289
+ def =~(*args, &block); end
290
+ def _singularize(string); end
291
+ def as_json(*args, &block); end
292
+ def cache_key; end
293
+ def collection; end
294
+ def collection=(arg0); end
295
+ def element; end
296
+ def element=(arg0); end
297
+ def eql?(*args, &block); end
298
+ def human(options = nil); end
299
+ def i18n_key; end
300
+ def i18n_key=(arg0); end
301
+ def initialize(klass, namespace = nil, name = nil); end
302
+ def match?(*args, &block); end
303
+ def name; end
304
+ def name=(arg0); end
305
+ def param_key; end
306
+ def param_key=(arg0); end
307
+ def plural; end
308
+ def plural=(arg0); end
309
+ def route_key; end
310
+ def route_key=(arg0); end
311
+ def singular; end
312
+ def singular=(arg0); end
313
+ def singular_route_key; end
314
+ def singular_route_key=(arg0); end
315
+ def to_s(*args, &block); end
316
+ def to_str(*args, &block); end
317
+ include Comparable
318
+ end
319
+ module ActiveModel::Naming
320
+ def model_name; end
321
+ def self.extended(base); end
322
+ def self.model_name_from_record_or_class(record_or_class); end
323
+ def self.param_key(record_or_class); end
324
+ def self.plural(record_or_class); end
325
+ def self.route_key(record_or_class); end
326
+ def self.singular(record_or_class); end
327
+ def self.singular_route_key(record_or_class); end
328
+ def self.uncountable?(record_or_class); end
329
+ end
330
+ module ActiveModel::Callbacks
331
+ def _define_after_model_callback(klass, callback); end
332
+ def _define_around_model_callback(klass, callback); end
333
+ def _define_before_model_callback(klass, callback); end
334
+ def define_model_callbacks(*callbacks); end
335
+ def self.extended(base); end
336
+ end
337
+ module ActiveModel::Translation
338
+ def human_attribute_name(attribute, options = nil); end
339
+ def i18n_scope; end
340
+ def lookup_ancestors; end
341
+ include ActiveModel::Naming
342
+ end