WinkerAI 0.0.04 → 0.0.05

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: fcf4fec6c49329180901003814754f211a61f549
4
- data.tar.gz: 054e095cbcff9ffd3692100c38f81c5176cb232d
3
+ metadata.gz: b84390c30f2bf9e3683c33f86b28f2a944c2b954
4
+ data.tar.gz: 76de921e222739c674545c228f0597a85ab9a55c
5
5
  SHA512:
6
- metadata.gz: c10b70331a85949ebdb559016f17ac02b8bbc209db67a0140306e68ffb11d6a8cd3024542c1de6682da5e904e4a33d0a6e30bf8bb412a811ca40af12241448f2
7
- data.tar.gz: 36dc3ea4b142df94dfe1243aed396f3504a7f881455f1cceda4e4eb1d8b9403616ccb294d974f2641a94d3cc3e5944f0813dfefa21caeded2f21ec7562deccb6
6
+ metadata.gz: 80795c17257b1b703e47ab271023cd2d95f02f2038a186c2708a807ada3239aeebe261f62434c6d2d6d92140c771d5a8aed134584997091e6a59ca32f500948e
7
+ data.tar.gz: ff1c9979267c006f60a58dab79cd1f5d1a29f01327b8786f91a0619609f0e35369194f5945ad846786e6765df38d5245caeabb82ee676499f553e6938c1f6ad9
@@ -25,6 +25,7 @@ module WinkerAI
25
25
  # }
26
26
 
27
27
  LIGHT_TRIGGERS = %w(dim raise lower shut turn)
28
+ EGG_TRIGGERS = %w(eggs)
28
29
 
29
30
  NUMBERS_MODIFIER = {
30
31
  "twenty" => 20,
@@ -66,21 +67,45 @@ module WinkerAI
66
67
  }
67
68
 
68
69
  LIGHT_TYPES = %w(light_bulb)
70
+ EGG_TYPES = %w(eggtray)
69
71
 
70
72
  def self.check_for_trigger(string)
71
73
  case string
72
74
  when /(#{LIGHT_TRIGGERS.join("|")}).*lights{0,1}/
73
75
  puts "handling lights"
74
76
  handle_lights(string)
77
+ when /(#{EGG_TRIGGERS.join("|")})/
78
+ puts "handling eggs"
79
+ handle_eggs(string)
75
80
  else
76
81
  #do nothing
77
82
  end
78
83
  end
79
84
 
85
+ def self.handle_eggs(string)
86
+ `osascript -e "set Volume 5"`
87
+ case string
88
+ when /eggs.*(going bad|close|soon)/
89
+ `say 'There are #{eggs.map(&:eggs_warning).flatten.count} eggs that are about to go bad.'`
90
+ when /eggs.*are (bad|past|expired)/
91
+ `say 'There are #{eggs.map(&:eggs_warning).flatten.count} eggs that are past the expiration date.'`
92
+ when /how many.*eggs/
93
+ `say 'There are #{eggs.sum(&:count)} eggs left.'`
94
+ when /eggs.*expire/
95
+ if days = eggs.map(&:days_left).sort.first
96
+ `say 'There are #{days} days left until your first egg expires.'`
97
+ else
98
+ `say 'There are no eggs left.'`
99
+ end
100
+ else
101
+ #do nothing didn't find the proper egg question
102
+ end
103
+ end
104
+
80
105
  def self.handle_lights(string)
81
106
  number = find_number(string)
82
107
  devices = $wink_groups.select{|d| string.match(/#{d.name}/i)}
83
- devices = $wink_devices.select{|d| string.match(/#{d.name}/i)} if devices.empty?
108
+ devices = lights.select{|d| string.match(/#{d.name}/i)} if devices.empty?
84
109
  case
85
110
  when number && string.match(/(#{LIGHT_TRIGGERS.join("|")})/) && !devices.empty?
86
111
  puts "case 1"
@@ -165,6 +190,10 @@ module WinkerAI
165
190
  $wink_devices.select{|d| LIGHT_TYPES.include?(d.type)}
166
191
  end
167
192
 
193
+ def self.eggs
194
+ $wink_devices.select{|d| EGG_TYPES.include?(d.type)}
195
+ end
196
+
168
197
  def self.setup
169
198
  Winker.configure do |wink|
170
199
  wink.client_id = ENV['WINK_CLIENT_ID']
@@ -1,3 +1,3 @@
1
1
  module WinkerAI
2
- VERSION = "0.0.04"
2
+ VERSION = "0.0.05"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: WinkerAI
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.04
4
+ version: 0.0.05
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kelly Mahan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-10 00:00:00.000000000 Z
11
+ date: 2015-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler