Module: Vend::HasResources

Included in:
Store
Defined in:
lib/vend/has_resources.rb

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/vend/has_resources.rb', line 2

def self.included base
  %w(
    customers
    payment_types
    products
    registers
    sales
    suppliers
    taxes
    users
  ).each do |r|
    define_method r do
      if resource = instance_variable_get("@_#{r}")
        resource
      else
        resource_name = r.
          gsub(/s$/,'').
          sub(/^[a-z]/) { $&.capitalize }.
          gsub(/(?:_|(\/))([a-z\d]*)/) { "#{$1}#{$2.capitalize}" }

        case resource_name
        when 'Taxe'
          resource_name.gsub! /e$/, ''
        end

        resource = Vend::ResourceCollection.new(self, "Vend::#{resource_name}".constantize)
          instance_variable_set("@_#{r}", resource)
        resource
      end
    end
  end
end