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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2fb22911434d9be837fe65b4501636427a964ffd
4
- data.tar.gz: 9021a07c63cc95a0e3c5b15fb59e523ddb6930b4
3
+ metadata.gz: 5fb63e6f97b5fad26cf7c215a088818b878a0040
4
+ data.tar.gz: cbaa469c22dfe7a79a20dd502db1e8765b68d649
5
5
  SHA512:
6
- metadata.gz: 2c0ff4ad9779d50c494aca3cd16c879822f8ef107f8680bda4f10aa088c5770da335ab0f4e5766dfb5aa3429619d192d5dfab3d6454bf2db034c3c5e0cd2d85c
7
- data.tar.gz: 4630eda64eb8711f3627a096cb295b4c6ad7814dc2f9e7d58a9b3d35248c346593389893c22d5b99e2a7905ab0be8dd9b7ae0a0758655a062f1bdd8919ba70a4
6
+ metadata.gz: c0c8f81f5485be3cfeebc94a1c40b2dd271d7edc2efdc08baf79de5a3b7272ac0c9ce55d97140ed7a587145c390820b63990d888a60a3c4536e81df3636113c2
7
+ data.tar.gz: b1e8c09e49e09899e1a8cda3a457a72584f7b19999b6fab0a5156bd3c498d47f8f970e93240fdfa24c42137c5c332e40dd7120b971010925c87035a94205514c
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ .DS_Store
1
2
  *.gem
2
3
  *.rbc
3
4
  .bundle
@@ -0,0 +1,5 @@
1
+ module Configliere
2
+ DEFAULT_CONFIG_LOCATION[:user_config] = -> scope do
3
+ Pathname(ENV['HOME'] || '/').join('.config').join(scope.to_s).join('conf')
4
+ end
5
+ end
@@ -1,4 +1,4 @@
1
1
  # Reverie version
2
2
  class Reverie
3
- VERSION = '1.0.2'
3
+ VERSION = '1.0.3'
4
4
  end
data/lib/reverie.rb CHANGED
@@ -8,13 +8,18 @@ require 'resolv'
8
8
  require 'logger'
9
9
  require 'yaml'
10
10
  require 'configliere'
11
- require 'reverie/version'
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: Configliere::DEFAULT_CONFIG_LOCATION[:user].call('reverie')
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
- @log = Logger.new(Settings.log || STDOUT)
53
- @log.level = Settings.delete('debug') ? Logger::DEBUG : Logger::INFO
54
- Settings.delete('log') unless Settings.log
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
- return res['result'], res['data']
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
- log :debug, msg, *args
151
+ __log :debug, msg, *args
133
152
  end
134
153
 
135
154
  def w(msg, *args)
136
- log :warn, msg, *args
155
+ __log :warn, msg, *args
137
156
  end
138
157
 
139
158
  def i(msg, *args)
140
- log :info, msg, *args
159
+ __log :info, msg, *args
141
160
  end
142
161
 
143
- def log(level, msg, *args)
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.2
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-04-20 00:00:00.000000000 Z
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