| ... | ... |
@@ -1,15 +1,26 @@ |
| 1 | 1 |
require_relative "rubysermon/version" |
| 2 | 2 |
require_relative "rubysermon/mod_loader" |
| 3 | 3 |
require_relative "rubysermon/mod_template" |
| 4 |
+require_relative "rubysermon/configurator" |
|
| 4 | 5 |
|
| 5 | 6 |
module Rubysermon |
| 6 | 7 |
class App |
| 7 | 8 |
|
| 9 |
+ @config_path = "#{Dir.pwd}/config.json"
|
|
| 10 |
+ @config |
|
| 11 |
+ @loader |
|
| 12 |
+ |
|
| 8 | 13 |
def initialize |
| 9 | 14 |
|
| 10 | 15 |
end |
| 11 | 16 |
|
| 12 | 17 |
private |
| 18 |
+ |
|
| 19 |
+ def config |
|
| 20 |
+ configurator = Configurator.new(@config_path) |
|
| 21 |
+ @config = configurator.get_settings() |
|
| 22 |
+ end |
|
| 23 |
+ |
|
| 13 | 24 |
def load_mod(mod_name) |
| 14 | 25 |
begin |
| 15 | 26 |
@loader = ModLoader.load mod_name |
| 1 | 6 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,17 @@ |
| 0 |
+require 'json' |
|
| 1 |
+ |
|
| 2 |
+module Rubysermon |
|
| 3 |
+ class Configurator |
|
| 4 |
+ |
|
| 5 |
+ @parsed_settings |
|
| 6 |
+ |
|
| 7 |
+ def initialize(config_path) |
|
| 8 |
+ raw_json = File.read(config_path) |
|
| 9 |
+ @parsed_settings = JSON.parse(raw_json, symbolize_names: true) |
|
| 10 |
+ end |
|
| 11 |
+ |
|
| 12 |
+ def get_settings |
|
| 13 |
+ @parsed_settings |
|
| 14 |
+ end |
|
| 15 |
+ end |
|
| 16 |
+end |
|
| 0 | 17 |
\ No newline at end of file |
| 1 | 13 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,16 @@ |
| 0 |
+require_relative '../../test_helper.rb' |
|
| 1 |
+ |
|
| 2 |
+class Configurator_test < MiniTest::Unit::TestCase |
|
| 3 |
+ |
|
| 4 |
+ def test_load_config |
|
| 5 |
+ config_file = "../../fixtures/config.json" |
|
| 6 |
+ configurator = Rubysermon::Configurator.new(config_file) |
|
| 7 |
+ |
|
| 8 |
+ loaded_settings = configurator.get_settings() |
|
| 9 |
+ expected_settings = {modules: ["cpu", "ram"],
|
|
| 10 |
+ notify: ["mail"], |
|
| 11 |
+ refresh: 30} |
|
| 12 |
+ |
|
| 13 |
+ assert_equal(expected_settings, loaded_settings) |
|
| 14 |
+ end |
|
| 15 |
+end |
|
| 0 | 16 |
\ No newline at end of file |