Sha256: 41ad8473a9eb818e9c5923781a3d9bb19ec8ced51fe78a02855bdb06c23952ae
Contents?: true
Size: 1.05 KB
Versions: 17
Compression:
Stored size: 1.05 KB
Contents
# frozen_string_literal: true module Orthoses module ActiveRecord class QueryMethods def initialize(loader) @loader = loader end def call @loader.call.tap do |store| content = store["ActiveRecord::QueryMethods"] ::ActiveRecord::Relation::VALUE_METHODS.each do |name| method_name, type = case name when *::ActiveRecord::Relation::MULTI_VALUE_METHODS ["#{name}_values", "::Array[untyped]"] when *::ActiveRecord::Relation::SINGLE_VALUE_METHODS ["#{name}_value", name == :create_with ? "::Hash[untyped, untyped]?" : "untyped"] when *::ActiveRecord::Relation::CLAUSE_METHODS ["#{name}_clause", name == :from ? "::ActiveRecord::Relation::FromClause" : "::ActiveRecord::Relation::WhereClause"] end content << "def #{method_name}: () -> #{type}" content << "def #{method_name}=: (#{type} value) -> #{type}" end end end end end end
Version data entries
17 entries across 17 versions & 1 rubygems