alchemrest 3.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 +7 -0
- data/.rspec +3 -0
- data/.rubocop.yml +22 -0
- data/.rubocop_todo.yml +242 -0
- data/.ruby-version +1 -0
- data/Appraisals +19 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +378 -0
- data/Rakefile +29 -0
- data/alchemrest.gemspec +71 -0
- data/coach.yml +5 -0
- data/examples/bank_api/client.rb +31 -0
- data/examples/bank_api/data/account.rb +21 -0
- data/examples/bank_api/data/ach.rb +16 -0
- data/examples/bank_api/data/business_account.rb +22 -0
- data/examples/bank_api/data/card.rb +21 -0
- data/examples/bank_api/data/check.rb +19 -0
- data/examples/bank_api/data/product.rb +20 -0
- data/examples/bank_api/data/transaction.rb +49 -0
- data/examples/bank_api/data/user.rb +27 -0
- data/examples/bank_api/factories.rb +68 -0
- data/examples/bank_api/graph_visualization.rb +45 -0
- data/examples/bank_api/positive_interest_string.rb +33 -0
- data/examples/bank_api/requests/delete_user.rb +17 -0
- data/examples/bank_api/requests/get_business_account.rb +24 -0
- data/examples/bank_api/requests/get_products.rb +12 -0
- data/examples/bank_api/requests/get_transactions.rb +34 -0
- data/examples/bank_api/requests/get_user.rb +19 -0
- data/examples/bank_api/requests/post_transaction.rb +20 -0
- data/examples/bank_api/requests/update_user.rb +28 -0
- data/examples/bank_api/root.rb +52 -0
- data/examples/bank_api.rb +33 -0
- data/gemfiles/faraday_2.gemfile +9 -0
- data/gemfiles/faraday_2.gemfile.lock +363 -0
- data/gemfiles/rails_7_0.gemfile.lock +341 -0
- data/gemfiles/rails_7_2.gemfile +9 -0
- data/gemfiles/rails_7_2.gemfile.lock +384 -0
- data/gemfiles/rails_8_0.gemfile +9 -0
- data/gemfiles/rails_8_0.gemfile.lock +385 -0
- data/lib/alchemrest/circuit_breaker.rb +84 -0
- data/lib/alchemrest/client/configuration/connection.rb +83 -0
- data/lib/alchemrest/client/configuration.rb +89 -0
- data/lib/alchemrest/client.rb +48 -0
- data/lib/alchemrest/cop.rb +8 -0
- data/lib/alchemrest/data/capture_configuration.rb +77 -0
- data/lib/alchemrest/data/field.rb +36 -0
- data/lib/alchemrest/data/graph.rb +40 -0
- data/lib/alchemrest/data/record.rb +60 -0
- data/lib/alchemrest/data/schema.rb +80 -0
- data/lib/alchemrest/data.rb +9 -0
- data/lib/alchemrest/endpoint_definition.rb +47 -0
- data/lib/alchemrest/error.rb +122 -0
- data/lib/alchemrest/factory_bot.rb +64 -0
- data/lib/alchemrest/faraday_middleware/external_api_instrumentation.rb +24 -0
- data/lib/alchemrest/faraday_middleware/json_parser.rb +30 -0
- data/lib/alchemrest/faraday_middleware/kill_switch.rb +22 -0
- data/lib/alchemrest/faraday_middleware/underscore_response.rb +24 -0
- data/lib/alchemrest/hash_path.rb +81 -0
- data/lib/alchemrest/http_request.rb +75 -0
- data/lib/alchemrest/kill_switch/adapters.rb +88 -0
- data/lib/alchemrest/kill_switch.rb +31 -0
- data/lib/alchemrest/railtie.rb +25 -0
- data/lib/alchemrest/request/endpoint.rb +29 -0
- data/lib/alchemrest/request/returns.rb +46 -0
- data/lib/alchemrest/request.rb +80 -0
- data/lib/alchemrest/request_definition/builder.rb +13 -0
- data/lib/alchemrest/request_definition.rb +26 -0
- data/lib/alchemrest/response/pipeline/extract_payload.rb +64 -0
- data/lib/alchemrest/response/pipeline/final.rb +11 -0
- data/lib/alchemrest/response/pipeline/omit.rb +46 -0
- data/lib/alchemrest/response/pipeline/sanitize.rb +59 -0
- data/lib/alchemrest/response/pipeline/transform.rb +26 -0
- data/lib/alchemrest/response/pipeline/was_successful.rb +29 -0
- data/lib/alchemrest/response/pipeline.rb +71 -0
- data/lib/alchemrest/response.rb +73 -0
- data/lib/alchemrest/response_captured_handler.rb +68 -0
- data/lib/alchemrest/result/halt.rb +15 -0
- data/lib/alchemrest/result/try_helpers.rb +16 -0
- data/lib/alchemrest/result.rb +128 -0
- data/lib/alchemrest/root.rb +77 -0
- data/lib/alchemrest/transforms/base_to_type_transform_registry.rb +42 -0
- data/lib/alchemrest/transforms/constrainable.rb +41 -0
- data/lib/alchemrest/transforms/constraint/block.rb +22 -0
- data/lib/alchemrest/transforms/constraint/greater_than.rb +19 -0
- data/lib/alchemrest/transforms/constraint/greater_than_or_eq.rb +19 -0
- data/lib/alchemrest/transforms/constraint/in_list.rb +19 -0
- data/lib/alchemrest/transforms/constraint/is_instance_of.rb +19 -0
- data/lib/alchemrest/transforms/constraint/is_uuid.rb +19 -0
- data/lib/alchemrest/transforms/constraint/less_than.rb +19 -0
- data/lib/alchemrest/transforms/constraint/less_than_or_eq.rb +19 -0
- data/lib/alchemrest/transforms/constraint/matches_regex.rb +19 -0
- data/lib/alchemrest/transforms/constraint/max_length.rb +19 -0
- data/lib/alchemrest/transforms/constraint/min_length.rb +19 -0
- data/lib/alchemrest/transforms/constraint.rb +17 -0
- data/lib/alchemrest/transforms/constraint_builder/for_number.rb +25 -0
- data/lib/alchemrest/transforms/constraint_builder/for_string.rb +21 -0
- data/lib/alchemrest/transforms/constraint_builder.rb +15 -0
- data/lib/alchemrest/transforms/date_transform.rb +30 -0
- data/lib/alchemrest/transforms/enum.rb +52 -0
- data/lib/alchemrest/transforms/epoch_time.rb +32 -0
- data/lib/alchemrest/transforms/from_chain.rb +15 -0
- data/lib/alchemrest/transforms/from_number/to_type_transform_registry.rb +18 -0
- data/lib/alchemrest/transforms/from_number.rb +47 -0
- data/lib/alchemrest/transforms/from_string/to_type_transform_registry.rb +17 -0
- data/lib/alchemrest/transforms/from_string.rb +36 -0
- data/lib/alchemrest/transforms/from_type/empty_to_type_transform_registry.rb +14 -0
- data/lib/alchemrest/transforms/from_type.rb +64 -0
- data/lib/alchemrest/transforms/iso_time.rb +58 -0
- data/lib/alchemrest/transforms/json_number.rb +26 -0
- data/lib/alchemrest/transforms/loose_hash.rb +96 -0
- data/lib/alchemrest/transforms/money_transform.rb +42 -0
- data/lib/alchemrest/transforms/number.rb +27 -0
- data/lib/alchemrest/transforms/output_type.rb +65 -0
- data/lib/alchemrest/transforms/to_decimal.rb +22 -0
- data/lib/alchemrest/transforms/to_type/from_string_to_time_selector.rb +29 -0
- data/lib/alchemrest/transforms/to_type/transforms_selector.rb +61 -0
- data/lib/alchemrest/transforms/to_type.rb +86 -0
- data/lib/alchemrest/transforms/typed.rb +32 -0
- data/lib/alchemrest/transforms/union.rb +44 -0
- data/lib/alchemrest/transforms/with_constraint.rb +26 -0
- data/lib/alchemrest/transforms.rb +93 -0
- data/lib/alchemrest/url_builder/encoders.rb +39 -0
- data/lib/alchemrest/url_builder/options.rb +33 -0
- data/lib/alchemrest/url_builder.rb +31 -0
- data/lib/alchemrest/version.rb +5 -0
- data/lib/alchemrest/webmock_helpers.rb +27 -0
- data/lib/alchemrest.rb +159 -0
- data/lib/generators/alchemrest/kill_switch_migration_generator.rb +27 -0
- data/lib/generators/alchemrest/templates/kill_switch_migration.rb.erb +17 -0
- data/lib/rubocop/cop/alchemrest/define_request_using_with_params.rb +53 -0
- data/lib/rubocop/cop/alchemrest/endpoint_definition_using_generic_params.rb +55 -0
- data/lib/rubocop/cop/alchemrest/request_hash_returning_block.rb +54 -0
- data/lib/rubocop/cop/alchemrest/time_transform_with_no_zone.rb +56 -0
- data/lib/tapioca/dsl/compilers/alchemrest_data.rb +84 -0
- data/lib/tapioca/dsl/compilers/alchemrest_root.rb +68 -0
- data/mutant.yml +16 -0
- data/rbi/alchemrest/result.rbi +80 -0
- data/rbi/alchemrest.rbi +246 -0
- data/sorbet/config +5 -0
- data/sorbet/rbi/gems/.gitattributes +1 -0
- data/sorbet/rbi/gems/abstract_type@0.0.7.rbi +41 -0
- data/sorbet/rbi/gems/actionpack@8.0.4.rbi +11733 -0
- data/sorbet/rbi/gems/actionview@8.0.4.rbi +6560 -0
- data/sorbet/rbi/gems/activemodel@8.0.4.rbi +2891 -0
- data/sorbet/rbi/gems/activesupport@8.0.4.rbi +9621 -0
- data/sorbet/rbi/gems/adamantium@0.2.0.rbi +144 -0
- data/sorbet/rbi/gems/addressable@2.8.7.rbi +779 -0
- data/sorbet/rbi/gems/anima@0.3.2.rbi +103 -0
- data/sorbet/rbi/gems/ast@2.4.2.rbi +107 -0
- data/sorbet/rbi/gems/base64@0.3.0.rbi +52 -0
- data/sorbet/rbi/gems/benchmark@0.5.0.rbi +153 -0
- data/sorbet/rbi/gems/bigdecimal@3.3.1.rbi +77 -0
- data/sorbet/rbi/gems/builder@3.3.0.rbi +9 -0
- data/sorbet/rbi/gems/circuitbox@2.0.0.rbi +297 -0
- data/sorbet/rbi/gems/concord@0.1.6.rbi +51 -0
- data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +4716 -0
- data/sorbet/rbi/gems/connection_pool@2.5.4.rbi +9 -0
- data/sorbet/rbi/gems/crack@1.0.0.rbi +110 -0
- data/sorbet/rbi/gems/crass@1.0.6.rbi +294 -0
- data/sorbet/rbi/gems/date@3.4.1.rbi +58 -0
- data/sorbet/rbi/gems/drb@2.2.3.rbi +639 -0
- data/sorbet/rbi/gems/equalizer@0.0.11.rbi +38 -0
- data/sorbet/rbi/gems/erubi@1.13.1.rbi +85 -0
- data/sorbet/rbi/gems/factory_bot@6.5.0.rbi +1529 -0
- data/sorbet/rbi/gems/faraday-em_http@1.0.0.rbi +181 -0
- data/sorbet/rbi/gems/faraday-em_synchrony@1.0.1.rbi +120 -0
- data/sorbet/rbi/gems/faraday-excon@1.1.0.rbi +128 -0
- data/sorbet/rbi/gems/faraday-httpclient@1.0.1.rbi +123 -0
- data/sorbet/rbi/gems/faraday-multipart@1.2.0.rbi +190 -0
- data/sorbet/rbi/gems/faraday-net_http@1.0.2.rbi +140 -0
- data/sorbet/rbi/gems/faraday-net_http_persistent@1.2.0.rbi +116 -0
- data/sorbet/rbi/gems/faraday-patron@1.0.0.rbi +119 -0
- data/sorbet/rbi/gems/faraday-rack@1.0.0.rbi +113 -0
- data/sorbet/rbi/gems/faraday-retry@1.0.3.rbi +149 -0
- data/sorbet/rbi/gems/faraday@1.10.5.rbi +1620 -0
- data/sorbet/rbi/gems/hansi@0.2.1.rbi +9 -0
- data/sorbet/rbi/gems/hashdiff@1.1.2.rbi +174 -0
- data/sorbet/rbi/gems/i18n@1.14.7.rbi +1328 -0
- data/sorbet/rbi/gems/ice_nine@0.11.2.rbi +145 -0
- data/sorbet/rbi/gems/io-console@0.8.0.rbi +9 -0
- data/sorbet/rbi/gems/json@2.9.1.rbi +282 -0
- data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +8057 -0
- data/sorbet/rbi/gems/logger@1.7.0.rbi +260 -0
- data/sorbet/rbi/gems/loofah@2.24.0.rbi +571 -0
- data/sorbet/rbi/gems/memoizable@0.4.2.rbi +131 -0
- data/sorbet/rbi/gems/memosa@0.8.2.rbi +185 -0
- data/sorbet/rbi/gems/minitest@5.26.0.rbi +824 -0
- data/sorbet/rbi/gems/money@6.19.0.rbi +815 -0
- data/sorbet/rbi/gems/morpher@0.4.2.rbi +388 -0
- data/sorbet/rbi/gems/mprelude@0.1.0.rbi +140 -0
- data/sorbet/rbi/gems/multi_json@1.15.0.rbi +180 -0
- data/sorbet/rbi/gems/multipart-post@2.4.1.rbi +154 -0
- data/sorbet/rbi/gems/mustermann-contrib@3.0.3.rbi +9 -0
- data/sorbet/rbi/gems/mustermann@3.0.3.rbi +809 -0
- data/sorbet/rbi/gems/netrc@0.11.0.rbi +112 -0
- data/sorbet/rbi/gems/nokogiri@1.19.1.rbi +3412 -0
- data/sorbet/rbi/gems/parallel@1.26.3.rbi +234 -0
- data/sorbet/rbi/gems/parser@3.3.7.0.rbi +4877 -0
- data/sorbet/rbi/gems/pp@0.6.2.rbi +176 -0
- data/sorbet/rbi/gems/prettyprint@0.2.0.rbi +155 -0
- data/sorbet/rbi/gems/prism@1.5.1.rbi +26368 -0
- data/sorbet/rbi/gems/procto@0.0.3.rbi +9 -0
- data/sorbet/rbi/gems/psych@5.2.3.rbi +806 -0
- data/sorbet/rbi/gems/public_suffix@6.0.1.rbi +267 -0
- data/sorbet/rbi/gems/racc@1.8.1.rbi +120 -0
- data/sorbet/rbi/gems/rack-session@2.1.1.rbi +458 -0
- data/sorbet/rbi/gems/rack-test@2.2.0.rbi +405 -0
- data/sorbet/rbi/gems/rack@3.1.14.rbi +2774 -0
- data/sorbet/rbi/gems/rackup@2.2.1.rbi +132 -0
- data/sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi +266 -0
- data/sorbet/rbi/gems/rails-html-sanitizer@1.6.2.rbi +545 -0
- data/sorbet/rbi/gems/railties@8.0.4.rbi +2150 -0
- data/sorbet/rbi/gems/rainbow@3.1.1.rbi +333 -0
- data/sorbet/rbi/gems/rake@13.2.1.rbi +2054 -0
- data/sorbet/rbi/gems/rbi@0.2.3.rbi +3961 -0
- data/sorbet/rbi/gems/rdoc@6.13.1.rbi +6784 -0
- data/sorbet/rbi/gems/regexp_parser@2.11.3.rbi +3020 -0
- data/sorbet/rbi/gems/reline@0.6.0.rbi +9 -0
- data/sorbet/rbi/gems/rexml@3.4.2.rbi +1777 -0
- data/sorbet/rbi/gems/rubocop-ast@1.38.0.rbi +5293 -0
- data/sorbet/rbi/gems/rubocop@1.71.1.rbi +31846 -0
- data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +980 -0
- data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +9 -0
- data/sorbet/rbi/gems/securerandom@0.4.1.rbi +33 -0
- data/sorbet/rbi/gems/sentry-ruby@5.22.1.rbi +3782 -0
- data/sorbet/rbi/gems/spoom@1.5.1.rbi +4321 -0
- data/sorbet/rbi/gems/stringio@3.1.2.rbi +9 -0
- data/sorbet/rbi/gems/tapioca@0.16.8.rbi +3399 -0
- data/sorbet/rbi/gems/thor@1.3.2.rbi +2012 -0
- data/sorbet/rbi/gems/thread_safe@0.3.6.rbi +711 -0
- data/sorbet/rbi/gems/timeout@0.4.4.rbi +80 -0
- data/sorbet/rbi/gems/tsort@0.2.0.rbi +50 -0
- data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +1677 -0
- data/sorbet/rbi/gems/unicode-display_width@2.6.0.rbi +62 -0
- data/sorbet/rbi/gems/uri@1.1.0.rbi +760 -0
- data/sorbet/rbi/gems/useragent@0.16.11.rbi +9 -0
- data/sorbet/rbi/gems/webmock@3.24.0.rbi +1362 -0
- data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +345 -0
- data/sorbet/rbi/gems/yard@0.9.37.rbi +8795 -0
- data/sorbet/rbi/gems/zeitwerk@2.7.1.rbi +589 -0
- data/sorbet/tapioca/config.yml +45 -0
- data/sorbet/tapioca/require.rb +8 -0
- data/sorbet/tapioca/sorbet/rbi/dsl/.gitattributes +1 -0
- data/sorbet/tapioca/sorbet/rbi/dsl/active_support/callbacks.rbi +23 -0
- metadata +737 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
|
|
3
|
+
# DO NOT EDIT MANUALLY
|
|
4
|
+
# This is an autogenerated file for types exported from the `memosa` gem.
|
|
5
|
+
# Please instead update this file by running `bin/tapioca gem memosa`.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# source://memosa//lib/memosa/cache.rb#3
|
|
9
|
+
# typed: strong
|
|
10
|
+
# Memosa provides a simple way to memoize methods in Ruby.
|
|
11
|
+
module Memosa
|
|
12
|
+
# source://memosa//lib/memosa.rb#35
|
|
13
|
+
# Convert a method to a memoized method
|
|
14
|
+
#
|
|
15
|
+
# Memosa does not support memoizing methods that accept arguments.
|
|
16
|
+
# _@param_ `method_name` — the name of the method to memoize
|
|
17
|
+
# _@return_ — the name of the memoized method
|
|
18
|
+
# ```ruby
|
|
19
|
+
# class State
|
|
20
|
+
# extend Memosa
|
|
21
|
+
# memoize def id
|
|
22
|
+
# SecureRandom.uuid
|
|
23
|
+
# end
|
|
24
|
+
# end
|
|
25
|
+
# ```
|
|
26
|
+
sig { params(method_name: Symbol).returns(Symbol) }
|
|
27
|
+
def memoize(method_name); end
|
|
28
|
+
|
|
29
|
+
# source://memosa//lib/memosa.rb#72
|
|
30
|
+
# Define and prepend MemosaMethods
|
|
31
|
+
#
|
|
32
|
+
# When {memoize} is called, Memosa will define a module named MemosaMethods. Memoized
|
|
33
|
+
# methods will be defined on this module and then prepended to the class.
|
|
34
|
+
# This method allows you to force that module to be defined and prepended, which is
|
|
35
|
+
# useful when order matters.
|
|
36
|
+
# ```ruby
|
|
37
|
+
# class Foo
|
|
38
|
+
# extend Memosa
|
|
39
|
+
# prepend_memosa
|
|
40
|
+
# end
|
|
41
|
+
# ```
|
|
42
|
+
sig { returns(Module) }
|
|
43
|
+
def prepend_memosa; end
|
|
44
|
+
|
|
45
|
+
class << self
|
|
46
|
+
# source://memosa//lib/memosa.rb#13
|
|
47
|
+
# Called when Memosa is extended
|
|
48
|
+
#
|
|
49
|
+
# _@param_ `base`
|
|
50
|
+
sig { params(base: Module).void }
|
|
51
|
+
def extended(base); end
|
|
52
|
+
|
|
53
|
+
# source://memosa//lib/memosa.rb#87
|
|
54
|
+
# Reset an object's memoization cache
|
|
55
|
+
#
|
|
56
|
+
# _@param_ `object`
|
|
57
|
+
# ```ruby
|
|
58
|
+
# Memosa.reset(user)
|
|
59
|
+
# ```
|
|
60
|
+
sig { params(object: Object).void }
|
|
61
|
+
def reset(object); end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# source://memosa//lib/memosa.rb#110
|
|
66
|
+
# This module provides a {#memosa} helper that can be used to manipulate the
|
|
67
|
+
# memoization cache directly.
|
|
68
|
+
module Memosa::API
|
|
69
|
+
# source://memosa//lib/memosa.rb#128
|
|
70
|
+
# Used to manipulate the memoized cache directly
|
|
71
|
+
#
|
|
72
|
+
# ```ruby
|
|
73
|
+
# class State
|
|
74
|
+
# extend Memosa
|
|
75
|
+
# include Memosa::API
|
|
76
|
+
# memoize def id
|
|
77
|
+
# SecureRandom.uuid
|
|
78
|
+
# end
|
|
79
|
+
# def reset!
|
|
80
|
+
# memosa.clear
|
|
81
|
+
# end
|
|
82
|
+
# ```
|
|
83
|
+
sig { returns(Memosa::Cache) }
|
|
84
|
+
def memosa; end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# source://memosa//lib/memosa/cache.rb#6
|
|
88
|
+
# This class is used to interact with the memoization cache.
|
|
89
|
+
# @api public
|
|
90
|
+
class Memosa::Cache
|
|
91
|
+
# source://memosa//lib/memosa/cache.rb#11
|
|
92
|
+
# Create a new instance of {Cache}
|
|
93
|
+
#
|
|
94
|
+
# _@param_ `cache` — the memoization cache
|
|
95
|
+
sig { params(cache: T::Hash[Symbol, BasicObject]).void }
|
|
96
|
+
def initialize(cache); end
|
|
97
|
+
|
|
98
|
+
# source://memosa//lib/memosa/cache.rb#33
|
|
99
|
+
# Reset the cache
|
|
100
|
+
#
|
|
101
|
+
# ```ruby
|
|
102
|
+
# memosa.clear
|
|
103
|
+
# ```
|
|
104
|
+
sig { returns(T.self_type) }
|
|
105
|
+
def clear; end
|
|
106
|
+
|
|
107
|
+
# source://memosa//lib/memosa/cache.rb#45
|
|
108
|
+
# Delete a key from the cache
|
|
109
|
+
#
|
|
110
|
+
# _@param_ `key`
|
|
111
|
+
# ```ruby
|
|
112
|
+
# memosa.delete(:foo)
|
|
113
|
+
# ```
|
|
114
|
+
sig { params(key: Symbol).returns(T.self_type) }
|
|
115
|
+
def delete(key); end
|
|
116
|
+
|
|
117
|
+
# source://memosa//lib/memosa/cache.rb#22
|
|
118
|
+
# Add values to the cache
|
|
119
|
+
#
|
|
120
|
+
# _@param_ `values` — the values to add to the cache.
|
|
121
|
+
# ```ruby
|
|
122
|
+
# memosa.merge!(foo: "bar")
|
|
123
|
+
# ```
|
|
124
|
+
sig { params(values: T::Hash[Symbol, BasicObject]).returns(T.self_type) }
|
|
125
|
+
def merge!(values); end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# source://memosa//lib/memosa.rb#96
|
|
129
|
+
module Memosa::Initializer
|
|
130
|
+
# source://memosa//lib/memosa.rb#102
|
|
131
|
+
def freeze; end
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
# source://memosa//lib/memosa/internal.rb#6
|
|
135
|
+
module Memosa::Internal
|
|
136
|
+
class << self
|
|
137
|
+
# source://memosa//lib/memosa/internal.rb#29
|
|
138
|
+
def method_defined?(owner, method_name); end
|
|
139
|
+
|
|
140
|
+
# source://memosa//lib/memosa/internal.rb#12
|
|
141
|
+
def visibility(owner, method_name); end
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
# source://memosa//lib/memosa/version.rb#6
|
|
146
|
+
Memosa::VERSION = T.let(T.unsafe(nil), String)
|
|
147
|
+
|
|
148
|
+
module RuboCop
|
|
149
|
+
module Cop
|
|
150
|
+
# Memosa includes a set of RuboCop rules that encourage best practices when using
|
|
151
|
+
# memosa.
|
|
152
|
+
#
|
|
153
|
+
# Add the following configuration to your `.rubocop.yml`:
|
|
154
|
+
#
|
|
155
|
+
# @example
|
|
156
|
+
# inherit_gem:
|
|
157
|
+
# memosa: config/rubocop.yml
|
|
158
|
+
module Memosa
|
|
159
|
+
# This cop checks for memoized methods that accept arguments or yield.
|
|
160
|
+
#
|
|
161
|
+
# @example
|
|
162
|
+
# # bad
|
|
163
|
+
# def foo; end
|
|
164
|
+
# memoize :foo
|
|
165
|
+
#
|
|
166
|
+
# # good
|
|
167
|
+
# memoize def foo; end
|
|
168
|
+
class MethodDefinition < RuboCop::Cop::Base
|
|
169
|
+
MSG = T.let("`memoize` should precede a method definition (e.g. `memoize def`)", T.untyped)
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
# This cop checks for memoized methods that accept arguments or yield.
|
|
173
|
+
#
|
|
174
|
+
# @example
|
|
175
|
+
# # bad
|
|
176
|
+
# memoize def foo(a); end
|
|
177
|
+
#
|
|
178
|
+
# # good
|
|
179
|
+
# memoize def foo; end
|
|
180
|
+
class MethodSignature < RuboCop::Cop::Base
|
|
181
|
+
MSG = T.let("Memoized methods should not accept arguments or yield", T.untyped)
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
end
|