Class: Wrappix::Templates::Main

Inherits:
Object
  • Object
show all
Defined in:
lib/wrappix/templates/main.rb

Class Method Summary collapse

Class Method Details

.render(api_name, module_name, config) ⇒ Object



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
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/wrappix/templates/main.rb', line 6

def self.render(api_name, module_name, config)
  resources = config["resources"] || {}
  resource_requires = resources.keys.map do |r|
    "require_relative \"#{api_name}/resources/#{r}\""
  end.join("\n")

  <<~RUBY
    # frozen_string_literal: true

    require_relative "#{api_name}/version"
    require_relative "#{api_name}/configuration"
    require_relative "#{api_name}/error"
    require_relative "#{api_name}/request"
    require_relative "#{api_name}/object"
    require_relative "#{api_name}/collection"
    require_relative "#{api_name}/client"
    require_relative "#{api_name}/cache"
    #{resource_requires}

    module #{module_name}
      class << self
        attr_accessor :configuration, :cache

        def configure
          self.configuration ||= Configuration.new
          yield(configuration) if block_given?
          self
        end

        def client
          @client ||= Client.new(configuration)
        end
      end

      self.cache = MemoryCache.new
      self.configuration = Configuration.new
    end
  RUBY
end