Class: RubyRabbitmqJanus::Tools::Requests

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

Overview

Load files json in config/request. This file is used for sending a request to RabbitMQ

Author:

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



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/rrj/tools/requests.rb', line 18

def initialize
  @requests = {}
  Tools::Log.instance.info "Loading all requests in : #{PATH_REQUEST}"
  Dir[File.join(PATH_REQUEST, '*')].count do |file|
    if File.file?(file)
      read_file(file)
    elsif File.directory?(file)
      each_folder(File.basename(file))
    end
  end
end

Instance Attribute Details

#requestsObject (readonly)

Load files json in config/request. This file is used for sending a request to RabbitMQ

Author:



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

class Requests
  include Singleton

  attr_reader :requests

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

  # Load all requests in folder
  def initialize
    @requests = {}
    Tools::Log.instance.info "Loading all requests in : #{PATH_REQUEST}"
    Dir[File.join(PATH_REQUEST, '*')].count do |file|
      if File.file?(file)
        read_file(file)
      elsif File.directory?(file)
        each_folder(File.basename(file))
      end
    end
  end

  private

  # Run folder contains templates json
  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

  # Add template json to requests array
  # @param file [File]
  def read_file(file)
    @requests[File.basename(file, '.json').to_s] = File.path(file)
  end

  # Add template json to requests array with a path
  # @param folder [Dir]
  # @param file [File]
  def read_folder(folder, file)
    @requests[folder + File.basename(file, '.json').to_s] = File.path(file)
  end
end

Instance Method Details

#each_folder(subfolder) ⇒ Object (private)

Run folder contains templates json



33
34
35
36
37
38
39
40
41
# File 'lib/rrj/tools/requests.rb', line 33

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

#read_file(file) ⇒ Object (private)

Add template json to requests array

Parameters:

  • file (File)


45
46
47
# File 'lib/rrj/tools/requests.rb', line 45

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

#read_folder(folder, file) ⇒ Object (private)

Add template json to requests array with a path

Parameters:

  • folder (Dir)
  • file (File)


52
53
54
# File 'lib/rrj/tools/requests.rb', line 52

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