brewer 0.0.2 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +13 -1
- data/Gemfile.lock +18 -29
- data/README.md +52 -9
- data/Rakefile +7 -4
- data/bin/brewer +8 -11
- data/brewer.gemspec +5 -16
- data/lib/adaptibrew.rb +4 -3
- data/lib/brewer.rb +16 -9
- data/lib/helpers.rb +6 -0
- data/tests/tc_adaptibrew.rb +26 -0
- data/tests/tc_brewer.rb +41 -0
- data/tests/tc_helpers.rb +43 -0
- data/tests/ts_all.rb +15 -0
- metadata +11 -153
- data/spec/adaptibrew_spec.rb +0 -71
- data/spec/brewer_spec.rb +0 -46
- data/spec/helpers_spec.rb +0 -36
- data/spec/spec_helper.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d88daa2b05ae2cddb6d24b618a3103d1e8a502d
|
4
|
+
data.tar.gz: 86e1736c126211cb33f1643ae149fba026eeead9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 026b2f1f15012d2112c486ecfdcf55ffc4346e6232aacef812d2023bca16e20059bab4d9cb83961272ede937d77210705daafe3cb296d3cd0e524505006b4921
|
7
|
+
data.tar.gz: aaf7bd2e189b348bda211f0327afee9911f8ff7152f5c962a3aba259435f2ebcc0938bc0bacdd313d79566d87b6348196ddfcf183fcc469f53e30c2893568bd2
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,57 +1,46 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
brewer (0.0.10)
|
5
|
-
git (~> 1.3, >= 1.3.0)
|
6
|
-
ripl (~> 0.7.0)
|
7
|
-
|
8
1
|
GEM
|
9
2
|
remote: https://rubygems.org/
|
10
3
|
specs:
|
11
4
|
addressable (2.5.0)
|
12
5
|
public_suffix (~> 2.0, >= 2.0.2)
|
13
6
|
bond (0.5.1)
|
14
|
-
diff-lcs (1.2.5)
|
15
7
|
docile (1.1.5)
|
16
8
|
git (1.3.0)
|
17
9
|
json (2.0.3)
|
18
10
|
launchy (2.4.3)
|
19
11
|
addressable (~> 2.3)
|
12
|
+
power_assert (0.2.2)
|
20
13
|
public_suffix (2.0.4)
|
21
14
|
rake (12.0.0)
|
22
|
-
rdoc (
|
15
|
+
rdoc (4.2.0)
|
23
16
|
ripl (0.7.1)
|
24
17
|
bond (~> 0.5.1)
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
rspec-core (3.5.4)
|
30
|
-
rspec-support (~> 3.5.0)
|
31
|
-
rspec-expectations (3.5.0)
|
32
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
33
|
-
rspec-support (~> 3.5.0)
|
34
|
-
rspec-mocks (3.5.0)
|
35
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
36
|
-
rspec-support (~> 3.5.0)
|
37
|
-
rspec-support (3.5.0)
|
18
|
+
ripl-multi_line (0.3.1)
|
19
|
+
ripl (>= 0.3.6)
|
20
|
+
ripl-play (0.2.1)
|
21
|
+
ripl (>= 0.3.0)
|
38
22
|
simplecov (0.13.0)
|
39
23
|
docile (~> 1.1.0)
|
40
24
|
json (>= 1.8, < 3)
|
41
25
|
simplecov-html (~> 0.10.0)
|
42
26
|
simplecov-html (0.10.0)
|
27
|
+
test-unit (3.0.8)
|
28
|
+
power_assert
|
43
29
|
|
44
30
|
PLATFORMS
|
45
31
|
ruby
|
46
32
|
|
47
33
|
DEPENDENCIES
|
48
|
-
|
49
|
-
launchy
|
50
|
-
rake
|
51
|
-
rdoc
|
52
|
-
|
53
|
-
|
54
|
-
|
34
|
+
git
|
35
|
+
launchy
|
36
|
+
rake
|
37
|
+
rdoc
|
38
|
+
ripl
|
39
|
+
ripl-multi_line
|
40
|
+
ripl-play
|
41
|
+
simplecov
|
42
|
+
simplecov-html
|
43
|
+
test-unit
|
55
44
|
|
56
45
|
BUNDLED WITH
|
57
46
|
1.12.5
|
data/README.md
CHANGED
@@ -4,21 +4,64 @@
|
|
4
4
|
# Disclaimer
|
5
5
|
This is just an API to make adaptibrew more user friendly. It will provide a clean shell and easy to understand methods for all the actions you need to control your brew rig. This will require an actual brew rig and all the equipment listed in [adaptiman/adaptibrew](https://github.com/adaptiman/adaptibrew). If you are looking to build an automated brew rig, **this is not the place to start**. Head over to [adaptiman/adaptibrew](https://github.com/adaptiman/adaptibrew), or hit up [adaptiman](https://github.com/adaptiman).
|
6
6
|
|
7
|
-
#
|
8
|
-
|
7
|
+
# Running
|
8
|
+
You'll need Ruby installed of course.
|
9
|
+
|
10
|
+
First, you need to install missing gems. To do that, run
|
9
11
|
```shell
|
10
|
-
|
12
|
+
bundle install
|
11
13
|
```
|
12
|
-
|
14
|
+
from inside the root directory. If there are any errors, bundler will probably tell you how to solve them. Otherwise, gg wp.
|
15
|
+
|
16
|
+
To initialize, run
|
13
17
|
```shell
|
14
18
|
brewer
|
15
19
|
```
|
16
|
-
|
20
|
+
from inside the root directory. This will open up a Ripl shell. It looks like this:
|
21
|
+
```shell
|
22
|
+
>>
|
23
|
+
```
|
17
24
|
|
18
|
-
|
19
|
-
|
20
|
-
|
25
|
+
**If that doesn't work**, the `brewer` file might not be executable. Run
|
26
|
+
```shell
|
27
|
+
sudo chmod +x brewer
|
28
|
+
```
|
29
|
+
to make it executable and try again.
|
30
|
+
|
31
|
+
# Testing & Rake
|
32
|
+
Run
|
33
|
+
```shell
|
34
|
+
rake test
|
35
|
+
```
|
36
|
+
to run all tests. You can run a specific test case with
|
37
|
+
```shell
|
38
|
+
rake test['adaptibrew']
|
39
|
+
```
|
40
|
+
This will run `tests/tc_adaptibrew.rb`. You can of course change `adaptibrew` to another `tc_*.rb` in order to run specific test cases.
|
21
41
|
|
42
|
+
A code coverage report will be created in `coverage/` upon testing. Checkout `coverage/index.html` to view the report. You can also run
|
43
|
+
```shell
|
44
|
+
rake coverage
|
45
|
+
```
|
46
|
+
to see the coverage report.
|
22
47
|
|
48
|
+
## Other rake commands
|
23
49
|
|
24
|
-
|
50
|
+
Delete, clone, or refresh (delete and re-clone), with
|
51
|
+
```shell
|
52
|
+
rake adaptibrew['clear']
|
53
|
+
rake adaptibrew['clone']
|
54
|
+
rake adaptibrew['refresh']
|
55
|
+
```
|
56
|
+
# Documentation
|
57
|
+
**Warning: RDoc have a seizure when encountering Gemfiles, Rakefiles, etc. Basically files that don't end in `.rb` but have ruby syntax. Docs will be a bit weird on those files. I suggest just reading the comments in source.**
|
58
|
+
|
59
|
+
Run
|
60
|
+
```shell
|
61
|
+
rdoc
|
62
|
+
```
|
63
|
+
to generate/update documentation, and run
|
64
|
+
```shell
|
65
|
+
rake docs
|
66
|
+
```
|
67
|
+
to open documentation.
|
data/Rakefile
CHANGED
@@ -1,15 +1,18 @@
|
|
1
1
|
require 'git'
|
2
2
|
require 'launchy'
|
3
3
|
require 'rdoc/task'
|
4
|
-
require 'rspec/core/rake_task'
|
5
4
|
|
6
|
-
task default: %w[
|
5
|
+
task default: %w[test]
|
7
6
|
|
8
7
|
# Unit testing
|
9
8
|
# You can specify a specific test case to use
|
10
9
|
# Ex: rake test['brewer']
|
11
|
-
task :
|
12
|
-
|
10
|
+
task :test, [:tc] do |t, tc|
|
11
|
+
if tc.to_a.any?
|
12
|
+
ruby "tests/tc_#{tc.to_a[0]}.rb"
|
13
|
+
else
|
14
|
+
ruby "tests/ts_all.rb"
|
15
|
+
end
|
13
16
|
end
|
14
17
|
|
15
18
|
# Opens code coverage in your browser
|
data/bin/brewer
CHANGED
@@ -1,20 +1,17 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This executable will start a Ripl shell with a 'brewer' and 'adaptibrew' objects
|
4
|
-
|
2
|
+
# This script will initialize a Ripl shell with a brewer instantiated
|
5
3
|
require 'ripl'
|
6
4
|
|
5
|
+
# pull in our lib
|
7
6
|
require_relative "../lib/brewer"
|
8
7
|
|
9
|
-
#
|
10
|
-
adaptibrew = Adaptibrew.new
|
8
|
+
# Clone the repo
|
9
|
+
adaptibrew = Adaptibrew.new
|
10
|
+
adaptibrew.clone
|
11
11
|
|
12
|
+
# Start up a brewer
|
12
13
|
brewer = Brewer.new
|
13
14
|
|
14
|
-
|
15
|
-
puts "You may wish to delete it when you are finished. Do that with `adaptibrew.clear`"
|
16
|
-
puts "🍺 have fun 🍺"
|
17
|
-
|
18
|
-
# 🍺🍺🍺
|
15
|
+
# Start the ripl shell
|
19
16
|
Ripl.start :binding => binding
|
20
|
-
#
|
17
|
+
# Start brewing
|
data/brewer.gemspec
CHANGED
@@ -2,32 +2,21 @@ require 'rake'
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "brewer"
|
5
|
-
s.version = "0.0.
|
5
|
+
s.version = "0.0.4"
|
6
6
|
s.default_executable = "brewer"
|
7
7
|
|
8
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
9
|
s.authors = ["Luke Sweeney"]
|
9
10
|
s.date = %q{2017-03-08}
|
10
11
|
s.description = %q{A Ruby API for adaptiman/adaptibrew}
|
11
12
|
s.email = %q{luke@thesweeneys.org}
|
12
|
-
s.files = FileList.new(['lib/*.rb', 'bin/*', '[A-Z]*', '
|
13
|
+
s.files = FileList.new(['lib/*.rb', 'bin/*', '[A-Z]*', 'tests/*.rb']).to_a
|
13
14
|
s.executables = ['brewer']
|
14
15
|
s.bindir = 'bin'
|
15
|
-
s.test_files = FileList.new(["
|
16
|
-
s.homepage = %q{http://github.com/llamicron/
|
16
|
+
s.test_files = FileList.new(["tests/*.rb"]).to_a
|
17
|
+
s.homepage = %q{http://github.com/llamicron/ruby_brewer}
|
17
18
|
s.require_paths = ["lib", "lib"]
|
18
19
|
s.rubygems_version = %q{1.6.2}
|
19
20
|
s.summary = %q{A shell interface for adaptibrew}
|
20
21
|
s.license = 'MIT'
|
21
|
-
|
22
|
-
# Runtime dependencies
|
23
|
-
s.add_runtime_dependency 'git', '~> 1.3', '>= 1.3.0'
|
24
|
-
s.add_runtime_dependency 'ripl', '~> 0.7.0'
|
25
|
-
|
26
|
-
# Dev dependencies
|
27
|
-
s.add_development_dependency 'rake', '~> 12.0', '>= 12.0.0'
|
28
|
-
s.add_development_dependency 'rspec', '~> 3.5.0', '>= 3.5.0'
|
29
|
-
s.add_development_dependency 'launchy', '~> 2.4', '>= 2.4.0'
|
30
|
-
s.add_development_dependency 'simplecov', '~> 0.13.0'
|
31
|
-
s.add_development_dependency 'simplecov-html', '~> 0.10.0'
|
32
|
-
s.add_development_dependency 'rdoc', '~> 5.1', '>= 5.1.0'
|
33
22
|
end
|
data/lib/adaptibrew.rb
CHANGED
@@ -4,7 +4,6 @@ require 'fileutils'
|
|
4
4
|
# This is the 'manager' for the adaptibrew repo. It handles cloning and such.
|
5
5
|
class Adaptibrew
|
6
6
|
|
7
|
-
# If used in IRB, Ripl, etc. it will clone into the directory IRB was started in
|
8
7
|
def clone(path=nil)
|
9
8
|
if !Dir.exists?('adaptibrew')
|
10
9
|
Git.clone('https://github.com/adaptiman/adaptibrew.git', 'adaptibrew', :path => path)
|
@@ -13,11 +12,13 @@ class Adaptibrew
|
|
13
12
|
end
|
14
13
|
|
15
14
|
# Danger zone...
|
16
|
-
def clear()
|
17
|
-
|
15
|
+
def clear(dir='adaptibrew')
|
16
|
+
raise 'Warning! This will delete a directory other than the `adaptibrew` directory' unless dir.include? 'adaptibrew'
|
17
|
+
FileUtils.rm_rf(dir)
|
18
18
|
self
|
19
19
|
end
|
20
20
|
|
21
|
+
# This can also serve as an update method
|
21
22
|
def refresh
|
22
23
|
clear
|
23
24
|
clone
|
data/lib/brewer.rb
CHANGED
@@ -1,38 +1,45 @@
|
|
1
|
+
require 'date'
|
1
2
|
require_relative 'helpers'
|
2
3
|
require_relative 'adaptibrew'
|
3
4
|
|
4
5
|
include Helpers
|
5
6
|
|
7
|
+
# This is the main brewer class.
|
8
|
+
# This contains all the methods needed to control a brew rig
|
9
|
+
# setup with adaptiman/adaptibrew.
|
6
10
|
class Brewer
|
7
11
|
|
12
|
+
# Path to the gem root
|
8
13
|
attr_reader :base_path
|
9
|
-
|
14
|
+
|
15
|
+
# Output of adaptibrew
|
16
|
+
attr_accessor :out
|
10
17
|
|
11
18
|
def initialize
|
12
|
-
@base_path = Dir.pwd
|
13
|
-
# Output
|
14
|
-
@
|
15
|
-
@log = @base_path + '/logs/output'
|
19
|
+
@base_path = Dir.pwd # Path of the package
|
20
|
+
@out = [] # Output from adaptibrew
|
21
|
+
@log = @base_path + '/logs/output' # Log file for @out. Everything in the log file will be from @out.
|
16
22
|
end
|
17
23
|
|
18
24
|
public
|
19
25
|
|
26
|
+
# Waits for `time` seconds. Pretty simple stuff.
|
20
27
|
def wait(time=30)
|
28
|
+
puts "Waiting for #{time} seconds"
|
21
29
|
sleep(time)
|
22
30
|
self
|
23
31
|
end
|
24
32
|
|
25
33
|
# Runs an adaptibrew script
|
26
|
-
# Output will be stored in
|
34
|
+
# Output will be stored in `@out'
|
27
35
|
def script(script, params=nil)
|
28
36
|
@out.unshift(`python #{@base_path}/adaptibrew/#{script}.py #{params}`.chomp)
|
29
37
|
self
|
30
38
|
end
|
31
39
|
|
32
|
-
# Clears the
|
33
|
-
# Writes current @out to log
|
34
|
-
# This is why the prod log is changed when tests are run
|
40
|
+
# Clears the `@out` array
|
35
41
|
def clear
|
42
|
+
# Write current `@out` to log
|
36
43
|
write_log(@log, @out)
|
37
44
|
@out = []
|
38
45
|
self
|
data/lib/helpers.rb
CHANGED
@@ -1,18 +1,24 @@
|
|
1
1
|
module Helpers
|
2
2
|
|
3
|
+
# Returns the default location for the log file.
|
4
|
+
# A different log file is used for testing
|
3
5
|
def log
|
4
6
|
Dir.pwd + '/logs/output'
|
5
7
|
end
|
6
8
|
|
9
|
+
# Gets the current date and time
|
7
10
|
# Formatted as: 03/07/2017 14:26
|
8
11
|
def time
|
9
12
|
Time.now.strftime("%m/%d/%Y %H:%M")
|
10
13
|
end
|
11
14
|
|
15
|
+
# Truncates the entire log
|
12
16
|
def clear_log(log)
|
13
17
|
File.truncate(log, 0)
|
14
18
|
end
|
15
19
|
|
20
|
+
# Writes each `line` element to `logs/output` with a timestamp. Example:
|
21
|
+
# [03/07/2017 14:27]: it worked
|
16
22
|
def write_log(log, lines)
|
17
23
|
File.open(log, 'a') do |file|
|
18
24
|
lines.each do |line|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require_relative '../lib/adaptibrew'
|
3
|
+
|
4
|
+
class TestGit < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@adaptibrew = Adaptibrew.new
|
8
|
+
end
|
9
|
+
|
10
|
+
# `refresh` calls both `clone` and `clear`. oh that sweet, sweet code coverage
|
11
|
+
def test_refresh
|
12
|
+
@adaptibrew.refresh
|
13
|
+
assert_true(Dir.exists?('adaptibrew'))
|
14
|
+
end
|
15
|
+
|
16
|
+
# Testing a not-so-failed case of cloning
|
17
|
+
def test_clone_will_skip_if_repo_present
|
18
|
+
@adaptibrew.refresh
|
19
|
+
assert_equal(@adaptibrew, @adaptibrew.clone)
|
20
|
+
end
|
21
|
+
|
22
|
+
def teardown
|
23
|
+
@adaptibrew.refresh
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
data/tests/tc_brewer.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require_relative '../lib/brewer'
|
3
|
+
require_relative '../lib/adaptibrew'
|
4
|
+
|
5
|
+
class TestBrewer < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@brewer = Brewer.new
|
9
|
+
@adaptibrew = Adaptibrew.new.refresh
|
10
|
+
# This is used for log testing, not logging tests see `test_log_methods`
|
11
|
+
@log = @brewer.base_path + '/logs/test_output'
|
12
|
+
end
|
13
|
+
|
14
|
+
# Make sure that the path is correct. I hate working with paths.
|
15
|
+
# TODO: Test this on windows
|
16
|
+
def test_base_path
|
17
|
+
assert_equal(Dir.pwd, @brewer.base_path)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Don't really know how to test this one...
|
21
|
+
# Just running the code for coverage and to pick up any stray errors
|
22
|
+
def test_wait
|
23
|
+
@brewer.wait(0.1)
|
24
|
+
assert_true(true)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_script_and_output
|
28
|
+
@brewer.script('python_tester')
|
29
|
+
assert_equal("it worked", @brewer.out.first)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Tests if the adaptibrew output (@brewer.out) can be cleared.
|
33
|
+
# This invloves writing to the log file
|
34
|
+
def test_clear_output
|
35
|
+
@brewer.script('python_tester')
|
36
|
+
assert_equal("it worked", @brewer.out.first)
|
37
|
+
@brewer.clear
|
38
|
+
assert_equal(nil, @brewer.out.first)
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
data/tests/tc_helpers.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
|
3
|
+
require_relative '../lib/helpers'
|
4
|
+
|
5
|
+
class TestHelpers < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@brewer = Brewer.new
|
9
|
+
# See comment on `test_log`
|
10
|
+
@log = @brewer.base_path + '/logs/test_output'
|
11
|
+
|
12
|
+
clear_log(@log)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_time
|
16
|
+
assert_equal(String, time.class)
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_log
|
20
|
+
# This will give us the actual log i.e. '/logs/output'
|
21
|
+
# For tests we use 'logs/test_output', which is why we have the
|
22
|
+
# @log = @brewer.base_path + '/logs/test_output'
|
23
|
+
# line
|
24
|
+
assert_equal(String, log.class)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_log_methods
|
28
|
+
# Clear adaptibrew ouput from brewer
|
29
|
+
@brewer.clear
|
30
|
+
|
31
|
+
clear_log(@log)
|
32
|
+
assert_true(File.zero?(@log))
|
33
|
+
|
34
|
+
# Get some output
|
35
|
+
@brewer.script('python_tester')
|
36
|
+
assert_true(@brewer.out.any?)
|
37
|
+
|
38
|
+
# Write output
|
39
|
+
write_log(@log, @brewer.out)
|
40
|
+
assert_true(!File.zero?(@log))
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
data/tests/ts_all.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# Code Coverage
|
2
|
+
require 'simplecov'
|
3
|
+
SimpleCov.command_name 'Unit Tests'
|
4
|
+
SimpleCov.start
|
5
|
+
|
6
|
+
require_relative '../lib/helpers'
|
7
|
+
include Helpers
|
8
|
+
|
9
|
+
# Test Framework
|
10
|
+
require 'test/unit'
|
11
|
+
|
12
|
+
# Test Cases
|
13
|
+
require_relative 'tc_adaptibrew'
|
14
|
+
require_relative 'tc_brewer'
|
15
|
+
require_relative 'tc_helpers'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brewer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luke Sweeney
|
@@ -9,149 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 2017-03-08 00:00:00.000000000 Z
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: git
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.3'
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 1.3.0
|
23
|
-
type: :runtime
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '1.3'
|
30
|
-
- - ">="
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 1.3.0
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: ripl
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: 0.7.0
|
40
|
-
type: :runtime
|
41
|
-
prerelease: false
|
42
|
-
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - "~>"
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 0.7.0
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: rake
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - "~>"
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '12.0'
|
54
|
-
- - ">="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: 12.0.0
|
57
|
-
type: :development
|
58
|
-
prerelease: false
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
60
|
-
requirements:
|
61
|
-
- - "~>"
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: '12.0'
|
64
|
-
- - ">="
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: 12.0.0
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
name: rspec
|
69
|
-
requirement: !ruby/object:Gem::Requirement
|
70
|
-
requirements:
|
71
|
-
- - "~>"
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
version: 3.5.0
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: 3.5.0
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - "~>"
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: 3.5.0
|
84
|
-
- - ">="
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
version: 3.5.0
|
87
|
-
- !ruby/object:Gem::Dependency
|
88
|
-
name: launchy
|
89
|
-
requirement: !ruby/object:Gem::Requirement
|
90
|
-
requirements:
|
91
|
-
- - "~>"
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '2.4'
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 2.4.0
|
97
|
-
type: :development
|
98
|
-
prerelease: false
|
99
|
-
version_requirements: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '2.4'
|
104
|
-
- - ">="
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
version: 2.4.0
|
107
|
-
- !ruby/object:Gem::Dependency
|
108
|
-
name: simplecov
|
109
|
-
requirement: !ruby/object:Gem::Requirement
|
110
|
-
requirements:
|
111
|
-
- - "~>"
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
version: 0.13.0
|
114
|
-
type: :development
|
115
|
-
prerelease: false
|
116
|
-
version_requirements: !ruby/object:Gem::Requirement
|
117
|
-
requirements:
|
118
|
-
- - "~>"
|
119
|
-
- !ruby/object:Gem::Version
|
120
|
-
version: 0.13.0
|
121
|
-
- !ruby/object:Gem::Dependency
|
122
|
-
name: simplecov-html
|
123
|
-
requirement: !ruby/object:Gem::Requirement
|
124
|
-
requirements:
|
125
|
-
- - "~>"
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
version: 0.10.0
|
128
|
-
type: :development
|
129
|
-
prerelease: false
|
130
|
-
version_requirements: !ruby/object:Gem::Requirement
|
131
|
-
requirements:
|
132
|
-
- - "~>"
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
version: 0.10.0
|
135
|
-
- !ruby/object:Gem::Dependency
|
136
|
-
name: rdoc
|
137
|
-
requirement: !ruby/object:Gem::Requirement
|
138
|
-
requirements:
|
139
|
-
- - "~>"
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '5.1'
|
142
|
-
- - ">="
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: 5.1.0
|
145
|
-
type: :development
|
146
|
-
prerelease: false
|
147
|
-
version_requirements: !ruby/object:Gem::Requirement
|
148
|
-
requirements:
|
149
|
-
- - "~>"
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version: '5.1'
|
152
|
-
- - ">="
|
153
|
-
- !ruby/object:Gem::Version
|
154
|
-
version: 5.1.0
|
12
|
+
dependencies: []
|
155
13
|
description: A Ruby API for adaptiman/adaptibrew
|
156
14
|
email: luke@thesweeneys.org
|
157
15
|
executables:
|
@@ -168,11 +26,11 @@ files:
|
|
168
26
|
- lib/adaptibrew.rb
|
169
27
|
- lib/brewer.rb
|
170
28
|
- lib/helpers.rb
|
171
|
-
-
|
172
|
-
-
|
173
|
-
-
|
174
|
-
-
|
175
|
-
homepage: http://github.com/llamicron/
|
29
|
+
- tests/tc_adaptibrew.rb
|
30
|
+
- tests/tc_brewer.rb
|
31
|
+
- tests/tc_helpers.rb
|
32
|
+
- tests/ts_all.rb
|
33
|
+
homepage: http://github.com/llamicron/ruby_brewer
|
176
34
|
licenses:
|
177
35
|
- MIT
|
178
36
|
metadata: {}
|
@@ -198,7 +56,7 @@ signing_key:
|
|
198
56
|
specification_version: 4
|
199
57
|
summary: A shell interface for adaptibrew
|
200
58
|
test_files:
|
201
|
-
-
|
202
|
-
-
|
203
|
-
-
|
204
|
-
-
|
59
|
+
- tests/tc_adaptibrew.rb
|
60
|
+
- tests/tc_brewer.rb
|
61
|
+
- tests/tc_helpers.rb
|
62
|
+
- tests/ts_all.rb
|
data/spec/adaptibrew_spec.rb
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
require_relative 'spec_helper'
|
2
|
-
|
3
|
-
describe Adaptibrew do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
@adaptibrew = Adaptibrew.new.refresh
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "#new" do
|
10
|
-
specify { expect(@adaptibrew).to be_an_instance_of Adaptibrew }
|
11
|
-
end
|
12
|
-
|
13
|
-
describe ".clear" do
|
14
|
-
context "when the repo already exists" do
|
15
|
-
specify { expect(Dir.exists?('adaptibrew')).to be true }
|
16
|
-
|
17
|
-
it "deletes the repo" do
|
18
|
-
@adaptibrew.clear
|
19
|
-
expect(Dir.exists?('adaptibrew')).to be false
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
context "when the repo does not exist" do
|
24
|
-
let(:adaptibrew) { Adaptibrew.new }
|
25
|
-
before { adaptibrew.clear }
|
26
|
-
specify { expect(Dir.exists?('adaptibrew')).to be false }
|
27
|
-
|
28
|
-
it "does nothing" do
|
29
|
-
@adaptibrew.clear
|
30
|
-
expect(Dir.exists?('adaptibrew')).to be false
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
describe ".clone" do
|
37
|
-
context "when the repo does not exist" do
|
38
|
-
let(:adaptibrew) { Adaptibrew.new }
|
39
|
-
before { adaptibrew.clear }
|
40
|
-
specify { expect(Dir.exists?('adaptibrew')).to be false }
|
41
|
-
|
42
|
-
it "clones the repo" do
|
43
|
-
@adaptibrew.clone
|
44
|
-
expect(Dir.exists?('adaptibrew')).to be true
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
context "when the repo exists" do
|
49
|
-
let(:adaptibrew) { Adaptibrew.new }
|
50
|
-
before { adaptibrew.clone }
|
51
|
-
specify { expect(Dir.exists?('adaptibrew')).to be true }
|
52
|
-
|
53
|
-
it "does nothing" do
|
54
|
-
@adaptibrew.clone
|
55
|
-
expect(Dir.exists?('adaptibrew')).to be true
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
describe ".refresh" do
|
62
|
-
let(:adaptibrew) { Adaptibrew.new }
|
63
|
-
before { adaptibrew.refresh }
|
64
|
-
it "clears and clones the repo" do # regardless of wether or not it's there
|
65
|
-
expect(Dir.exists?('adaptibrew')).to be true
|
66
|
-
@adaptibrew.refresh
|
67
|
-
expect(Dir.exists?('adaptibrew')).to be true
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
end
|
data/spec/brewer_spec.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
require_relative 'spec_helper'
|
2
|
-
|
3
|
-
describe Brewer do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
@brewer = Brewer.new
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "#new" do
|
10
|
-
it "returns a brewer object" do
|
11
|
-
expect(@brewer).to be_an_instance_of Brewer
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
describe ".wait" do
|
16
|
-
# This is kind of iffy like the Helpers#time test
|
17
|
-
it "can wait for a number of seconds" do
|
18
|
-
# not using let(:current_time) etc. because
|
19
|
-
# the var is created upon the first calling, which is in the expect()
|
20
|
-
current_time = Time.now.to_i
|
21
|
-
@brewer.wait(1)
|
22
|
-
expect(current_time + 1).to eq(Time.now.to_i)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe ".script" do
|
27
|
-
it "can run a python script and get output" do
|
28
|
-
@brewer.script('python_tester')
|
29
|
-
expect(@brewer.out.first).to eq("it worked")
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
describe ".clear" do
|
34
|
-
context "when there is output" do
|
35
|
-
let(:brewer) { Brewer.new }
|
36
|
-
before { brewer.script('python_tester') }
|
37
|
-
specify { expect(brewer.out.first).to eq("it worked") }
|
38
|
-
|
39
|
-
it "can clear the output" do
|
40
|
-
@brewer.clear
|
41
|
-
expect(@brewer.out).to be_empty
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
data/spec/helpers_spec.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
require_relative 'spec_helper'
|
2
|
-
|
3
|
-
include Helpers
|
4
|
-
|
5
|
-
describe "Helpers" do
|
6
|
-
|
7
|
-
it "returns the log file path" do
|
8
|
-
expect(log).to eq(Dir.pwd + '/logs/output')
|
9
|
-
end
|
10
|
-
|
11
|
-
it "can return the date/time" do
|
12
|
-
# This might not be consistent???
|
13
|
-
# What if the minute changes during tests?
|
14
|
-
# dunno lol
|
15
|
-
expect(time).to eq(Time.now.strftime("%m/%d/%Y %H:%M"))
|
16
|
-
end
|
17
|
-
|
18
|
-
context "when the log is empty" do
|
19
|
-
before { clear_log(log) }
|
20
|
-
specify { expect(File.zero?(log)).to be true }
|
21
|
-
it "can write to the log" do
|
22
|
-
write_log(log, ['log entry'])
|
23
|
-
expect(File.zero?(log)).to be false
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
context "when the log is not empty" do
|
28
|
-
write_log(log, ['log entry'])
|
29
|
-
specify { expect(File.zero?(log)).to be false }
|
30
|
-
it "can clear the log" do
|
31
|
-
clear_log(log)
|
32
|
-
expect(File.zero?(log)).to be true
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
# This is the helper file for rspec
|
2
|
-
# For the spec of helpers.rb, see helper_spec.b
|
3
|
-
# Code Coverage
|
4
|
-
require 'simplecov'
|
5
|
-
SimpleCov.command_name 'RSpec'
|
6
|
-
SimpleCov.start
|
7
|
-
|
8
|
-
require_relative '../lib/adaptibrew.rb'
|
9
|
-
require_relative '../lib/brewer.rb'
|
10
|
-
require_relative '../lib/helpers.rb'
|