lita-diabetter 0.1.0 → 0.1.1.alpha.17

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: 4e3c1688cc4ce71e78db95ec80cf72d413dcf601
4
- data.tar.gz: 62c267ae535becefaa53fb3a9926aae4985ff283
3
+ metadata.gz: 230eff95f038615c677b41e3ca4a45e0f3a4ddb9
4
+ data.tar.gz: 8581732f12db9a852071f0c81301f4e512d3e731
5
5
  SHA512:
6
- metadata.gz: 3655a1a4e471295883742c03f4176c99e0d372833dfd9dd62ae15e8853f077a5cf878b68fd904eea5440713439827010043ae200f96b69174d9b6f818deace20
7
- data.tar.gz: a01d70aa9626dc6998b61577c22794ea31887fabd2939ecb68e8f6aaab45289f723d8dab1fa13f0b4ce05099b43774eb2856c55d10bf9b534128dca733c0d712
6
+ metadata.gz: 1e26ff57212a4cf71ba61c684a6ee68809daa93337a0a1c6b8da84d0de140a5b35863ed0117b5f87378032f707acc8a99cf18b95640ed6c948d324f51445195d
7
+ data.tar.gz: 780ebb8f371b85abcda46d77435b0517eb1476c2cd3e01721ac5dc94b3f13f7297ccd9364126655d0c729251c7216e3d52297782d9e3965a080feb389414adb9
data/.gitignore CHANGED
@@ -1,18 +1,18 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
18
  .idea
data/.travis.yml CHANGED
@@ -1,15 +1,21 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.0.0
3
+ - 2.3.0
4
+ notifications:
5
+ email:
6
+ recipients:
7
+ - cas.eliens@gmail.com
8
+ on_success: change
9
+ on_failure: change
4
10
  script: bundle exec rake
5
11
  before_install:
6
- - gem update --system
12
+ - gem update --system
7
13
  services:
8
- - redis-server
14
+ - redis-server
9
15
  deploy:
10
16
  provider: rubygems
11
17
  api_key:
12
- secure: "WedxLnl2uWxoRPApA8+t3uwwLo/X09bQIFQuIZy1LDgaMsQD6LDaftAXm2//3IxxIy8leQTroSmNq+DRsnGutnZXITwaV79SEBBjmiDv+RriL8vAXiqBx5k1XrdZs0WMkeJZRrR3waWeh7tyKz9sGHKhPap7nOdCzCWPBDj+SvNAEjKkz3N5Zpw1WLYgzP1Ezs3lulT3nE5aiUlafs43JbpG1xyZ5QtGJA4l27mJirMwA04wCOSOF27ZnkOgu9bT3TY7w8BdN/iwI+zdKwZ8RJbbo3JDqdhB1ED7VOQ7U6FDT8OeGeLb+QVUtEimc7EHlrCV48+RjyKpMZ8mC/ZBQjqO3YRUlr7exT5COkoAXo2OwXzhyWZrx9LTmSDcHoJ5tXy2D48+z/t8uJC0JlDQhD5zlT/ncTqlKMddwxIQPITFMUkldkBowCDYX7wdkWA0HryI+cj9NMad2pmW6KRRRWhDbQmlLzpV5F+6y5NlfGdAzbgWo3MJ73inHihYtECnCC4qgYZK3lp0PCaL2XVjAeY4Di/bhgDJKFz7BeCY7TEic+kTC/E0vHGnv9IK6NJmYgHE6yi83gwVfU/G0QYcXLKvdU85YycYIvl9IR9kW8U2sSvyzg5GG+zilRH3Ri6ilR4F8dt4iIxD0msMtPxus5bGMqinipVGhEUcA3qoLJE="
13
- gem: lita-discord_oauth
18
+ secure: "xEC9fzPXl1/la7ONuPipqXpbOEpA3GhIm+Dc74OPl20+RbOjHGmhRWOQWi4DCX/zNnWFKnIPxp0NMT2mW28hqRZBaUPKj9jN3AnrJ6EgWOaaWkAkwhXBou16+5Xgz2U8K7TB/CFIv41avONQJxUUITEKF+6+7U25ixkbbPeMttMOSx4WrlJmSfR2bz3LyCdniK3EyD7wTGz6FWpPIjdV3ZApJDL+/0yFm6hrilsq3aMtnrdaGdQ+tQtSNlT/PhBtRYkQs+0WlkmHfUaS3EDHbGw9vI2NBmp7EoPnmKNbyHmHb6EyXa8X/oMFvhwVoaRE8Gw5jkJJthCDTsfuTUq7s90/URwtCPGBs+eP1FQROBnw55oH2lBzoZ98l3p/7+T3QHKlQRRjr3XP4FkyxF/hiOylBk6COWLfDQqijmmSWfgeGykyo4Vk8jvV820HpOa95GmrB+k1qPPgezJi9kC/8rIzKV0LhqlmNuGqtWTAFFPqnM4Lo7pCfw1tRxyITQ3xObr/xRLHcgKr6ZMg5SwgN/Qrc8FXD31c77kaVUQg4dJSUSo9OAwrKprqC0tvUprIknXoXTpfxaYUKr9yPSBdXUGgidZTjA6kHdo0VXt3kPJXlccN+YzLsRgmq+k2XXoDncLhYTAQN6KaCLCnGX/OCBKVhFUnALLp95djdH1gYQg="
19
+ gem: lita-diabetter
14
20
  on:
