brewer-stats 0.1.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 25d17bfe408bbc733e8bcbc6f43aa9f282688042
4
+ data.tar.gz: 3cf61e759c9ed22f7dadd63c927e4bf49c9c0d10
5
+ SHA512:
6
+ metadata.gz: 2ed76d58b1d055db714b58366953b4f94823afcf679ab58aae9a9be683fc3ef148bda2eb35c1f38f379c73dbe4a428df424ac790253c85a652c2e478887474eb
7
+ data.tar.gz: abea3d8cceff3a40d0f5e3749d777575188b37f41e236ea5407cdeae26e2a80608c391fda7d789829f2628309e30cffaf457e9b8c132d8f7d8f7999fd3f83980
data/.gitignore ADDED
@@ -0,0 +1,12 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+
11
+ # rspec failure tracking
12
+ .rspec_status
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.4.0
5
+ before_install: gem install bundler -v 1.14.6
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in brewer-stats.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,33 @@
1
+ # Brewer::Stats
2
+
3
+ This gem gathers statistics from [brewer](http://github.com/llamicron/brewer)
4
+
5
+ ## Installation
6
+
7
+ This gem should only be used as a dependency
8
+
9
+ Add this to your applications `Gemfile`:
10
+
11
+ ```ruby
12
+ gem 'brewer-stats'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ ```
18
+ $ bundle
19
+ ```
20
+
21
+ Or install it yourself as:
22
+
23
+ ```
24
+ $ gem install brewer-stats
25
+ ```
26
+
27
+ ## Usage
28
+
29
+ This gem should only be used as a dependency. Please see [brewer](http://github.com/llamicron/brewer).
30
+
31
+ ## License
32
+
33
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,22 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
7
+
8
+ task :console do
9
+ require 'pry'
10
+ require_relative 'lib/brewer/stats'
11
+
12
+ def reload!
13
+ files = $LOADED_FEATURES.select { |feat| feat =~ /\/brewer\// }
14
+ files.each { |file| load file }
15
+ end
16
+
17
+ @logger = Brewer::Stats::Logger.new
18
+ @form = Brewer::Stats::Formatter.new
19
+
20
+ ARGV.clear
21
+ Pry.start
22
+ end
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'brewer/stats/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "brewer-stats"
8
+ spec.version = Brewer::Stats::VERSION
9
+ spec.authors = ["Luke Sweeney"]
10
+ spec.email = ["luke@thesweeneys.org"]
11
+
12
+ spec.summary = %q{statistics tracker for llamicron/brewer}
13
+ spec.homepage = "http://github.com/llamicron/brewer-stats"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
+ f.match(%r{^(test|spec|features)/})
18
+ end
19
+ spec.bindir = "exe"
20
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ spec.require_paths = ["lib"]
22
+
23
+ spec.add_runtime_dependency "brewer", "~> 0.0.98"
24
+
25
+ spec.add_development_dependency "bundler", "~> 1.14"
26
+ spec.add_development_dependency "simplecov"
27
+ spec.add_development_dependency "rake", "~> 10.0"
28
+ spec.add_development_dependency "rspec", "~> 3.0"
29
+ end
@@ -0,0 +1,21 @@
1
+ module Brewer
2
+ module Stats
3
+ class Formatter
4
+
5
+ attr_accessor :log_contents
6
+
7
+ def initialize
8
+ @log_contents = {}
9
+ end
10
+
11
+ def get_log_contents
12
+ @log_contents = YAML.load(File.open($log_file))
13
+ end
14
+
15
+ def self.json
16
+ Formatter.new.get_log_contents.to_json
17
+ end
18
+
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,57 @@
1
+ module Brewer
2
+ module Stats
3
+ class Logger
4
+
5
+ attr_reader :controller, :stats_dir
6
+ attr_accessor :state
7
+
8
+ def initialize
9
+ @controller = Brewer::Controller.new
10
+ @state = {}
11
+
12
+ create_stats_directory
13
+ create_log_file
14
+ end
15
+
16
+ # :nocov:
17
+ def log(interval: 15)
18
+ while true do
19
+ capture_snapshot
20
+ store
21
+ sleep(interval)
22
+ end
23
+ end
24
+ # :nocov:
25
+
26
+ def capture_snapshot
27
+ @state['pv'] = @controller.pv
28
+ @state
29
+ end
30
+
31
+ def store
32
+ store = YAML::Store.new $log_file
33
+ store.transaction {
34
+ @state.each do |k, v|
35
+ store[Time.now.to_i] = {k => v}
36
+ end
37
+ }
38
+ end
39
+
40
+ def create_stats_directory
41
+ Dir.mkdir($stats_dir) unless File.exists?($stats_dir)
42
+ true
43
+ end
44
+
45
+ def create_log_file
46
+ File.open($log_file, 'w') unless File.exists?($log_file)
47
+ true
48
+ end
49
+
50
+ def clear_log_file
51
+ File.open($log_file, 'w') {|file| file.truncate(0) }
52
+ true
53
+ end
54
+
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,5 @@
1
+ module Brewer
2
+ module Stats
3
+ VERSION = "0.1.1"
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ require "brewer/stats/version"
2
+ require "brewer/stats/logger"
3
+ require "brewer/stats/formatter"
4
+ require "brewer"
5
+
6
+ module Brewer
7
+ module Stats
8
+ $stats_dir = Dir.home + "/.brewer/stats/"
9
+ $log_file = $stats_dir + "log.yml"
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,125 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: brewer-stats
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Luke Sweeney
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-05-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: brewer
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.0.98
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.0.98
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.14'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.14'
41
+ - !ruby/object:Gem::Dependency
42
+ name: simplecov
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
83
+ description:
84
+ email:
85
+ - luke@thesweeneys.org
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - ".gitignore"
91
+ - ".rspec"
92
+ - ".travis.yml"
93
+ - Gemfile
94
+ - README.md
95
+ - Rakefile
96
+ - brewer-stats.gemspec
97
+ - lib/brewer/stats.rb
98
+ - lib/brewer/stats/formatter.rb
99
+ - lib/brewer/stats/logger.rb
100
+ - lib/brewer/stats/version.rb
101
+ homepage: http://github.com/llamicron/brewer-stats
102
+ licenses:
103
+ - MIT
104
+ metadata: {}
105
+ post_install_message:
106
+ rdoc_options: []
107
+ require_paths:
108
+ - lib
109
+ required_ruby_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ requirements: []
120
+ rubyforge_project:
121
+ rubygems_version: 2.6.12
122
+ signing_key:
123
+ specification_version: 4
124
+ summary: statistics tracker for llamicron/brewer
125
+ test_files: []