temperature_converter_jonasd 1.0 → 1.2

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: 4e3be8a4774f6978861e599d016b4d00c51ca5d0
4
- data.tar.gz: f2942a38f57187abd29f08f888a5cb809a6ee926
3
+ metadata.gz: 59343ad48b2012d808064d62dcb1e07a9cfe0afa
4
+ data.tar.gz: 89a442c3a4486660157421f7df65ba397dfa1a88
5
5
  SHA512:
6
- metadata.gz: 54257748e4adceb8e5e45672e941a56397b37f9f219d2e2eef436f1ad8e9b72e055e0a9b2ebf70f495259ea3d67921d7f017dc14316b5dfd30d9ea8c664f3be1
7
- data.tar.gz: c9a47bf34e6a4a481691245c5663af0933dc499c2c1c6862cde945f6ce6c448777b3871e1ba5777397e34451907a547e62ca226d4afaa24144ab142e9819f471
6
+ metadata.gz: 861aaecbcad072bb57a7541a23259530a455b374e99ef5a7da806da2c8009e71e08050613358aec2a70a3fa50d10eae96df84f3a8b0e3174c02705bbb116d68a
7
+ data.tar.gz: 8d771250d826fa6ac81c6763a6227f2cfbfb4f4330faa4b21023c88d4f9b186b97e343b5752c37b080299fa6dadf54932c7a5962180b52e3e8514966c6937a19
@@ -0,0 +1,14 @@
1
+
2
+ class CommandlineReader
3
+
4
+ attr_reader :temperature
5
+
6
+ def initialize temperature
7
+ $temperature = temperature
8
+ end
9
+
10
+ def read
11
+ $temperature
12
+ end
13
+
14
+ end
@@ -0,0 +1,15 @@
1
+
2
+ class FileReader
3
+
4
+ attr_reader :temperature
5
+
6
+ def initialize
7
+ $temperature
8
+ end
9
+
10
+ def read file
11
+ $temperature = File.open(file).read
12
+ #puts $temperature
13
+ end
14
+
15
+ end
@@ -0,0 +1,23 @@
1
+ require 'rubygems'
2
+ require 'mqtt'
3
+ require 'json'
4
+
5
+ class MQTTReader
6
+
7
+ attr_reader :temperature
8
+
9
+ def read (ttn_host, port, username, password, sensor_id)
10
+ MQTT::Client.connect(
11
+ :host => ttn_host,
12
+ :port => port,
13
+ :username => username,
14
+ :password => password) do |c|
15
+ c.get(sensor_id) do |topic,message|
16
+ obj = JSON.parse("#{message}")
17
+ $temperature = obj['fields']['temperature']
18
+ #Only listen until temperature is printed once
19
+ break if message[0,1] != nil
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,16 @@
1
+ require "temperature"
2
+
3
+ class PrintHtml
4
+
5
+ attr_reader :temperature
6
+
7
+ def print
8
+ htemperature = Temperature.new
9
+ puts "<div>"
10
+ puts "<div>"+htemperature.celsius.to_s + " °C"+"</div>"
11
+ puts "<div>"+htemperature.to_fahrenheit.to_s + " °F"+"</div>"
12
+ puts "<div>"+htemperature.to_kelvin.to_s + " K"+"</div>"
13
+ puts "</div>"
14
+ end
15
+
16
+ end
@@ -0,0 +1,15 @@
1
+ require 'json'
2
+ require "temperature"
3
+
4
+ class PrintJson
5
+
6
+ attr_reader :temperature
7
+
8
+ def print
9
+ jtemperature = Temperature.new
10
+ json_temperature = {:Celsius => jtemperature.celsius.to_s, :Fahrenheit => jtemperature.to_fahrenheit.to_s, :Kelvin => jtemperature.to_kelvin.to_s}
11
+ puts JSON.pretty_generate(json_temperature)
12
+
13
+ end
14
+
15
+ end
@@ -0,0 +1,14 @@
1
+ require "temperature"
2
+
3
+ class PrintText
4
+
5
+ attr_reader :temperature
6
+
7
+ def print
8
+ ttemperature = Temperature.new
9
+ puts "Gegeven: " + ttemperature.celsius.to_s + " °C"
10
+ puts ttemperature.celsius.to_s + " °C = " + ttemperature.to_fahrenheit.to_s + " °F"
11
+ puts ttemperature.celsius.to_s + " °C = " + ttemperature.to_kelvin.to_s + " K"
12
+ end
13
+
14
+ end
@@ -0,0 +1,23 @@
1
+ #Temperature bijhouden en converteren
2
+
3
+ class Temperature
4
+
5
+ KELVIN = 273.15
6
+ FAHRENHEIT_OFFSET = 32
7
+ FAHRENHEIT_SLOPE = Rational(9,5)
8
+
9
+ attr_reader :temperature
10
+
11
+ def celsius
12
+ $temperature.to_f
13
+ end
14
+
15
+ def to_fahrenheit
16
+ ($temperature.to_f * FAHRENHEIT_SLOPE) + FAHRENHEIT_OFFSET
17
+ end
18
+
19
+ def to_kelvin
20
+ $temperature.to_f + KELVIN
21
+ end
22
+
23
+ end
@@ -0,0 +1,51 @@
1
+ require "temperature"
2
+ require "print_json"
3
+ require "print_html"
4
+ require "print_text"
5
+ require "url_reader"
6
+ require "file_reader"
7
+ require "commandline_reader"
8
+ require "mqtt_reader"
9
+
10
+ #Behouden als link tussen app die niet veranderd is en nieuwe temperature en andere single purpose classes
11
+
12
+ class TemperatureConverter
13
+
14
+ #Methoden behouden maar laten linken naar nieuwe single purpose classes.
15
+
16
+ def commandline_temperature argument
17
+ cmdreader = CommandlineReader.new argument
18
+ cmdreader.read
19
+ end
20
+
21
+ def file_temperature file
22
+ freader = FileReader.new
23
+ freader.read(file)
24
+ end
25
+
26
+ def url_temperature url
27
+ ureader = URLReader.new
28
+ ureader.read(url)
29
+ end
30
+
31
+ def mqtt_reader(ttn_host, port, username, password, sensor_id)
32
+ mreader = MQTTReader.new
33
+ mreader.read(ttn_host, port, username, password, sensor_id)
34
+ end
35
+
36
+ def to_text
37
+ tprint = PrintText.new
38
+ tprint.print
39
+ end
40
+
41
+ def to_json
42
+ jprint = PrintJson.new
43
+ jprint.print
44
+ end
45
+
46
+ def to_html
47
+ hprint = PrintHtml.new
48
+ hprint.print
49
+ end
50
+
51
+ end
@@ -1,9 +1,9 @@
1
- require "./lib/temperature"
2
- require "./lib/print_json"
3
- require "./lib/print_html"
4
- require "./lib/print_text"
5
- require "./lib/url_reader"
6
- require "./lib/file_reader"
7
- require "./lib/commandline_reader"
8
- require "./lib/mqtt_reader"
9
- require "./lib/temperature_converter"
1
+ require "temperature"
2
+ require "print_json"
3
+ require "print_html"
4
+ require "print_text"
5
+ require "url_reader"
6
+ require "file_reader"
7
+ require "commandline_reader"
8
+ require "mqtt_reader"
9
+ require "temperature_converter"
@@ -0,0 +1,17 @@
1
+ require 'net/http'
2
+ require 'uri'
3
+
4
+ class URLReader
5
+
6
+ attr_reader :temperature
7
+
8
+ def initialize
9
+ $temperature
10
+ end
11
+
12
+ def read url
13
+ $temperature = Net::HTTP.get(URI.parse(url))
14
+ #puts @temperature
15
+ end
16
+
17
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: temperature_converter_jonasd
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.0'
4
+ version: '1.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonas Demeulemeester
@@ -19,7 +19,16 @@ extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
21
  - bin/temp-conv
22
+ - lib/commandline_reader.rb
23
+ - lib/file_reader.rb
24
+ - lib/mqtt_reader.rb
25
+ - lib/print_html.rb
26
+ - lib/print_json.rb
27
+ - lib/print_text.rb
28
+ - lib/temperature.rb
29
+ - lib/temperature_converter.rb
22
30
  - lib/temperature_converter_jonasd.rb
31
+ - lib/url_reader.rb
23
32
  homepage: https://github.com/Spherehunt/temperature_converter
24
33
  licenses:
25
34
  - MIT