tapioca 0.11.17 → 0.13.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 +4 -4
- data/README.md +122 -100
- data/lib/tapioca/commands/abstract_dsl.rb +3 -2
- data/lib/tapioca/commands/abstract_gem.rb +3 -1
- data/lib/tapioca/dsl/compilers/aasm.rb +1 -6
- data/lib/tapioca/dsl/compilers/action_controller_helpers.rb +1 -5
- data/lib/tapioca/dsl/compilers/action_mailer.rb +1 -5
- data/lib/tapioca/dsl/compilers/action_text.rb +1 -5
- data/lib/tapioca/dsl/compilers/active_job.rb +1 -5
- data/lib/tapioca/dsl/compilers/active_model_attributes.rb +4 -11
- data/lib/tapioca/dsl/compilers/active_model_secure_password.rb +10 -6
- data/lib/tapioca/dsl/compilers/active_model_validations_confirmation.rb +1 -5
- data/lib/tapioca/dsl/compilers/active_record_associations.rb +1 -5
- data/lib/tapioca/dsl/compilers/active_record_columns.rb +1 -5
- data/lib/tapioca/dsl/compilers/active_record_delegated_types.rb +1 -5
- data/lib/tapioca/dsl/compilers/active_record_enum.rb +1 -7
- data/lib/tapioca/dsl/compilers/active_record_fixtures.rb +2 -9
- data/lib/tapioca/dsl/compilers/active_record_relations.rb +253 -66
- data/lib/tapioca/dsl/compilers/active_record_scope.rb +1 -5
- data/lib/tapioca/dsl/compilers/active_record_secure_token.rb +1 -5
- data/lib/tapioca/dsl/compilers/active_record_store.rb +1 -5
- data/lib/tapioca/dsl/compilers/active_record_typed_store.rb +1 -7
- data/lib/tapioca/dsl/compilers/active_resource.rb +1 -5
- data/lib/tapioca/dsl/compilers/active_storage.rb +1 -6
- data/lib/tapioca/dsl/compilers/active_support_concern.rb +1 -5
- data/lib/tapioca/dsl/compilers/active_support_current_attributes.rb +6 -16
- data/lib/tapioca/dsl/compilers/config.rb +1 -5
- data/lib/tapioca/dsl/compilers/frozen_record.rb +1 -5
- data/lib/tapioca/dsl/compilers/graphql_input_object.rb +2 -6
- data/lib/tapioca/dsl/compilers/graphql_mutation.rb +2 -6
- data/lib/tapioca/dsl/compilers/identity_cache.rb +1 -7
- data/lib/tapioca/dsl/compilers/json_api_client_resource.rb +1 -7
- data/lib/tapioca/dsl/compilers/kredis.rb +1 -5
- data/lib/tapioca/dsl/compilers/mixed_in_class_attributes.rb +1 -5
- data/lib/tapioca/dsl/compilers/protobuf.rb +8 -5
- data/lib/tapioca/dsl/compilers/rails_generators.rb +1 -6
- data/lib/tapioca/dsl/compilers/sidekiq_worker.rb +1 -5
- data/lib/tapioca/dsl/compilers/smart_properties.rb +1 -7
- data/lib/tapioca/dsl/compilers/state_machines.rb +1 -7
- data/lib/tapioca/dsl/compilers/url_helpers.rb +17 -16
- data/lib/tapioca/dsl/extensions/active_record.rb +4 -2
- data/lib/tapioca/dsl/extensions/frozen_record.rb +6 -2
- data/lib/tapioca/dsl/extensions/kredis.rb +6 -2
- data/lib/tapioca/dsl/helpers/active_model_type_helper.rb +70 -0
- data/lib/tapioca/dsl/helpers/active_record_column_type_helper.rb +3 -35
- data/lib/tapioca/dsl/helpers/active_record_constants_helper.rb +2 -0
- data/lib/tapioca/dsl/pipeline.rb +1 -1
- data/lib/tapioca/gem/listeners/sorbet_props.rb +2 -1
- data/lib/tapioca/gemfile.rb +12 -1
- data/lib/tapioca/rbi_ext/model.rb +38 -6
- data/lib/tapioca/version.rb +1 -1
- metadata +6 -11
@@ -1,11 +1,7 @@
|
|
1
1
|
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
|
5
|
-
require "google/protobuf"
|
6
|
-
rescue LoadError
|
7
|
-
return
|
8
|
-
end
|
4
|
+
return unless defined?(Google::Protobuf)
|
9
5
|
|
10
6
|
module Tapioca
|
11
7
|
module Dsl
|
@@ -306,6 +302,13 @@ module Tapioca
|
|
306
302
|
return_type: "void",
|
307
303
|
)
|
308
304
|
|
305
|
+
if desc.has_presence?
|
306
|
+
klass.create_method(
|
307
|
+
"has_#{field.name}?",
|
308
|
+
return_type: "Object",
|
309
|
+
)
|
310
|
+
end
|
311
|
+
|
309
312
|
field
|
310
313
|
end
|
311
314
|
|
@@ -1,13 +1,7 @@
|
|
1
1
|
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
|
5
|
-
require "smart_properties"
|
6
|
-
rescue LoadError
|
7
|
-
# means SmartProperties is not installed,
|
8
|
-
# so let's not even define the compiler.
|
9
|
-
return
|
10
|
-
end
|
4
|
+
return unless defined?(SmartProperties)
|
11
5
|
|
12
6
|
module Tapioca
|
13
7
|
module Dsl
|
@@ -1,13 +1,7 @@
|
|
1
1
|
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
|
5
|
-
require "state_machines"
|
6
|
-
rescue LoadError
|
7
|
-
# means StateMachines is not installed,
|
8
|
-
# so let's not even define the compiler.
|
9
|
-
return
|
10
|
-
end
|
4
|
+
return unless defined?(StateMachines)
|
11
5
|
|
12
6
|
module Tapioca
|
13
7
|
module Dsl
|
@@ -1,13 +1,7 @@
|
|
1
1
|
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
|
5
|
-
require "rails"
|
6
|
-
require "action_controller"
|
7
|
-
require "action_view"
|
8
|
-
rescue LoadError
|
9
|
-
return
|
10
|
-
end
|
4
|
+
return unless defined?(Rails) && defined?(ActionDispatch::Routing)
|
11
5
|
|
12
6
|
module Tapioca
|
13
7
|
module Dsl
|
@@ -102,19 +96,11 @@ module Tapioca
|
|
102
96
|
end
|
103
97
|
end
|
104
98
|
|
105
|
-
NON_DISCOVERABLE_INCLUDERS = T.let(
|
106
|
-
[
|
107
|
-
ActionDispatch::IntegrationTest,
|
108
|
-
ActionView::Helpers,
|
109
|
-
],
|
110
|
-
T::Array[Module],
|
111
|
-
)
|
112
|
-
|
113
99
|
class << self
|
114
100
|
extend T::Sig
|
115
101
|
sig { override.returns(T::Enumerable[Module]) }
|
116
102
|
def gather_constants
|
117
|
-
return [] unless Rails.application
|
103
|
+
return [] unless defined?(Rails.application) && Rails.application
|
118
104
|
|
119
105
|
Object.const_set(:GeneratedUrlHelpersModule, Rails.application.routes.named_routes.url_helpers_module)
|
120
106
|
Object.const_set(:GeneratedPathHelpersModule, Rails.application.routes.named_routes.path_helpers_module)
|
@@ -131,6 +117,19 @@ module Tapioca
|
|
131
117
|
constants.concat(NON_DISCOVERABLE_INCLUDERS)
|
132
118
|
end
|
133
119
|
|
120
|
+
sig { returns(T::Array[Module]) }
|
121
|
+
def gather_non_discoverable_includers
|
122
|
+
[].tap do |includers|
|
123
|
+
if defined?(ActionController::TemplateAssertions) && defined?(ActionDispatch::IntegrationTest)
|
124
|
+
includers << ActionDispatch::IntegrationTest
|
125
|
+
end
|
126
|
+
|
127
|
+
if defined?(ActionView::Helpers)
|
128
|
+
includers << ActionView::Helpers
|
129
|
+
end
|
130
|
+
end.freeze
|
131
|
+
end
|
132
|
+
|
134
133
|
sig { params(mod: Module, helper: Module).returns(T::Boolean) }
|
135
134
|
private def includes_helper?(mod, helper)
|
136
135
|
superclass_ancestors = []
|
@@ -145,6 +144,8 @@ module Tapioca
|
|
145
144
|
end
|
146
145
|
end
|
147
146
|
|
147
|
+
NON_DISCOVERABLE_INCLUDERS = T.let(gather_non_discoverable_includers, T::Array[Module])
|
148
|
+
|
148
149
|
private
|
149
150
|
|
150
151
|
sig { params(root: RBI::Tree, constant: Module).void }
|
@@ -2,7 +2,7 @@
|
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
begin
|
5
|
-
require "
|
5
|
+
require "active_support"
|
6
6
|
rescue LoadError
|
7
7
|
return
|
8
8
|
end
|
@@ -39,7 +39,9 @@ module Tapioca
|
|
39
39
|
super
|
40
40
|
end
|
41
41
|
|
42
|
-
::
|
42
|
+
::ActiveSupport.on_load(:active_record) do
|
43
|
+
::ActiveRecord::Base.singleton_class.prepend(::Tapioca::Dsl::Compilers::Extensions::ActiveRecord)
|
44
|
+
end
|
43
45
|
end
|
44
46
|
end
|
45
47
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
begin
|
5
|
-
require "
|
5
|
+
require "active_support"
|
6
6
|
rescue LoadError
|
7
7
|
return
|
8
8
|
end
|
@@ -21,7 +21,11 @@ module Tapioca
|
|
21
21
|
super
|
22
22
|
end
|
23
23
|
|
24
|
-
::
|
24
|
+
::ActiveSupport.on_load(:before_configuration) do
|
25
|
+
next unless defined?(::FrozenRecord::Base)
|
26
|
+
|
27
|
+
::FrozenRecord::Base.singleton_class.prepend(::Tapioca::Dsl::Compilers::Extensions::FrozenRecord)
|
28
|
+
end
|
25
29
|
end
|
26
30
|
end
|
27
31
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
begin
|
5
|
-
require "
|
5
|
+
require "active_support"
|
6
6
|
rescue LoadError
|
7
7
|
return
|
8
8
|
end
|
@@ -106,7 +106,11 @@ module Tapioca
|
|
106
106
|
@__tapioca_kredis_types[method.to_s] = { type: type, values: values }
|
107
107
|
end
|
108
108
|
|
109
|
-
::
|
109
|
+
::ActiveSupport.on_load(:before_configuration) do
|
110
|
+
next unless defined?(::Kredis::Attributes::ClassMethods)
|
111
|
+
|
112
|
+
::Kredis::Attributes::ClassMethods.prepend(::Tapioca::Dsl::Compilers::Extensions::Kredis)
|
113
|
+
end
|
110
114
|
end
|
111
115
|
end
|
112
116
|
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# typed: strict
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module Tapioca
|
5
|
+
module Dsl
|
6
|
+
module Helpers
|
7
|
+
module ActiveModelTypeHelper
|
8
|
+
class << self
|
9
|
+
extend T::Sig
|
10
|
+
|
11
|
+
# Returns the type indicated by the custom ActiveModel::Type::Value.
|
12
|
+
# Accepts subclasses of ActiveModel::Type::Value as well as classes that implement similar methods.
|
13
|
+
sig { params(type_value: T.untyped).returns(String) }
|
14
|
+
def type_for(type_value)
|
15
|
+
return "T.untyped" if Runtime::GenericTypeRegistry.generic_type_instance?(type_value)
|
16
|
+
|
17
|
+
type = lookup_return_type_of_method(type_value, :deserialize) ||
|
18
|
+
lookup_return_type_of_method(type_value, :cast) ||
|
19
|
+
lookup_return_type_of_method(type_value, :cast_value) ||
|
20
|
+
lookup_arg_type_of_method(type_value, :serialize) ||
|
21
|
+
T.untyped
|
22
|
+
type.to_s
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
MEANINGLESS_TYPES = T.let(
|
28
|
+
[
|
29
|
+
T.untyped,
|
30
|
+
T.noreturn,
|
31
|
+
T::Private::Types::Void,
|
32
|
+
T::Private::Types::NotTyped,
|
33
|
+
].freeze,
|
34
|
+
T::Array[Object],
|
35
|
+
)
|
36
|
+
|
37
|
+
sig { params(type: T.untyped).returns(T::Boolean) }
|
38
|
+
def meaningful_type?(type)
|
39
|
+
!MEANINGLESS_TYPES.include?(type)
|
40
|
+
end
|
41
|
+
|
42
|
+
sig { params(obj: T.untyped, method: Symbol).returns(T.nilable(T::Types::Base)) }
|
43
|
+
def lookup_return_type_of_method(obj, method)
|
44
|
+
return_type = lookup_signature_of_method(obj, method)&.return_type
|
45
|
+
return unless return_type && meaningful_type?(return_type)
|
46
|
+
|
47
|
+
return_type
|
48
|
+
end
|
49
|
+
|
50
|
+
sig { params(obj: T.untyped, method: Symbol).returns(T.nilable(T::Types::Base)) }
|
51
|
+
def lookup_arg_type_of_method(obj, method)
|
52
|
+
# Arg types is an array of [name, type] entries, so we dig into first entry (index 0)
|
53
|
+
# and then into the type which is the last element (index 1)
|
54
|
+
first_arg_type = lookup_signature_of_method(obj, method)&.arg_types&.dig(0, 1)
|
55
|
+
return unless first_arg_type && meaningful_type?(first_arg_type)
|
56
|
+
|
57
|
+
first_arg_type
|
58
|
+
end
|
59
|
+
|
60
|
+
sig { params(obj: T.untyped, method: Symbol).returns(T.untyped) }
|
61
|
+
def lookup_signature_of_method(obj, method)
|
62
|
+
Runtime::Reflection.signature_of(obj.method(method))
|
63
|
+
rescue NameError
|
64
|
+
nil
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
+
require "tapioca/dsl/helpers/active_model_type_helper"
|
5
|
+
|
4
6
|
module Tapioca
|
5
7
|
module Dsl
|
6
8
|
module Helpers
|
@@ -98,7 +100,7 @@ module Tapioca
|
|
98
100
|
ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Array
|
99
101
|
"T::Array[#{type_for_activerecord_value(column_type.subtype)}]"
|
100
102
|
else
|
101
|
-
|
103
|
+
ActiveModelTypeHelper.type_for(column_type)
|
102
104
|
end
|
103
105
|
end
|
104
106
|
|
@@ -108,40 +110,6 @@ module Tapioca
|
|
108
110
|
!(constant.singleton_class < Object.const_get(:StrongTypeGeneration))
|
109
111
|
end
|
110
112
|
|
111
|
-
sig { params(column_type: BasicObject).returns(String) }
|
112
|
-
def handle_unknown_type(column_type)
|
113
|
-
return "T.untyped" unless ActiveModel::Type::Value === column_type
|
114
|
-
return "T.untyped" if Runtime::GenericTypeRegistry.generic_type_instance?(column_type)
|
115
|
-
|
116
|
-
lookup_return_type_of_method(column_type, :deserialize) ||
|
117
|
-
lookup_return_type_of_method(column_type, :cast) ||
|
118
|
-
lookup_arg_type_of_method(column_type, :serialize) ||
|
119
|
-
"T.untyped"
|
120
|
-
end
|
121
|
-
|
122
|
-
sig { params(column_type: ActiveModel::Type::Value, method: Symbol).returns(T.nilable(String)) }
|
123
|
-
def lookup_return_type_of_method(column_type, method)
|
124
|
-
signature = Runtime::Reflection.signature_of(column_type.method(method))
|
125
|
-
return unless signature
|
126
|
-
|
127
|
-
return_type = signature.return_type
|
128
|
-
return if return_type == T::Private::Types::Void || return_type == T::Private::Types::NotTyped
|
129
|
-
|
130
|
-
return_type.to_s
|
131
|
-
end
|
132
|
-
|
133
|
-
sig { params(column_type: ActiveModel::Type::Value, method: Symbol).returns(T.nilable(String)) }
|
134
|
-
def lookup_arg_type_of_method(column_type, method)
|
135
|
-
signature = Runtime::Reflection.signature_of(column_type.method(method))
|
136
|
-
return unless signature
|
137
|
-
|
138
|
-
# Arg types is an array [name, type] entries, so we desctructure the type of
|
139
|
-
# first argument to get the first argument type
|
140
|
-
_, first_argument_type = signature.arg_types.first
|
141
|
-
|
142
|
-
first_argument_type.to_s
|
143
|
-
end
|
144
|
-
|
145
113
|
sig { params(column_type: ActiveRecord::Enum::EnumType).returns(String) }
|
146
114
|
def enum_setter_type(column_type)
|
147
115
|
# In Rails < 7 this method is private. When support for that is dropped we can call the method directly
|
@@ -22,8 +22,10 @@ module Tapioca
|
|
22
22
|
CommonRelationMethodsModuleName = T.let("CommonRelationMethods", String)
|
23
23
|
|
24
24
|
RelationClassName = T.let("PrivateRelation", String)
|
25
|
+
RelationGroupChainClassName = T.let("PrivateRelationGroupChain", String)
|
25
26
|
RelationWhereChainClassName = T.let("PrivateRelationWhereChain", String)
|
26
27
|
AssociationRelationClassName = T.let("PrivateAssociationRelation", String)
|
28
|
+
AssociationRelationGroupChainClassName = T.let("PrivateAssociationRelationGroupChain", String)
|
27
29
|
AssociationRelationWhereChainClassName = T.let("PrivateAssociationRelationWhereChain", String)
|
28
30
|
AssociationsCollectionProxyClassName = T.let("PrivateCollectionProxy", String)
|
29
31
|
end
|
data/lib/tapioca/dsl/pipeline.rb
CHANGED
@@ -61,7 +61,7 @@ module Tapioca
|
|
61
61
|
.sort_by! { |c| T.must(Runtime::Reflection.name_of(c)) }
|
62
62
|
|
63
63
|
# It's OK if there are no constants to process if we received a valid file/path.
|
64
|
-
if constants_to_process.empty? && requested_paths.
|
64
|
+
if constants_to_process.empty? && requested_paths.none? { |p| File.exist?(p) }
|
65
65
|
report_error(<<~ERROR)
|
66
66
|
No classes/modules can be matched for RBI generation.
|
67
67
|
Please check that the requested classes/modules include processable DSL methods.
|
@@ -6,6 +6,7 @@ module Tapioca
|
|
6
6
|
module Listeners
|
7
7
|
class SorbetProps < Base
|
8
8
|
extend T::Sig
|
9
|
+
include RBIHelper
|
9
10
|
|
10
11
|
private
|
11
12
|
|
@@ -17,7 +18,7 @@ module Tapioca
|
|
17
18
|
return unless T::Props::ClassMethods === constant
|
18
19
|
|
19
20
|
constant.props.map do |name, prop|
|
20
|
-
type = prop.fetch(:type_object, "T.untyped").to_s
|
21
|
+
type = sanitize_signature_types(prop.fetch(:type_object, "T.untyped").to_s)
|
21
22
|
|
22
23
|
default = prop.key?(:default) || prop.key?(:factory) ? "T.unsafe(nil)" : nil
|
23
24
|
node << if prop.fetch(:immutable, false)
|
data/lib/tapioca/gemfile.rb
CHANGED
@@ -178,7 +178,18 @@ module Tapioca
|
|
178
178
|
|
179
179
|
sig { void }
|
180
180
|
def parse_yard_docs
|
181
|
-
files.each
|
181
|
+
files.each do |path|
|
182
|
+
YARD.parse(path.to_s, [], Logger::Severity::FATAL)
|
183
|
+
rescue RangeError
|
184
|
+
# In some circumstances, YARD will raise an error when parsing a file
|
185
|
+
# that is actually valid Ruby. We don't want tapioca to halt in these
|
186
|
+
# cases, so we'll rescue the error, pretend like there was no
|
187
|
+
# documentation, and move on.
|
188
|
+
#
|
189
|
+
# This can be removed when https://github.com/lsegal/yard/issues/1536
|
190
|
+
# is resolved and released.
|
191
|
+
[]
|
192
|
+
end
|
182
193
|
end
|
183
194
|
|
184
195
|
sig { returns(T::Array[String]) }
|
@@ -87,24 +87,56 @@ module RBI
|
|
87
87
|
).void
|
88
88
|
end
|
89
89
|
def create_method(name, parameters: [], return_type: "T.untyped", class_method: false, visibility: RBI::Public.new,
|
90
|
+
comments: [])
|
91
|
+
sig = create_sig(parameters: parameters, return_type: return_type)
|
92
|
+
create_method_with_sigs(
|
93
|
+
name,
|
94
|
+
sigs: [sig],
|
95
|
+
parameters: parameters.map(&:param),
|
96
|
+
class_method: class_method,
|
97
|
+
visibility: visibility,
|
98
|
+
comments: comments,
|
99
|
+
)
|
100
|
+
end
|
101
|
+
|
102
|
+
sig do
|
103
|
+
params(
|
104
|
+
name: String,
|
105
|
+
sigs: T::Array[RBI::Sig],
|
106
|
+
parameters: T::Array[RBI::Param],
|
107
|
+
class_method: T::Boolean,
|
108
|
+
visibility: RBI::Visibility,
|
109
|
+
comments: T::Array[RBI::Comment],
|
110
|
+
).void
|
111
|
+
end
|
112
|
+
def create_method_with_sigs(name, sigs:, parameters: [], class_method: false, visibility: RBI::Public.new,
|
90
113
|
comments: [])
|
91
114
|
return unless Tapioca::RBIHelper.valid_method_name?(name)
|
92
115
|
|
93
|
-
sig = RBI::Sig.new(return_type: return_type)
|
94
116
|
method = RBI::Method.new(
|
95
117
|
name,
|
96
|
-
sigs:
|
118
|
+
sigs: sigs,
|
119
|
+
params: parameters,
|
97
120
|
is_singleton: class_method,
|
98
121
|
visibility: visibility,
|
99
122
|
comments: comments,
|
100
123
|
)
|
101
|
-
parameters.each do |param|
|
102
|
-
method << param.param
|
103
|
-
sig << RBI::SigParam.new(param.param.name, param.type)
|
104
|
-
end
|
105
124
|
self << method
|
106
125
|
end
|
107
126
|
|
127
|
+
sig do
|
128
|
+
params(
|
129
|
+
parameters: T::Array[RBI::TypedParam],
|
130
|
+
return_type: String,
|
131
|
+
).returns(RBI::Sig)
|
132
|
+
end
|
133
|
+
def create_sig(parameters: [], return_type: "T.untyped")
|
134
|
+
params = parameters.map do |param|
|
135
|
+
RBI::SigParam.new(param.param.name, param.type)
|
136
|
+
end
|
137
|
+
RBI::Sig.new(params: params, return_type: return_type)
|
138
|
+
end
|
139
|
+
|
108
140
|
private
|
109
141
|
|
110
142
|
sig { returns(T::Hash[String, RBI::Node]) }
|
data/lib/tapioca/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tapioca
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ufuk Kayserilioglu
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: exe
|
13
13
|
cert_chain: []
|
14
|
-
date: 2024-
|
14
|
+
date: 2024-03-25 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
@@ -81,21 +81,18 @@ dependencies:
|
|
81
81
|
requirements:
|
82
82
|
- - ">="
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: 0.5.
|
84
|
+
version: 0.5.11087
|
85
85
|
type: :runtime
|
86
86
|
prerelease: false
|
87
87
|
version_requirements: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
89
|
- - ">="
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: 0.5.
|
91
|
+
version: 0.5.11087
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: spoom
|
94
94
|
requirement: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
|
-
- - "~>"
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version: 1.2.0
|
99
96
|
- - ">="
|
100
97
|
- !ruby/object:Gem::Version
|
101
98
|
version: 1.2.0
|
@@ -103,9 +100,6 @@ dependencies:
|
|
103
100
|
prerelease: false
|
104
101
|
version_requirements: !ruby/object:Gem::Requirement
|
105
102
|
requirements:
|
106
|
-
- - "~>"
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
version: 1.2.0
|
109
103
|
- - ">="
|
110
104
|
- !ruby/object:Gem::Version
|
111
105
|
version: 1.2.0
|
@@ -209,6 +203,7 @@ files:
|
|
209
203
|
- lib/tapioca/dsl/extensions/active_record.rb
|
210
204
|
- lib/tapioca/dsl/extensions/frozen_record.rb
|
211
205
|
- lib/tapioca/dsl/extensions/kredis.rb
|
206
|
+
- lib/tapioca/dsl/helpers/active_model_type_helper.rb
|
212
207
|
- lib/tapioca/dsl/helpers/active_record_column_type_helper.rb
|
213
208
|
- lib/tapioca/dsl/helpers/active_record_constants_helper.rb
|
214
209
|
- lib/tapioca/dsl/helpers/graphql_type_helper.rb
|
@@ -293,7 +288,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
293
288
|
- !ruby/object:Gem::Version
|
294
289
|
version: '0'
|
295
290
|
requirements: []
|
296
|
-
rubygems_version: 3.5.
|
291
|
+
rubygems_version: 3.5.6
|
297
292
|
signing_key:
|
298
293
|
specification_version: 4
|
299
294
|
summary: A Ruby Interface file generator for gems, core types and the Ruby standard
|