reverie 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
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