Module: Inrules

Defined in:
lib/inrules.rb,
lib/inrules/version.rb

Constant Summary collapse

VERSION =
"0.0.2"

Class Method Summary collapse

Class Method Details

.get_params(rule = nil) ⇒ Hash

Returns the hash of all specified rule’s files on in.rules file

Parameters:

  • rule, (String)

    the rule you want to get

Returns:

  • (Hash)

    all specified params. Merge between “all” and rule (if given)



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/inrules.rb', line 9

def self.get_params(rule=nil)
  
  # get in.rules file content 
  rules = self.in_rules
  
  raise "'common' object must be defined in in.rules file" unless rules.has_key? "common"

  # If rule was specified check if exist. If not raise error
  unless rule.nil?
    raise "rule #{rule} does not exist on in.rules file" unless rules.has_key? rule
  end

  @params = {}

  rules["common"].each{|file_name| @params.merge! self.in_file(file_name)}
  rules[rule].each{|file_name| @params.merge! self.in_file(file_name)} unless rule.nil?
  
  @params
end

.in_file(file_name) ⇒ Hash

Returns content of given file_name

Parameters:

  • file_name (String)

Returns:

  • (Hash)


41
42
43
44
45
46
47
48
49
# File 'lib/inrules.rb', line 41

def self.in_file file_name
  raise "There is no file with the name '#{file_name}' in in-files/ folder" unless File.exist?("in-files/#{file_name}")
  begin
    file_content = JSON.parse(File.read("in-files/#{file_name}"))
  rescue => e
    raise "Check the content/structure of #{file_name} file. Something gone wrong :/"
  end
  file_content
end

.in_rulesArray

Returns in.rules file content

Returns:

  • (Array)

    file_content



31
32
33
34
35
36
# File 'lib/inrules.rb', line 31

def self.in_rules
  raise "You must define 'in.rules' file in root folder" unless File.exist?('in.rules')
  file_content = JSON.parse(File.read('in.rules'))
  raise "in.rules file content must be a Hash" unless file_content.is_a? Hash
  file_content
end