15
- all_branches: true
21
+ all_branches: true
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
data/README.md CHANGED
@@ -1,7 +1,10 @@
1
1
  # lita-diabetter
2
2
 
3
- [![Build Status](https://travis-ci.org/cascer1/lita-diabetter.png?branch=master)](https://travis-ci.org/cascer1/lita-diabetter)
4
- [![Coverage Status](https://coveralls.io/repos/cascer1/lita-diabetter/badge.png)](https://coveralls.io/r/cascer1/lita-diabetter)
3
+ [![Build Status][travis-img]][travis-url]
4
+ [![Gem Version][gem-img]][gem-url]
5
+ [![Gem Downloads][gem-dl-img]][gem-url]
6
+ [![Dependency status][gem-dep-img]][gem-dep-url]
7
+ [![Codacy Badge][codacy-img]][codacy-url]
5
8
 
6
9
  TODO: Add a description of the plugin.
7
10
 
@@ -20,3 +23,14 @@ TODO: Describe any configuration attributes the plugin exposes.
20
23
  ## Usage
21
24
 
22
25
  TODO: Describe the plugin's features and how to use them.
26
+
27
+
28
+ [travis-img]: https://img.shields.io/travis/cascer1/lita-diabetter.svg
29
+ [travis-url]: https://travis-ci.org/cascer1/lita-diabetter
30
+ [gem-img]: https://img.shields.io/gem/v/lita-diabetter.svg
31
+ [gem-url]: https://badge.fury.io/rb/lita-diabetter
32
+ [gem-dl-img]: https://img.shields.io/gem/dtv/lita-diabetter.svg
33
+ [gem-dep-img]: https://img.shields.io/gemnasium/cascer1/lita-diabetter.svg
34
+ [gem-dep-url]: https://gemnasium.com/github.com/cascer1/lita-diabetter
35
+ [codacy-img]: https://img.shields.io/codacy/grade/218ed88601a243ccae18e98e590b622d.svg
36
+ [codacy-url]: https://www.codacy.com/app/cascer1/lita-diabetter?utm_source=github.com&utm_medium=referral&utm_content=cascer1/lita-diabetter&utm_campaign=Badge_Grade
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
@@ -1,9 +1,126 @@
1
1
  module Lita
2
2
  module Handlers
3
3
  class Diabetter < Handler
4
- # insert handler code here
4
+ @@conversion_ratio = 18.0182
5
+ route(/(?:^|_)(\d{1,3}|\d{1,2}\.\d+)(?:$|_)/, :convert, command: false, help: {
6
+ '<number>' => 'Convert glucose between mass/molar concentration units.',
7
+ '_<number>_' => 'Convert glucose between mass/molar concentration units inline. E.g "I started at _125_ today"'
8
+ })
9
+
10
+ route(/estimate a1c(?: from average)?\s+(\d{1,3}|\d{1,2}\.\d+)$/i, :estimate_a1c, command: true, help: {
11
+ 'estimate a1c [from average] <glucose level>' => 'Estimates A1C based on average BG level'
12
+ })
13
+ route(/estimate average(?: from a1c)?\s+(\d{1,3}|\d{1,2}\.\d+)$/i, :estimate_average_from_a1c, command: true, help: {
14
+ 'estimate average [from a1c] <A1C>' => 'Estimates average blood glucose'
15
+ })
16
+
17
+ def convert(response)
18
+ if response.message.body.match(URI.regexp(%w(http https))).nil?
19
+ input = response.matches[0][0]
20
+ Lita.logger.debug('Converting BG for input "' + input + '"')
21
+ lower = 25.0
22
+ upper = 50.0
23
+
24
+
25
+ if input.to_f < lower
26
+ response.reply("#{input} mmol/L is #{mmol_to_mgdl(input).to_s} mg/dL")
27
+ elsif input.to_f >= lower && input.to_f < upper
28
+ mmol = mgdl_to_mmol(input).to_s
29
+ mgdl = mmol_to_mgdl(input).to_s
30
+
31
+ result = '*I\'m not sure if you gave me mmol/L or mg/dL, so I\'ll give you both.*\n'
32
+ result += "#{input} mg/dL is **#{mmol} mmol/L**\n"
33
+ result += "#{input} mmol/L is **#{mgdl} mg/dL**"
34
+
35
+ response.reply(result)
36
+ else
37
+ response.reply("#{input} mg/dL is #{mgdl_to_mmol(input).to_s} mmol/L")
38
+ end
39
+ end
40
+ end
41
+
42
+ def estimate_a1c(response)
43
+ input = response.matches[0][0]
44
+ Lita.logger.debug('Estimating a1c for input "' + input + '"')
45
+ mmol = 0
46
+ mgdl = 0
47
+
48
+ if input.index('.') == nil
49
+ mgdl = input.to_i
50
+ mmol = mgdl_to_mmol(mgdl)
51
+ else
52
+ mmol = input.to_f.round(1)
53
+ mgdl = mmol_to_mgdl(mmol)
54
+ end
55
+
56
+ dcct = mgdl_to_dcct(mgdl)
57
+ reply = 'an average of ' + mgdl.to_s + ' mg/dL or '
58
+ reply = reply + mmol.to_s + ' mmol/L'
59
+ reply = reply + ' is about '
60
+ reply = reply + dcct.round(1).to_s + '% (DCCT) or '
61
+ reply = reply + dcct_to_ifcc(dcct).round(0).to_s + ' mmol/mol (IFCC)'
62
+ response.reply(reply)
63
+ end
64
+
65
+ def estimate_average_from_a1c(response)
66
+ input = response.matches[0][0]
67
+ Lita.logger.debug('Converting a1c to BG for input "' + input + '"')
68
+ a1c = input.to_f
69
+ dcct = 0
70
+ ifcc = 0
71
+
72
+ if input.index('.') == nil
73
+ ifcc = a1c.round(0)
74
+ dcct = ifcc_to_dcct(a1c).round(1)
75
+ else
76
+ dcct = a1c.round(1)
77
+ ifcc = dcct_to_ifcc(a1c).round
78
+ end
79
+
80
+ mgdl = dcct_to_mgdl(dcct)
81
+
82
+ reply = 'an A1C of ' + dcct.to_s + '% (DCCT) or '
83
+ reply = reply + ifcc.to_s + ' mmol/mol (IFCC)'
84
+ reply = reply + ' is about '
85
+ reply = reply + mgdl.round.to_s + ' mg/dL or '
86
+ reply = reply + mgdl_to_mmol(mgdl).round(1).to_s + ' mmol/L'
87
+ response.reply(reply)
88
+ end
89
+
90
+ def mgdl_to_mmol(n)
91
+ (n.to_i / @@conversion_ratio).round(1)
92
+ end
93
+
94
+ def mmol_to_mgdl(n)
95
+ (n.to_f * @@conversion_ratio).round
96
+ end
97
+
98
+ def mgdl_to_dcct(n)
99
+ ((n.to_i + 46.7) / 28.7)
100
+ end
101
+
102
+ def mgdl_to_ifcc(n)
103
+ ((mgdl_to_dcct(n) - 2.15) * 10.929)
104
+ end
105
+
106
+ def dcct_to_ifcc(n)
107
+ (n.to_f - 2.15) * 10.929
108
+ end
109
+
110
+ def ifcc_to_dcct(n)
111
+ (n.to_f / 10.929) + 2.15
112
+ end
113
+
114
+ def dcct_to_mgdl(n)
115
+ (n.to_f * 28.7) - 46.7
116
+ end
117
+
118
+ def ifcc_to_mgdl(n)
119
+ dcct_to_mgdl((n / 10.929) + 2.5)
120
+ end
121
+
5
122
 
6
- Lita.register_handler(self)
7
123
  end
124
+ Lita.register_handler(Diabetter)
8
125
  end
9
126
  end
@@ -1,12 +1,12 @@
1
- require "lita"
1
+ require 'lita'
2
2
 
3
3
  Lita.load_locales Dir[File.expand_path(
4
- File.join("..", "..", "locales", "*.yml"), __FILE__
4
+ File.join('..', '..', 'locales', '*.yml'), __FILE__
5
5
  )]
6
6
 
7
- require "lita/handlers/diabetter"
7
+ require 'lita/handlers/diabetter'
8
8
 
9
9
  Lita::Handlers::Diabetter.template_root File.expand_path(
10
- File.join("..", "..", "templates"),
10
+ File.join('..', '..', 'templates'),
11
11
  __FILE__
12
12
  )
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'lita-diabetter'
3
- spec.version = '0.1.0'
3
+ spec.version = '0.1.1'
4
4
  spec.version = "#{spec.version}.alpha.#{ENV['TRAVIS_BUILD_NUMBER']}" if ENV['TRAVIS']
5
5
  spec.authors = ['Cas Eliëns']
6
6
  spec.email = ['cas.eliens@gmail.com']
@@ -15,13 +15,12 @@ Gem::Specification.new do |spec|
15
15
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
16
16
  spec.require_paths = ['lib']
17
17
 
18
- spec.add_runtime_dependency 'lita', '>= 4.7'
18
+ spec.add_runtime_dependency 'lita', '~> 4.7'
19
+ spec.required_ruby_version = '>= 2.0.0'
19
20
 
20
21
  spec.add_development_dependency 'bundler', '~> 1.3'
21
22
  spec.add_development_dependency 'pry-byebug'
22
- spec.add_development_dependency 'rake'
23
+ spec.add_development_dependency 'rake', '< 11.0'
23
24
  spec.add_development_dependency 'rack-test'
24
- spec.add_development_dependency 'rspec', '>= 3.0.0'
25
- spec.add_development_dependency 'simplecov'
26
- spec.add_development_dependency 'coveralls'
25
+ spec.add_development_dependency 'rspec', '~> 3.0.0'
27
26
  end
@@ -1,4 +1,4 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
3
  describe Lita::Handlers::Diabetter, lita_handler: true do
4
4
  end
data/spec/spec_helper.rb CHANGED
@@ -1,13 +1,13 @@
1
- require "simplecov"
2
- require "coveralls"
3
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
4
- SimpleCov::Formatter::HTMLFormatter,
5
- Coveralls::SimpleCov::Formatter
6
- ]
7
- SimpleCov.start { add_filter "/spec/" }
1
+ # require 'simplecov'
2
+ # require 'coveralls'
3
+ # SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
4
+ # SimpleCov::Formatter::HTMLFormatter,
5
+ # Coveralls::SimpleCov::Formatter
6
+ # ]
7
+ # SimpleCov.start { add_filter "/spec/" }
8
8
 
9
- require "lita-diabetter"
10
- require "lita/rspec"
9
+ require 'lita-diabetter'
10
+ require 'lita/rspec'
11
11
 
12
12
  # A compatibility mode is provided for older plugins upgrading from Lita 3. Since this plugin
13
13
  # was generated with Lita 4, the compatibility mode should be left disabled.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-diabetter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1.alpha.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cas Eliëns
@@ -14,14 +14,14 @@ dependencies:
14
14
  name: lita
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.7'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.7'
27
27
  - !ruby/object:Gem::Dependency
@@ -56,16 +56,16 @@ dependencies:
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "<"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '11.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "<"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '11.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rack-test
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -84,44 +84,16 @@ dependencies:
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: 3.0.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 3.0.0
97
- - !ruby/object:Gem::Dependency
98
- name: simplecov
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: coveralls
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
97
  description: A better diabetes handler for Lita
126
98
  email:
127
99
  - cas.eliens@gmail.com
@@ -154,15 +126,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
154
126
  requirements:
155
127
  - - ">="
156
128
  - !ruby/object:Gem::Version
157
- version: '0'
129
+ version: 2.0.0
158
130
  required_rubygems_version: !ruby/object:Gem::Requirement
159
131
  requirements:
160
- - - ">="
132
+ - - ">"
161
133
  - !ruby/object:Gem::Version
162
- version: '0'
134
+ version: 1.3.1
163
135
  requirements: []
164
136
  rubyforge_project:
165
- rubygems_version: 2.5.1
137
+ rubygems_version: 2.4.5
166
138
  signing_key:
167
139
  specification_version: 4
168
140
  summary: Provides diabetes-related commands like glucose value conversions