bcs-interrogator 0.0.2 → 0.0.6
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 +7 -0
- data/README.md +1 -6
- data/lib/brewery_control_system.rb +106 -0
- data/lib/brewery_control_system/api.rb +94 -0
- data/lib/brewery_control_system/api/3.7.0/bcs_sys.rb +158 -0
- data/lib/brewery_control_system/api/3.7.0/device_endpoint.rb +25 -0
- data/lib/brewery_control_system/api/3.7.0/endpoint.rb +48 -0
- data/lib/brewery_control_system/api/3.7.0/setpoints.rb +15 -0
- data/lib/brewery_control_system/api/3.7.0/sysname.rb +247 -0
- data/lib/brewery_control_system/api/3.7.0/temperature_probe_names_endpoint.rb +21 -0
- data/lib/brewery_control_system/api/3.7.0/temperature_probes_endpoint.rb +42 -0
- data/lib/brewery_control_system/api/3.7.0/temps.rb +15 -0
- data/lib/brewery_control_system/api/3.7.0/ultemp.rb +117 -0
- data/lib/brewery_control_system/api/device.rb +8 -0
- data/lib/brewery_control_system/api/server_version.rb +7 -0
- data/lib/brewery_control_system/api/version_check.rb +26 -0
- data/lib/brewery_control_system/http_service.rb +27 -0
- data/lib/brewery_control_system/http_service/user_agent.rb +33 -0
- data/lib/brewery_control_system/input.rb +4 -0
- data/lib/brewery_control_system/middleware.rb +5 -0
- data/lib/brewery_control_system/middleware/registration.rb +18 -0
- data/lib/brewery_control_system/output.rb +4 -0
- data/lib/brewery_control_system/temperature_probe.rb +4 -0
- data/lib/brewery_control_system/version.rb +6 -0
- data/spec/spec_helper.rb +6 -1
- metadata +48 -80
- data/lib/bcs_interrogator.rb +0 -36
- data/lib/bcs_interrogator/api.rb +0 -46
- data/lib/bcs_interrogator/api/endpoint.rb +0 -61
- data/lib/bcs_interrogator/api/response.rb +0 -38
- data/lib/bcs_interrogator/api/sysname.rb +0 -227
- data/lib/bcs_interrogator/api/ultemp.rb +0 -110
- data/lib/bcs_interrogator/entity.rb +0 -43
- data/lib/bcs_interrogator/version.rb +0 -6
- data/spec/cases/api_spec.rb +0 -33
- data/spec/cases/bcs_interrogator_spec.rb +0 -4
@@ -0,0 +1,26 @@
|
|
1
|
+
class NRB::BreweryControlSystem::API
|
2
|
+
class VersionCheck < Faraday::Response::Middleware
|
3
|
+
|
4
|
+
extend NRB::BreweryControlSystem::Middleware::Registration
|
5
|
+
include NRB::BreweryControlSystem::API::ServerVersion
|
6
|
+
|
7
|
+
attr_reader :required_version
|
8
|
+
|
9
|
+
def initialize(app=nil,version=nil)
|
10
|
+
raise ArgumentError.new("Must supply an api version to compare against") if version.nil?
|
11
|
+
super app
|
12
|
+
@required_version = version
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
def on_complete(env)
|
17
|
+
remote_version = server_version env[:response_headers]
|
18
|
+
if remote_version != required_version
|
19
|
+
warn "BCS Firmware version (#{remote_version}) does not match API version (#{required_version})."
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
register_middleware
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'faraday-http-cache'
|
2
|
+
class NRB::BreweryControlSystem
|
3
|
+
class HTTPService
|
4
|
+
|
5
|
+
autoload :UserAgent, 'brewery_control_system/http_service/user_agent'
|
6
|
+
|
7
|
+
class << self
|
8
|
+
|
9
|
+
attr_writer :default_adapter
|
10
|
+
|
11
|
+
def default_adapter; @default_adapter ||= Faraday.default_adapter; end
|
12
|
+
|
13
|
+
|
14
|
+
def default_service(cache_store: nil, options: nil, url: nil, &block)
|
15
|
+
Faraday.new url, options do |b|
|
16
|
+
b.use :http_cache, store: cache_store
|
17
|
+
# b.response :raise_error
|
18
|
+
yield b if block_given?
|
19
|
+
b.use UserAgent
|
20
|
+
b.adapter default_adapter
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module NRB; class BreweryControlSystem
|
2
|
+
class HTTPService::UserAgent
|
3
|
+
|
4
|
+
NAME = 'BCS Interrogator'.freeze
|
5
|
+
URL = 'https://github.com/NewRepublicBrewing/BCS-Interrogator'.freeze
|
6
|
+
|
7
|
+
|
8
|
+
def agent
|
9
|
+
@agent ||= "#{name} #{version} (#{url})".freeze
|
10
|
+
end
|
11
|
+
|
12
|
+
|
13
|
+
def call(env)
|
14
|
+
env[:request_headers]["User-Agent"] = agent
|
15
|
+
@app.call(env).on_complete { }
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
def initialize(app)
|
20
|
+
@app = app
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
def name; NAME; end
|
25
|
+
|
26
|
+
|
27
|
+
def url; URL; end
|
28
|
+
|
29
|
+
|
30
|
+
def version; NRB::BreweryControlSystem.version; end
|
31
|
+
|
32
|
+
end
|
33
|
+
end; end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module NRB::BreweryControlSystem::Middleware
|
2
|
+
module Registration
|
3
|
+
|
4
|
+
def register_middleware(*args)
|
5
|
+
if Faraday::Response.respond_to? :register_middleware
|
6
|
+
if args.empty?
|
7
|
+
Faraday::Response.register_middleware self => self
|
8
|
+
else
|
9
|
+
Faraday::Response.register_middleware *args
|
10
|
+
end
|
11
|
+
else
|
12
|
+
warn "Can't register #{self.class.name} as middleware"
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,112 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bcs-interrogator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.6
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Dean Brundage
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-10-31 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
name: faraday
|
14
|
+
name: faraday-http-cache
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: '0
|
19
|
+
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '0
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: NRB_http_service
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ~>
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '0.0'
|
38
|
-
type: :runtime
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '0.0'
|
26
|
+
version: '0'
|
46
27
|
- !ruby/object:Gem::Dependency
|
47
28
|
name: guard-rspec
|
48
29
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
30
|
requirements:
|
51
|
-
- -
|
31
|
+
- - '>='
|
52
32
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
33
|
+
version: '0'
|
54
34
|
type: :development
|
55
35
|
prerelease: false
|
56
36
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
37
|
requirements:
|
59
|
-
- -
|
38
|
+
- - '>='
|
60
39
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
40
|
+
version: '0'
|
62
41
|
- !ruby/object:Gem::Dependency
|
63
42
|
name: rake
|
64
43
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
44
|
requirements:
|
67
|
-
- -
|
45
|
+
- - '>='
|
68
46
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
47
|
+
version: '0'
|
70
48
|
type: :development
|
71
49
|
prerelease: false
|
72
50
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
51
|
requirements:
|
75
|
-
- -
|
52
|
+
- - '>='
|
76
53
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
54
|
+
version: '0'
|
78
55
|
- !ruby/object:Gem::Dependency
|
79
56
|
name: rspec
|
80
57
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ~>
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: '2.0'
|
86
|
-
type: :development
|
87
|
-
prerelease: false
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ~>
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '2.0'
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: rb-inotify
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
58
|
requirements:
|
99
|
-
- -
|
59
|
+
- - '>='
|
100
60
|
- !ruby/object:Gem::Version
|
101
|
-
version: '0
|
61
|
+
version: '0'
|
102
62
|
type: :development
|
103
63
|
prerelease: false
|
104
64
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
65
|
requirements:
|
107
|
-
- -
|
66
|
+
- - '>='
|
108
67
|
- !ruby/object:Gem::Version
|
109
|
-
version: '0
|
68
|
+
version: '0'
|
110
69
|
description: Embedded Control Concepts Brewery Control System interrogator
|
111
70
|
email:
|
112
71
|
- dean@newrepublicbrewing.com
|
@@ -116,43 +75,52 @@ extra_rdoc_files: []
|
|
116
75
|
files:
|
117
76
|
- LICENSE
|
118
77
|
- README.md
|
119
|
-
- lib/
|
120
|
-
- lib/
|
121
|
-
- lib/
|
122
|
-
- lib/
|
123
|
-
- lib/
|
124
|
-
- lib/
|
125
|
-
- lib/
|
126
|
-
- lib/
|
78
|
+
- lib/brewery_control_system.rb
|
79
|
+
- lib/brewery_control_system/api.rb
|
80
|
+
- lib/brewery_control_system/api/3.7.0/bcs_sys.rb
|
81
|
+
- lib/brewery_control_system/api/3.7.0/device_endpoint.rb
|
82
|
+
- lib/brewery_control_system/api/3.7.0/endpoint.rb
|
83
|
+
- lib/brewery_control_system/api/3.7.0/setpoints.rb
|
84
|
+
- lib/brewery_control_system/api/3.7.0/sysname.rb
|
85
|
+
- lib/brewery_control_system/api/3.7.0/temperature_probe_names_endpoint.rb
|
86
|
+
- lib/brewery_control_system/api/3.7.0/temperature_probes_endpoint.rb
|
87
|
+
- lib/brewery_control_system/api/3.7.0/temps.rb
|
88
|
+
- lib/brewery_control_system/api/3.7.0/ultemp.rb
|
89
|
+
- lib/brewery_control_system/api/device.rb
|
90
|
+
- lib/brewery_control_system/api/server_version.rb
|
91
|
+
- lib/brewery_control_system/api/version_check.rb
|
92
|
+
- lib/brewery_control_system/http_service.rb
|
93
|
+
- lib/brewery_control_system/http_service/user_agent.rb
|
94
|
+
- lib/brewery_control_system/input.rb
|
95
|
+
- lib/brewery_control_system/middleware.rb
|
96
|
+
- lib/brewery_control_system/middleware/registration.rb
|
97
|
+
- lib/brewery_control_system/output.rb
|
98
|
+
- lib/brewery_control_system/temperature_probe.rb
|
99
|
+
- lib/brewery_control_system/version.rb
|
127
100
|
- spec/spec_helper.rb
|
128
|
-
- spec/cases/api_spec.rb
|
129
|
-
- spec/cases/bcs_interrogator_spec.rb
|
130
101
|
homepage: https://github.com/NewRepublicBrewing/BCS-Interrogator
|
131
|
-
licenses:
|
102
|
+
licenses:
|
103
|
+
- GPL-3
|
104
|
+
metadata: {}
|
132
105
|
post_install_message:
|
133
106
|
rdoc_options: []
|
134
107
|
require_paths:
|
135
108
|
- lib
|
136
109
|
required_ruby_version: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
110
|
requirements:
|
139
|
-
- -
|
111
|
+
- - '>='
|
140
112
|
- !ruby/object:Gem::Version
|
141
113
|
version: '0'
|
142
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
143
|
-
none: false
|
144
115
|
requirements:
|
145
|
-
- -
|
116
|
+
- - '>='
|
146
117
|
- !ruby/object:Gem::Version
|
147
118
|
version: '0'
|
148
119
|
requirements: []
|
149
120
|
rubyforge_project: bcs-interrogator
|
150
|
-
rubygems_version:
|
121
|
+
rubygems_version: 2.0.14
|
151
122
|
signing_key:
|
152
|
-
specification_version:
|
123
|
+
specification_version: 4
|
153
124
|
summary: A gem to intorrogate EEC Brewery Control Systems
|
154
125
|
test_files:
|
155
126
|
- spec/spec_helper.rb
|
156
|
-
- spec/cases/api_spec.rb
|
157
|
-
- spec/cases/bcs_interrogator_spec.rb
|
158
|
-
has_rdoc:
|
data/lib/bcs_interrogator.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
gem 'NRB_http_service'
|
2
|
-
|
3
|
-
module NRB
|
4
|
-
|
5
|
-
autoload :HTTPService, 'NRB_http_service'
|
6
|
-
|
7
|
-
class BCSInterrogator
|
8
|
-
|
9
|
-
autoload :API, 'bcs_interrogator/api'
|
10
|
-
autoload :Entity, 'bcs_interrogator/entity'
|
11
|
-
|
12
|
-
attr_reader :api, :last_update
|
13
|
-
|
14
|
-
def initialize(args={})
|
15
|
-
@api = API.new base_url: args[:base_url]
|
16
|
-
end
|
17
|
-
|
18
|
-
def input_names; api.sysname.input_names; end
|
19
|
-
def inputs; api.ultemp.outputs; end
|
20
|
-
def output_names; api.sysname.output_names; end
|
21
|
-
def outputs; api.ultemp.outputs; end
|
22
|
-
def temp_probe_names; api.sysname.temp_probe_names; end
|
23
|
-
def temps; api.ultemp.temps; end
|
24
|
-
def setpoints; api.ultemp.setpoints; end
|
25
|
-
|
26
|
-
def update(args={})
|
27
|
-
api.ultemp.api_call
|
28
|
-
if args[:deep]
|
29
|
-
api.sysname.api_call
|
30
|
-
end
|
31
|
-
@last_update = Time.now
|
32
|
-
true
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
end
|
data/lib/bcs_interrogator/api.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
module NRB
|
2
|
-
class BCSInterrogator
|
3
|
-
class API
|
4
|
-
|
5
|
-
autoload :Endpoint, 'bcs_interrogator/api/endpoint'
|
6
|
-
autoload :Response, 'bcs_interrogator/api/response'
|
7
|
-
autoload :Sysname, 'bcs_interrogator/api/sysname'
|
8
|
-
autoload :Ultemp, 'bcs_interrogator/api/ultemp'
|
9
|
-
|
10
|
-
API_VERSION = 'BCS 3.7.0' # Use NRB::BCSInterrogator::API.api_version instead
|
11
|
-
|
12
|
-
def self.api_version; API_VERSION; end
|
13
|
-
|
14
|
-
|
15
|
-
attr_reader :http_service, :base_url
|
16
|
-
|
17
|
-
def api_call(args,connection_opts={})
|
18
|
-
args[:response_class] ||= NRB::BCSInterrogator::API::Response
|
19
|
-
response = @http_service.new(args,connection_opts).make_request
|
20
|
-
if response.server_version &&
|
21
|
-
response.server_version != self.class.api_version
|
22
|
-
warn "Firmware version (#{response.server_version}) does not match API version (#{self.class.api_version})."
|
23
|
-
end
|
24
|
-
response
|
25
|
-
end
|
26
|
-
|
27
|
-
|
28
|
-
def initialize(args={})
|
29
|
-
@base_url = args.delete(:base_url)
|
30
|
-
raise ArgumentError.new("Please supply a :base_url") unless @base_url
|
31
|
-
@http_service = args.delete(:http_service) || NRB::HTTPService
|
32
|
-
end
|
33
|
-
|
34
|
-
|
35
|
-
def sysname; @sysname ||= Sysname.new api: self; end
|
36
|
-
def ultemp; @ultemp ||= Ultemp.new api: self; end
|
37
|
-
|
38
|
-
private
|
39
|
-
|
40
|
-
def endpoint_base
|
41
|
-
@base_url
|
42
|
-
end
|
43
|
-
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|