Sha256: 71a801d1d6430656b6509cc56f49062aec7b708483aee8b7154aac867afe601f
Contents?: true
Size: 1.01 KB
Versions: 3
Compression:
Stored size: 1.01 KB
Contents
# frozen_string_literal: true module Grape class Router # this could be an OpenStruct, but doesn't work in Ruby 2.3.0, see https://bugs.ruby-lang.org/issues/12251 class AttributeTranslator attr_reader :attributes, :request_method, :requirements def initialize(attributes = {}) @attributes = attributes @request_method = attributes[:request_method] @requirements = attributes[:requirements] end def to_h attributes end def method_missing(method_name, *args) # rubocop:disable Style/MethodMissing if setter?(method_name[-1]) attributes[method_name[0..-1]] = *args else attributes[method_name] end end def respond_to_missing?(method_name, _include_private = false) if setter?(method_name[-1]) true else @attributes.key?(method_name) end end private def setter?(method_name) method_name[-1] == '=' end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
grape-1.3.2 | lib/grape/router/attribute_translator.rb |
grape-1.3.1 | lib/grape/router/attribute_translator.rb |
grape-1.3.0 | lib/grape/router/attribute_translator.rb |