low_loop 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3bd2e532e273f35fcbcd9d8e9f0f4b0d9261e536d293908026371412ec11573e
4
- data.tar.gz: 39b83d8235d14d0d7359ea742f1e9c3d4ab4bdd1e0cceca01006950d2d942cc6
3
+ metadata.gz: 13f02bd5602a0a6f93f9fdf80a937c0bc8adf20bbb2ad30fbd4860475011e02f
4
+ data.tar.gz: 4023be91bfbcab20c048dd54201fa80fc3926ab83d17c4d90d52c92dd839155c
5
5
  SHA512:
6
- metadata.gz: 17b1927035f2900208d1cbe6399b7814ec812f19afa1b22734e83995fd7e8f5bbf5d6724403553c55a83ef0779cf7b7bcaa56e56763ee8e2b67814980fab2b53
7
- data.tar.gz: 29b8756fbb3957e9ab50a5748391b745ca244af98cea79ae2d3e9ed8955ec07aa3f7aad9d339a6154270e004b2058592272a8db132717354c6f5af200245f017
6
+ metadata.gz: 9b8974c79439798a63e993f9002fa08829f754a6e2d3b31083f9ee6b7613d8398cd57074d284c14be74fb70bf7bdf26f4bfba33bd5fe65feddb39d14188efca3
7
+ data.tar.gz: d55c83e3bf308b5a569e48c5ffb7333df45d240ba67c220faf27795d6c297076faa95c8e53340daab1c13e07705fc4d6f67fab19b73893a9f815046ad5b2205d
data/lib/low_loop.rb CHANGED
@@ -9,18 +9,18 @@ require 'observers'
9
9
  require_relative 'factories/response_factory'
10
10
  require_relative 'requests/request_parser'
11
11
  require_relative 'responses/response_builder'
12
+ require_relative 'servers/file_server'
12
13
 
13
14
  class LowLoop
14
15
  include Observers
15
16
 
16
17
  attr_reader :config
17
18
 
18
- def initialize(config:, dependencies: [])
19
+ def initialize(config:, router: nil)
19
20
  @config = config
20
21
 
21
- dependencies.each do |dependency|
22
- observers << dependency
23
- end
22
+ observers << Low::FileServer.new(web_root: config.web_root, content_types: config.content_types)
23
+ observers << router if router
24
24
 
25
25
  observers.push(self, action: :mirror) if config.mirror_mode
26
26
  end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'ostruct'
4
+ require 'yaml'
5
+
6
+ module Low
7
+ class ConfigLoader
8
+ class << self
9
+ def load(filepath, env = {})
10
+ config_file = YAML.safe_load_file(filepath, symbolize_names: true)
11
+
12
+ # Environment variables override config file.
13
+ config_data = config_file.merge(env) do |_key, old_value, new_value|
14
+ new_value.nil? ? old_value : new_value
15
+ end
16
+
17
+ OpenStruct.new(config_data)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,12 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module ConfigSupport
4
- class << self
5
- def parse_boolean(value)
6
- return true if value == '1'
7
- return false if value == '0'
3
+ module Low
4
+ module ConfigSupport
5
+ class << self
6
+ def parse_boolean(value)
7
+ return true if value == '1'
8
+ return false if value == '0'
8
9
 
9
- nil
10
+ nil
11
+ end
10
12
  end
11
13
  end
12
14
  end
data/lib/version.rb CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Low
4
4
  module Loop
5
- VERSION = '0.3.1'
5
+ VERSION = '0.3.2'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: low_loop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - maedi
@@ -123,6 +123,7 @@ files:
123
123
  - lib/responses/response_builder.rb
124
124
  - lib/servers/file_server.rb
125
125
  - lib/states/file_state.rb
126
+ - lib/support/config_loader.rb
126
127
  - lib/support/config_support.rb
127
128
  - lib/version.rb
128
129
  homepage: https://github.com/low-rb/low_loop