hoot 0.2.0 → 0.3.0

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: a6fb0cf88115d0e25cb6c94222dbc960a610fb86
4
- data.tar.gz: bc8b210c0f496b8405cfa7274ce211091d9157b7
3
+ metadata.gz: 748725451b89a09686d011f00ca244cc11aac033
4
+ data.tar.gz: 2fdc9c6724ccf5195bd30c4e2499817239182c26
5
5
  SHA512:
6
- metadata.gz: 9ee2b89c29e283fed65ce26616baf71ecc65d5c4f8686db26669be4b940f477f5ddc174dd6eb5395860bd22d3ee1deac1fe923ebd1346d544da29f9d643e59c5
7
- data.tar.gz: 8c70ea6ad0a9ff04cc698948037ff754391ca942e44d555be274c9e4b55f650ef714f890ab34bc94636e74f4bf45990fdc8ff570e45fa7d67967f72ce817fcba
6
+ metadata.gz: a9ed73ff84a9025e6c55efe734cbc38d443a508c8b058f8bbfa9a3ec6f622929fe8f5ffdeef555c3a5c99006a6cc17a3065f56e9aca540f9a7c7e7098e9d8724
7
+ data.tar.gz: a6ab839c73600d304b8da7974c9bd8bdf3aac212e6cd16e85fe0ea3c6ea94f9c4d0f19de6d0bfa1309401848c1eb392076f7f46767343439d9f6b8ef432d38a2
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hoot (0.2.0)
4
+ hoot (0.3.0)
5
5
  commander
6
6
  json
7
7
  netrc
data/bin/hoot CHANGED
@@ -52,10 +52,24 @@ command :push do |c|
52
52
  end
53
53
 
54
54
  client.push(options.message)
55
-
56
55
  end
57
56
  end
58
57
 
58
+ command :set do |c|
59
+ c.syntax = 'hoot set [options]'
60
+ c.description = 'Set metadata for your notifications, ex. description, sender.'
61
+
62
+ c.option '-d', '--description String', String, 'Set the device description, e.g. "My Macbook."'
63
+ c.option '-s', '--device String', String, 'Sets the sender (for Hoot app icon). Options: `laptop`, `server` or `desktop`.'
64
+
65
+ c.example 'set', 'hoot --description "My Macbook Pro" --device server'
66
+
67
+ c.action do |args, options|
68
+ Hoot::Metadata.set(:description, options.description)
69
+ Hoot::Metadata.set(:device, options.device)
70
+ end
71
+ end
72
+
59
73
  private
60
74
 
61
75
  def client
data/lib/hoot.rb CHANGED
@@ -1,4 +1,5 @@
1
- require 'hoot/keychain'
2
1
  require 'hoot/client'
2
+ require 'hoot/keychain'
3
+ require 'hoot/metadata'
3
4
  require 'hoot/user'
4
5
  require 'hoot/version'
data/lib/hoot/client.rb CHANGED
@@ -30,7 +30,8 @@ module Hoot
30
30
  :email => @credentials[0],
31
31
  :password => @credentials[1]
32
32
  },
33
- :message => message
33
+ :message => message,
34
+ :metadata => Hoot::Metadata.get
34
35
  }
35
36
 
36
37
  response = request('send', data)
@@ -0,0 +1,73 @@
1
+ require 'yaml'
2
+
3
+ module Hoot
4
+ module Metadata
5
+ @path = "#{ENV['HOME']}/.hoot/metadata.yml"
6
+
7
+ public
8
+
9
+ def self.set(key, value)
10
+ return if value.nil?
11
+ return unless keys.include?(key)
12
+ create unless File.exist?(@path)
13
+
14
+ if File.exist?(@path)
15
+ @m = YAML::load_file(@path)
16
+ end
17
+
18
+ if @m.nil? || @m == false
19
+ @m = {}
20
+ end
21
+
22
+ if valid?(key, value)
23
+ # key = key.to_s Still not sure if I want to remove the ':' from the .yml file.
24
+ @m[key] = value
25
+ save
26
+ else
27
+ abort('You are trying to set invalid options.')
28
+ end
29
+ end
30
+
31
+ def self.get
32
+ return YAML::load_file(@path) if File.exist?(@path)
33
+ end
34
+
35
+ def self.save
36
+ if File.write(@path, @m.to_yaml)
37
+ true
38
+ else
39
+ false
40
+ end
41
+ end
42
+
43
+ protected
44
+
45
+ def self.create
46
+ path = "#{ENV['HOME']}/.hoot/"
47
+ Dir.mkdir(path) unless File.exists?(path)
48
+ File.new(@path, 'w')
49
+ end
50
+
51
+ def self.valid?(key, value)
52
+ return false unless keys.include?(key)
53
+ return true unless key == :device=
54
+ return false unless values.include?(value.to_sym)
55
+ end
56
+
57
+ def self.keys
58
+ [
59
+ :description,
60
+ :device
61
+ ]
62
+ end
63
+
64
+ def self.values
65
+ [
66
+ :server,
67
+ :laptop,
68
+ :desktop
69
+ ]
70
+ end
71
+
72
+ end
73
+ end
data/lib/hoot/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Hoot
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hoot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rudd Fawcett
@@ -97,6 +97,7 @@ files:
97
97
  - "./lib/hoot.rb"
98
98
  - "./lib/hoot/client.rb"
99
99
  - "./lib/hoot/keychain.rb"
100
+ - "./lib/hoot/metadata.rb"
100
101
  - "./lib/hoot/user.rb"
101
102
  - "./lib/hoot/version.rb"
102
103
  - bin/hoot