hoot 0.2.0 → 0.3.0

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: 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