Module: Shippo::API::Extend::Url

Included in:
Resource
Defined in:
lib/shippo/api/extend/url.rb

Class Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/shippo/api/extend/url.rb', line 5

def self.included(klass)
  klass.instance_eval do
    @url = nil
    class << self
      # It's a getter and a class-level setter
      def url(value = nil)
        return @url if @url
        @url ||= value if value
        @url ||= class_to_url
      end

      def class_to_url
        words = self.short_name.underscore.split(/_/)
        words.map { |w| "/#{w == words.last ? w.pluralize : w}" }.join
      end
    end
  end
end