researchable-freedcamp-api 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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