reverie 1.0.2 → 1.0.3
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 +4 -4
- data/.gitignore +1 -0
- data/lib/reverie/configliere.rb +5 -0
- data/lib/reverie/version.rb +1 -1
- data/lib/reverie.rb +31 -12
- data/test/test_reverie.rb +29 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5fb63e6f97b5fad26cf7c215a088818b878a0040
|
4
|
+
data.tar.gz: cbaa469c22dfe7a79a20dd502db1e8765b68d649
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c0c8f81f5485be3cfeebc94a1c40b2dd271d7edc2efdc08baf79de5a3b7272ac0c9ce55d97140ed7a587145c390820b63990d888a60a3c4536e81df3636113c2
|
7
|
+
data.tar.gz: b1e8c09e49e09899e1a8cda3a457a72584f7b19999b6fab0a5156bd3c498d47f8f970e93240fdfa24c42137c5c332e40dd7120b971010925c87035a94205514c
|
data/.gitignore
CHANGED
data/lib/reverie/version.rb
CHANGED
data/lib/reverie.rb
CHANGED
@@ -8,13 +8,18 @@ require 'resolv'
|
|
8
8
|
require 'logger'
|
9
9
|
require 'yaml'
|
10
10
|
require 'configliere'
|
11
|
-
|
11
|
+
|
12
|
+
require_relative 'reverie/configliere'
|
13
|
+
require_relative 'reverie/version'
|
12
14
|
|
13
15
|
Settings.use :commandline, :config_file, :define
|
14
16
|
|
15
17
|
class Reverie
|
18
|
+
attr_accessor :log, :conf, :args
|
19
|
+
|
16
20
|
DH_URI = URI 'https://api.dreamhost.com/'
|
17
21
|
IP_URI = URI 'http://myexternalip.com/raw'
|
22
|
+
CONF = Configliere::DEFAULT_CONFIG_LOCATION[:user_config][:reverie]
|
18
23
|
|
19
24
|
OPENSSL_V3 = {
|
20
25
|
use_ssl: true,
|
@@ -29,13 +34,14 @@ class Reverie
|
|
29
34
|
too_soon: 'too soon, updated %ds ago',
|
30
35
|
same: 'not updating %s',
|
31
36
|
timeout: '%s timed out on %s',
|
32
|
-
kv: '%s: %s'
|
37
|
+
kv: '%s: %s',
|
38
|
+
start: 'connecting to %s'
|
33
39
|
}
|
34
40
|
|
35
41
|
Settings.define :conf,
|
36
42
|
type: :filename,
|
37
43
|
description: 'The location of the configuration file',
|
38
|
-
default:
|
44
|
+
default: CONF
|
39
45
|
|
40
46
|
Settings.define :log,
|
41
47
|
type: :filename,
|
@@ -47,12 +53,13 @@ class Reverie
|
|
47
53
|
|
48
54
|
def initialize
|
49
55
|
Settings.resolve!
|
50
|
-
Settings.read(@conf = Settings.delete('conf'))
|
51
56
|
|
52
|
-
|
53
|
-
|
54
|
-
|
57
|
+
init_conf
|
58
|
+
init_log
|
59
|
+
init_args
|
60
|
+
end
|
55
61
|
|
62
|
+
def init_args
|
56
63
|
@args = {
|
57
64
|
key: Settings[:key],
|
58
65
|
record: Settings[:record],
|
@@ -60,6 +67,17 @@ class Reverie
|
|
60
67
|
}
|
61
68
|
end
|
62
69
|
|
70
|
+
def init_conf
|
71
|
+
@conf = Settings.delete('conf') || CONF
|
72
|
+
Settings.read @conf
|
73
|
+
end
|
74
|
+
|
75
|
+
def init_log
|
76
|
+
@log = Logger.new(Settings.log || STDOUT)
|
77
|
+
@log.level = Settings.delete('debug') ? Logger::DEBUG : Logger::INFO
|
78
|
+
Settings.delete('log') unless Settings.log
|
79
|
+
end
|
80
|
+
|
63
81
|
def settings
|
64
82
|
Settings
|
65
83
|
end
|
@@ -101,6 +119,7 @@ class Reverie
|
|
101
119
|
end
|
102
120
|
|
103
121
|
def get_ip
|
122
|
+
d :start, IP_URI
|
104
123
|
ip = Net::HTTP.get_response(IP_URI).body.strip
|
105
124
|
d :found, ip
|
106
125
|
ip if ip =~ Resolv::IPv4::Regex
|
@@ -123,24 +142,24 @@ class Reverie
|
|
123
142
|
res = YAML.load(req.body)
|
124
143
|
d :kv, a[:cmd], res['result']
|
125
144
|
|
126
|
-
|
145
|
+
[res['result'], res['data']]
|
127
146
|
rescue Net::ReadTimeout
|
128
147
|
w :timeout, 'Dreamhost API', a[:cmd]
|
129
148
|
end
|
130
149
|
|
131
150
|
def d(msg, *args)
|
132
|
-
|
151
|
+
__log :debug, msg, *args
|
133
152
|
end
|
134
153
|
|
135
154
|
def w(msg, *args)
|
136
|
-
|
155
|
+
__log :warn, msg, *args
|
137
156
|
end
|
138
157
|
|
139
158
|
def i(msg, *args)
|
140
|
-
|
159
|
+
__log :info, msg, *args
|
141
160
|
end
|
142
161
|
|
143
|
-
def
|
162
|
+
def __log(level, msg, *args)
|
144
163
|
@log.send level, MSGS[msg] ? MSGS[msg] % args : msg
|
145
164
|
end
|
146
165
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require_relative '../lib/reverie'
|
3
|
+
|
4
|
+
r = Reverie.new
|
5
|
+
|
6
|
+
describe Reverie do
|
7
|
+
describe 'reverie' do
|
8
|
+
it 'inits a log' do
|
9
|
+
r.instance_exec { @log.must_be_instance_of Logger }
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'inits a conf' do
|
13
|
+
r.instance_exec { @conf.must_equal ENV['HOME'] + '/.config/reverie/conf' }
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'inits an args hash' do
|
17
|
+
r.instance_exec do
|
18
|
+
@args.must_be_instance_of Hash
|
19
|
+
@args.keys.must_include :key
|
20
|
+
@args.keys.must_include :record
|
21
|
+
@args[:format].must_equal 'yaml'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'gets an ip address' do
|
26
|
+
r.get_ip.must_match Resolv::IPv4::Regex
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reverie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fission Xuiptz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: configliere
|
@@ -38,8 +38,10 @@ files:
|
|
38
38
|
- Rakefile
|
39
39
|
- bin/reverie
|
40
40
|
- lib/reverie.rb
|
41
|
+
- lib/reverie/configliere.rb
|
41
42
|
- lib/reverie/version.rb
|
42
43
|
- reverie.gemspec
|
44
|
+
- test/test_reverie.rb
|
43
45
|
homepage: http://github.com/fissionxuiptz/reverie
|
44
46
|
licenses:
|
45
47
|
- MIT
|
@@ -64,4 +66,5 @@ rubygems_version: 2.2.2
|
|
64
66
|
signing_key:
|
65
67
|
specification_version: 4
|
66
68
|
summary: Dreamhost DNS updater
|
67
|
-
test_files:
|
69
|
+
test_files:
|
70
|
+
- test/test_reverie.rb
|