lita-spendo 0.3.0 → 0.4.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: bc4b4aeb89372358c7c9cf749bb1100460133b65
4
- data.tar.gz: f35e2fc01077fc05be824d154207c8bbe7bb710e
3
+ metadata.gz: e2bedaaf4a9503e10fe4eeaf27b86ad18f3f91fa
4
+ data.tar.gz: 4ab535ee09e7ee7024d6cd2e8e720b9bc00075a9
5
5
  SHA512:
6
- metadata.gz: a8f027a73e88ef7a89ae731e79e21c216e384c1c8d4ad51c93b6b63fdc74660afbe8a5f548e203531702392cf3d4d1642acb90f240bb75bb500194392bac5072
7
- data.tar.gz: 7079d9d39d5486cf7715a4bf32e0846239259319aa6f8f03745bc56fa7bbf7025af0741e99e34d861e75ed9751074d15b1a10db349a55e27079cbc668c86c5b9
6
+ metadata.gz: 94d54fa86def758243f2898c2aa4ced26103b5dfea46018ed72460220b425652bedda668beb48c1f2f72ee0bf9fa474638bf076ec0ca721e2677bc66c68f3567
7
+ data.tar.gz: 14aba49b5bb34ec4d1c7640e5363436067dca484cf80adc9e9d365b27bfb6cd52934b257619e2c0c4da4ea31bbc75320a3fe4cffff1754d36863c3576d9bb8e6
data/README.md CHANGED
@@ -21,13 +21,13 @@ Spendo relies on the aws-sdk gem so it requires an AWS account. The account requ
21
21
 
22
22
  ``` ruby
23
23
  {
24
- nickname: 'foo',
25
- aws_account_id: ENV['AWS_ACCOUNT_ID'],
26
- aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'],
27
- aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
28
- aws_region: 'us-east-1',
29
- room: 'shell', # or room JID or whatever
30
- dynamodb_table: 'BillingHistory'
24
+ 'nickname' => 'foo',
25
+ 'aws_account_id' => ENV['AWS_ACCOUNT_ID'],
26
+ 'aws_access_key_id' => ENV['AWS_ACCESS_KEY_ID'],
27
+ 'aws_secret_access_key' => ENV['AWS_SECRET_ACCESS_KEY'],
28
+ 'aws_region' => 'us-east-1',
29
+ 'room' => 'shell', # or room JID or whatever
30
+ 'dynamodb_table' => 'BillingHistory'
31
31
  }
32
32
  ```
33
33
 
@@ -7,11 +7,11 @@ module Lita
7
7
  attr_accessor :account, :table_name
8
8
 
9
9
  def initialize(params={})
10
- @aws_access_key_id = params[:aws_access_key_id]
11
- @aws_secret_access_key = params[:aws_secret_access_key]
12
- @aws_region = params[:aws_region]
13
- @account = params[:aws_account_id]
14
- @table_name = params[:dynamodb_table]
10
+ @aws_access_key_id = params['aws_access_key_id']
11
+ @aws_secret_access_key = params['aws_secret_access_key']
12
+ @aws_region = params['aws_region']
13
+ @account = params['aws_account_id']
14
+ @table_name = params['dynamodb_table']
15
15
  end
16
16
 
17
17
  def latest
@@ -39,12 +39,12 @@ module Lita
39
39
  # account to monitor.
40
40
  # config.accounts = [
41
41
  # {
42
- # :aws_account_id = 'foo',
43
- # :dynamodb_table = 'BillingHistory',
44
- # :room = 'shell',
45
- # :aws_access_key_id = 'foo',
46
- # :aws_secret_access_key = 'foo',
47
- # :nickname = 'foo'
42
+ # 'aws_account_id' => 'foo',
43
+ # 'dynamodb_table' => 'BillingHistory',
44
+ # 'room' => 'shell',
45
+ # 'aws_access_key_id' => 'foo',
46
+ # 'aws_secret_access_key' => 'foo',
47
+ # 'nickname' => 'foo'
48
48
  # }
49
49
  # ]
50
50
  config :accounts, type: Array
@@ -60,8 +60,8 @@ module Lita
60
60
  end
61
61
 
62
62
  def setup(account)
63
- if account[:room]
64
- robot.join account[:room]
63
+ if account['room']
64
+ robot.join account['room']
65
65
  end
66
66
 
67
67
  every(config.time_between_polls) do |timer|
@@ -79,19 +79,13 @@ module Lita
79
79
  end
80
80
 
81
81
  def create_client(account)
82
- params = {
83
- aws_account_id: account[:aws_account_id],
84
- aws_region: account[:aws_region],
85
- dynamodb_table: account[:dynamodb_table],
86
- aws_access_key_id: account[:aws_access_key_id],
87
- aws_secret_access_key: account[:aws_secret_access_key]
88
- }
82
+ params = account.dup
89
83
 
90
84
  BillingHistory.new(params)
91
85
  end
92
86
 
93
87
  def lookup_account(nickname)
94
- config.accounts.select {|a| a[:nickname] == nickname }.first
88
+ config.accounts.select {|a| a['nickname'] == nickname }.first
95
89
  end
96
90
 
97
91
  def create_message(account)
@@ -104,7 +98,7 @@ module Lita
104
98
  alert_level = data['AlertLevel'].to_i
105
99
  categorized_fees = data['FeesByCategory']
106
100
 
107
- message = "The current fees alert threshold has been reached.\n"
101
+ message = "/code The current fees alert threshold has been reached.\n"
108
102
  message << "\nAccount: #{account[:nickname]} #{account_id}"
109
103
  message << "\nCurrent fees: $#{current_fees}"
110
104
  message << "\nExpected monthly fees: $#{expected_fees}" # TODO
@@ -112,9 +106,11 @@ module Lita
112
106
  message << "\n\n Fee Category Breakdown\n\n"
113
107
 
114
108
  categorized_fees.keys.sort.each do |k|
109
+ category = k.strip.ljust(20)
115
110
  value = categorized_fees[k].to_f
116
111
  next if value == 0.0
117
- message << "#{k.ljust(20)}: $#{sprintf('%8.2f', value.round(2))}\n"
112
+ amount = sprintf('%8.2f', value.round(2))
113
+ message << "#{category}: $#{amount}\n"
118
114
  end
119
115
 
120
116
  url = config.base_image_url + "/#{alert_level}.jpg"
@@ -155,7 +151,7 @@ module Lita
155
151
 
156
152
  if last_data && alert_level_changed?(last_data, current_data)
157
153
  message, url = create_message account
158
- target = Source.new(room: account[:room])
154
+ target = Source.new(room: account['room'])
159
155
  robot.send_messages(target, message, url)
160
156
  else
161
157
  log.debug "alert level unchanged"
data/lita-spendo.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-spendo"
3
- spec.version = "0.3.0"
3
+ spec.version = "0.4.0"
4
4
  spec.authors = ["Chris Chalfant"]
5
5
  spec.email = ["cchalfant@leafsoftwaresolutions.com"]
6
6
  spec.description = "Lita handler for displaying AWS billing"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-spendo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Chalfant
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-18 00:00:00.000000000 Z
11
+ date: 2015-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita