WinkerAI 0.0.04 → 0.0.05

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