Class: RubyRabbitmqJanus::Tools::Requests

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/rrj/tools/gem/requests.rb

Overview

# Load files json in ‘config/request/*/`.

This file is used for sending a request to Janus

Constant Summary collapse

PATH_REQUEST =

Define folder to request

'config/requests/'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRequests

Load all requests in folder



24
25
26
27
28
# File 'lib/rrj/tools/gem/requests.rb', line 24

def initialize
  @requests = {}
  ::Log.info "Loading all requests in : #{PATH_REQUEST}"
  Dir[File.join(PATH_REQUEST, '*')].count { |file| each_files(file) }
end

Instance Attribute Details

#requestsHash (readonly)

Returns It’s a hash with name and path to request.

Returns:

  • (Hash)

    It’s a hash with name and path to request.



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
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/rrj/tools/gem/requests.rb', line 15

class Requests
  include Singleton

  attr_reader :requests

  # Define folder to request
  PATH_REQUEST = 'config/requests/'

  # Load all requests in folder
  def initialize
    @requests = {}
    ::Log.info "Loading all requests in : #{PATH_REQUEST}"
    Dir[File.join(PATH_REQUEST, '*')].count { |file| each_files(file) }
  end

  private

  def each_folder(subfolder)
    Dir[File.join(PATH_REQUEST + subfolder, '*')].count do |file|
      if File.file?(file)
        read_folder("#{subfolder.gsub('/', '::')}::", file)
      elsif File.directory?(file)
        each_folder("#{subfolder}/#{File.basename(file)}")
      end
    end
  end

  def read_file(file)
    @requests[File.basename(file, '.json').to_s] = File.path(file)
  end

  def read_folder(folder, file)
    @requests[folder + File.basename(file, '.json').to_s] = File.path(file)
  end

  def each_files(file)
    if File.file?(file)
      read_file(file)
    elsif File.directory?(file)
      each_folder(File.basename(file))
    end
  end
end