hab 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/.gitignore +14 -0
- data/.rubocop.yml +18 -0
- data/.ruby-version +1 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +107 -0
- data/Rakefile +6 -0
- data/bin/hab +73 -0
- data/hab.gemspec +30 -0
- data/lib/hab/config.rb +19 -0
- data/lib/hab/filter.rb +24 -0
- data/lib/hab/formatter/colors.rb +31 -0
- data/lib/hab/formatter/graph.rb +29 -0
- data/lib/hab/formatter.rb +72 -0
- data/lib/hab/version.rb +3 -0
- data/lib/hab.rb +63 -0
- data/lib/rumoji/erase.rb +7 -0
- metadata +216 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d7ca5334d97644490d04689636eb2cfa79278425
|
4
|
+
data.tar.gz: 981e6cbdac2800c5fb09e8352727592ae271571d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8ef7bf36689f2f8aeee7be4ec9a84f6fdd983fc11b29607545a6711c40bbbb473d9fa85397551496b37343fe3cfda478c75f7fb8799e25eacc63d7136bb7304d
|
7
|
+
data.tar.gz: 0dff99969e099e3c9eb0f8f73efc6f42d2063489c3e444a0e5fb22581c101a398d364909578d7a043fd79332a1b469795764c142fd54a51b83eaa89058d413cb
|
data/.gitignore
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# inherit_from: ../.rubocop.yml
|
2
|
+
|
3
|
+
Style/EmptyLinesAroundBlockBody:
|
4
|
+
Enabled: false
|
5
|
+
Style/EmptyLinesAroundClassBody:
|
6
|
+
Enabled: false
|
7
|
+
Style/EmptyLinesAroundModuleBody:
|
8
|
+
Enabled: false
|
9
|
+
Documentation:
|
10
|
+
Enabled: false
|
11
|
+
Style/ClassAndModuleChildren:
|
12
|
+
Enabled: false
|
13
|
+
Style/ClassVars:
|
14
|
+
Enabled: false
|
15
|
+
Metrics/AbcSize:
|
16
|
+
Enabled: false
|
17
|
+
MethodLength:
|
18
|
+
Enabled: false
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.1.2
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2015 Stephen Mckellar
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
# HRPG
|
2
|
+
|
3
|
+
Another command line interface for HabitRPG: Your Life the Role Playing Game.
|
4
|
+
|
5
|
+
Mostly intended to play nice with other unixy programs i.e.
|
6
|
+
|
7
|
+
```sh
|
8
|
+
$ hrpg stats | grep HP
|
9
|
+
# HP 47
|
10
|
+
# MAX_HP 50
|
11
|
+
|
12
|
+
$ hrpg todos
|
13
|
+
# Feed the fish
|
14
|
+
# Sort mail
|
15
|
+
|
16
|
+
$ echo "Remember the milk" | hrpg todos
|
17
|
+
# Remember the milk
|
18
|
+
# Feed the fish
|
19
|
+
# Sort mail
|
20
|
+
```
|
21
|
+
|
22
|
+
## Installation
|
23
|
+
|
24
|
+
Install it with:
|
25
|
+
|
26
|
+
$ gem install hrpg
|
27
|
+
|
28
|
+
## Usage
|
29
|
+
|
30
|
+
To use you need to set up a config file with your settings:
|
31
|
+
|
32
|
+
```yaml
|
33
|
+
# in ~/.hrpg
|
34
|
+
user_id: YOUR_HABITRPG_USER_ID
|
35
|
+
api_token: YOUR_HABITRPG_API_TOKEN
|
36
|
+
```
|
37
|
+
|
38
|
+
### Commands
|
39
|
+
|
40
|
+
Once your config is set up the following commands should work.
|
41
|
+
|
42
|
+
Show your current status (pretty formatted):
|
43
|
+
```sh
|
44
|
+
$ hrpg status
|
45
|
+
```
|
46
|
+
|
47
|
+

|
48
|
+
|
49
|
+
Show your full stats:
|
50
|
+
```sh
|
51
|
+
$ hrpg stats
|
52
|
+
# HP 47.1
|
53
|
+
# MAX_HP 50
|
54
|
+
# MP 44
|
55
|
+
# MAX_MP 44
|
56
|
+
# EXP 117
|
57
|
+
# TO_NEXT_LEVEL 220
|
58
|
+
# PER 0
|
59
|
+
# INT 0
|
60
|
+
# CON 0
|
61
|
+
# STR 0
|
62
|
+
# LVL 7
|
63
|
+
# GP 11.48107934389596
|
64
|
+
```
|
65
|
+
|
66
|
+
List your habits:
|
67
|
+
```sh
|
68
|
+
$ hrpg habits
|
69
|
+
# Study
|
70
|
+
# Turn out the lights
|
71
|
+
```
|
72
|
+
|
73
|
+
List your dailies:
|
74
|
+
```sh
|
75
|
+
$ hrpg dailies
|
76
|
+
# Feed the fish
|
77
|
+
# Sort mail
|
78
|
+
|
79
|
+
$ hrpg dailies --completed
|
80
|
+
# Feed the fish
|
81
|
+
|
82
|
+
$ hrpg dailies --uncompleted
|
83
|
+
# Sort mail
|
84
|
+
```
|
85
|
+
|
86
|
+
List your todos:
|
87
|
+
```sh
|
88
|
+
$ hrpg todos
|
89
|
+
# Remember the milk
|
90
|
+
# Put the bins out
|
91
|
+
|
92
|
+
$ hrpg todos --completed
|
93
|
+
# Remember the milk
|
94
|
+
|
95
|
+
$ hrpg todos --uncompleted
|
96
|
+
# Put the bins out
|
97
|
+
```
|
98
|
+
|
99
|
+
Add tasks by using STDIN:
|
100
|
+
```sh
|
101
|
+
echo "Remember the milk" | hrpg todos
|
102
|
+
```
|
103
|
+
|
104
|
+
For more information:
|
105
|
+
```sh
|
106
|
+
$ hrpg help
|
107
|
+
```
|
data/Rakefile
ADDED
data/bin/hab
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'commander/import'
|
4
|
+
require 'hab'
|
5
|
+
|
6
|
+
program :version, '0.0.1'
|
7
|
+
program :description, <<-BLOCK
|
8
|
+
A command line interface for Habitica: Your Life the Role Playing Game
|
9
|
+
|
10
|
+
To use you need to set up a config file with your settings:
|
11
|
+
|
12
|
+
# in ~/.habitica
|
13
|
+
user_id: YOUR_HABITRPG_USER_ID
|
14
|
+
api_token: YOUR_HABITRPG_API_TOKEN
|
15
|
+
|
16
|
+
More info at: https://github.com/steeeve/hrpg
|
17
|
+
BLOCK
|
18
|
+
|
19
|
+
command :status do |c|
|
20
|
+
c.syntax = 'status [options]'
|
21
|
+
c.summary = 'Show my status overview'
|
22
|
+
c.action do
|
23
|
+
puts Hab.status
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
command :stats do |c|
|
28
|
+
c.syntax = 'stats [options]'
|
29
|
+
c.summary = 'Show all my stats'
|
30
|
+
c.action do
|
31
|
+
puts Hab.stats
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
command :habits do |c|
|
36
|
+
c.syntax = 'habits [options]'
|
37
|
+
c.summary = 'Show my habit list'
|
38
|
+
c.option '--emoji', 'Show emoji'
|
39
|
+
c.action do |_args, options|
|
40
|
+
options.default emoji: false
|
41
|
+
|
42
|
+
Hab.add_tasks(Hab.stdin_tasks, 'habit')
|
43
|
+
puts Hab.habits(options)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
command :dailies do |c|
|
48
|
+
c.syntax = 'dailies [options]'
|
49
|
+
c.summary = 'Show my dailies list, shows uncompleted by default'
|
50
|
+
c.option '--completed', 'Show only completed'
|
51
|
+
c.option '--all', 'Show completed & uncompleted'
|
52
|
+
c.option '--emoji', 'Show emoji'
|
53
|
+
c.action do |_args, options|
|
54
|
+
options.default completed: false, all: false, emoji: false
|
55
|
+
|
56
|
+
Hab.add_tasks(Hab.stdin_tasks, 'daily')
|
57
|
+
puts Hab.dailies(options)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
command :todos do |c|
|
62
|
+
c.syntax = 'todos [options]'
|
63
|
+
c.summary = 'Show my todos list, shows uncompleted by default'
|
64
|
+
c.option '--completed', 'Show only completed'
|
65
|
+
c.option '--all', 'Show completed & uncompleted'
|
66
|
+
c.option '--emoji', 'Show emoji'
|
67
|
+
c.action do |_args, options|
|
68
|
+
options.default completed: false, all: false, emoji: false
|
69
|
+
|
70
|
+
Hab.add_tasks(Hab.stdin_tasks, 'todo')
|
71
|
+
puts Hab.todos(options)
|
72
|
+
end
|
73
|
+
end
|
data/hab.gemspec
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'hab/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'hab'
|
8
|
+
spec.version = Hab::VERSION
|
9
|
+
spec.authors = ['Stephen Mckellar']
|
10
|
+
spec.email = ['stephen@thingmaker.io']
|
11
|
+
spec.summary = 'A command line interface for Habitica'
|
12
|
+
spec.homepage = ''
|
13
|
+
spec.license = 'MIT'
|
14
|
+
spec.files = `git ls-files -z`.split("\x0")
|
15
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
16
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
17
|
+
spec.require_paths = ['lib']
|
18
|
+
spec.add_development_dependency 'bundler', '~> 1.7'
|
19
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
20
|
+
spec.add_development_dependency 'rspec', '~> 3.2'
|
21
|
+
spec.add_development_dependency 'webmock', '~> 1.2'
|
22
|
+
spec.add_development_dependency 'vcr', '~> 2.9'
|
23
|
+
spec.add_development_dependency 'pry', '~> 0.10'
|
24
|
+
spec.add_development_dependency 'rubocop', '~> 0.32'
|
25
|
+
spec.add_runtime_dependency 'habit_client', '0.0.6'
|
26
|
+
spec.add_runtime_dependency 'rumoji', '~> 0.4'
|
27
|
+
spec.add_runtime_dependency 'colorize', '~> 0.7'
|
28
|
+
spec.add_runtime_dependency 'commander', '~> 4.3'
|
29
|
+
|
30
|
+
end
|
data/lib/hab/config.rb
ADDED
data/lib/hab/filter.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
module Hab
|
2
|
+
module Filter
|
3
|
+
|
4
|
+
def self.by_status(tasks, options)
|
5
|
+
if options.all
|
6
|
+
tasks
|
7
|
+
elsif options.completed
|
8
|
+
self.completed(tasks)
|
9
|
+
else
|
10
|
+
self.uncompleted(tasks)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.completed(tasks)
|
15
|
+
tasks.select(&:completed?)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.uncompleted(tasks)
|
19
|
+
tasks.select { |task| !task.completed? }
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Hab::Formatter
|
2
|
+
|
3
|
+
module Colors
|
4
|
+
|
5
|
+
VALUE_COLORS = {
|
6
|
+
5..10 => :light_blue,
|
7
|
+
1..5 => :light_green,
|
8
|
+
-1..1 => :light_yellow,
|
9
|
+
-5..-1 => :yellow,
|
10
|
+
-10..-5 => :light_red
|
11
|
+
}
|
12
|
+
|
13
|
+
STAT_COLORS = {
|
14
|
+
HP: :red,
|
15
|
+
MP: :green,
|
16
|
+
EXP: :yellow,
|
17
|
+
DAILIES: :light_magenta,
|
18
|
+
TODOS: :light_blue
|
19
|
+
}
|
20
|
+
|
21
|
+
def value_color(value)
|
22
|
+
VALUE_COLORS.select { |key, color| key.cover? value }.values.first
|
23
|
+
end
|
24
|
+
|
25
|
+
def stat_color(label)
|
26
|
+
STAT_COLORS.key?(label) ? STAT_COLORS[label] : :default
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'colorize'
|
2
|
+
|
3
|
+
module Hab::Formatter
|
4
|
+
|
5
|
+
module Graph
|
6
|
+
|
7
|
+
BAR_SIZE = 20
|
8
|
+
|
9
|
+
def bar(value, max, color)
|
10
|
+
percent = value.to_f / max.to_f
|
11
|
+
blocks = (percent * BAR_SIZE).floor
|
12
|
+
spaces = BAR_SIZE - blocks
|
13
|
+
bar = ('■' * blocks).colorize(color)
|
14
|
+
space = ' ' * spaces
|
15
|
+
endpost = '|'.colorize(:light_black)
|
16
|
+
"#{endpost}#{bar}#{space}#{endpost}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def statbar(label, value, max)
|
20
|
+
description = label.to_s.ljust(7).colorize(stat_color(label))
|
21
|
+
chart = bar(value, max, stat_color(label))
|
22
|
+
of = "/#{max.to_i}".colorize(:light_black)
|
23
|
+
numeric = "#{value.to_i}#{of}".rjust(10)
|
24
|
+
"#{description} #{chart} #{numeric}"
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'rumoji'
|
2
|
+
require 'rumoji/erase'
|
3
|
+
|
4
|
+
module Hab
|
5
|
+
|
6
|
+
module Formatter
|
7
|
+
|
8
|
+
require 'hab/formatter/colors'
|
9
|
+
require 'hab/formatter/graph'
|
10
|
+
|
11
|
+
module ClassMethods
|
12
|
+
|
13
|
+
def status(user)
|
14
|
+
stats = user.stats
|
15
|
+
dailies = user.tasks.dailies
|
16
|
+
todos = user.tasks.todos
|
17
|
+
dailies_complete_count = dailies.count(&:completed?)
|
18
|
+
todos_complete_count = todos.count(&:completed?)
|
19
|
+
<<-BLOCK
|
20
|
+
#{statbar(:HP, stats.hp, stats.max_health)}
|
21
|
+
#{statbar(:EXP, stats.exp, stats.to_next_level)}
|
22
|
+
#{statbar(:MP, stats.mp, stats.max_mp)}
|
23
|
+
#{statbar(:DAILIES, dailies_complete_count, dailies.count)}
|
24
|
+
#{statbar(:TODOS, todos_complete_count, todos.count)}
|
25
|
+
BLOCK
|
26
|
+
end
|
27
|
+
|
28
|
+
def stats(stats)
|
29
|
+
<<-BLOCK
|
30
|
+
HP #{stats.hp}
|
31
|
+
MAX_HP #{stats.max_health}
|
32
|
+
MP #{stats.mp}
|
33
|
+
MAX_MP #{stats.max_mp}
|
34
|
+
EXP #{stats.exp}
|
35
|
+
TO_NEXT_LEVEL #{stats.to_next_level}
|
36
|
+
PER #{stats.per}
|
37
|
+
INT #{stats.int}
|
38
|
+
CON #{stats.con}
|
39
|
+
STR #{stats.str}
|
40
|
+
LVL #{stats.lvl}
|
41
|
+
GP #{stats.gp}
|
42
|
+
BLOCK
|
43
|
+
end
|
44
|
+
|
45
|
+
def tasks(tasks, options = {})
|
46
|
+
tasks.map { |task| task(task, options) }.join("\n")
|
47
|
+
end
|
48
|
+
|
49
|
+
def task(task, options = {})
|
50
|
+
if options[:emoji] == true
|
51
|
+
Rumoji
|
52
|
+
.decode(task.text)
|
53
|
+
.colorize(value_color(task.value))
|
54
|
+
else
|
55
|
+
Rumoji
|
56
|
+
.erase(task.text)
|
57
|
+
.gsub(/\ \ /, ' ')
|
58
|
+
.strip
|
59
|
+
.colorize(value_color(task.value))
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
extend Colors
|
67
|
+
extend Graph
|
68
|
+
extend ClassMethods
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
data/lib/hab/version.rb
ADDED
data/lib/hab.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'commander'
|
3
|
+
require 'habit_client'
|
4
|
+
|
5
|
+
module Hab
|
6
|
+
require 'hab/version'
|
7
|
+
require 'hab/config'
|
8
|
+
require 'hab/filter'
|
9
|
+
require 'hab/formatter'
|
10
|
+
|
11
|
+
def self.config
|
12
|
+
@@config ||= Config.new
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.client
|
16
|
+
@@client ||= HabitClient.new(config.user_id, config.api_token)
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.status
|
20
|
+
Formatter.status(client.user)
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.stats
|
24
|
+
Formatter.stats(client.user.stats)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.add_task(task, type)
|
28
|
+
client.user.tasks.create({
|
29
|
+
text: task,
|
30
|
+
type: type
|
31
|
+
})
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.add_tasks(tasks, type)
|
35
|
+
tasks.each do |task|
|
36
|
+
self.add_task(task, type)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.stdin_tasks
|
41
|
+
!STDIN.tty? ? STDIN.read.split("\n") : []
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.habits(options)
|
45
|
+
Formatter.tasks(client.user.tasks.habits, emoji: options.emoji)
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
def self.dailies(options)
|
50
|
+
tasks = Filter.by_status(client.user.tasks.dailies,
|
51
|
+
options)
|
52
|
+
|
53
|
+
Formatter.tasks(tasks, emoji: options.emoji)
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.todos(options)
|
57
|
+
tasks = Filter.by_status(client.user.tasks.todos,
|
58
|
+
options)
|
59
|
+
|
60
|
+
Formatter.tasks(tasks, emoji: options.emoji)
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
data/lib/rumoji/erase.rb
ADDED
metadata
ADDED
@@ -0,0 +1,216 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hab
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.6
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Stephen Mckellar
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-07-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.7'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.2'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.2'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: webmock
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.2'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.2'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: vcr
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '2.9'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '2.9'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.10'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.10'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.32'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.32'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: habit_client
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.0.6
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.0.6
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rumoji
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0.4'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0.4'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: colorize
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0.7'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0.7'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: commander
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '4.3'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '4.3'
|
167
|
+
description:
|
168
|
+
email:
|
169
|
+
- stephen@thingmaker.io
|
170
|
+
executables:
|
171
|
+
- hab
|
172
|
+
extensions: []
|
173
|
+
extra_rdoc_files: []
|
174
|
+
files:
|
175
|
+
- ".gitignore"
|
176
|
+
- ".rubocop.yml"
|
177
|
+
- ".ruby-version"
|
178
|
+
- Gemfile
|
179
|
+
- LICENSE.txt
|
180
|
+
- README.md
|
181
|
+
- Rakefile
|
182
|
+
- bin/hab
|
183
|
+
- hab.gemspec
|
184
|
+
- lib/hab.rb
|
185
|
+
- lib/hab/config.rb
|
186
|
+
- lib/hab/filter.rb
|
187
|
+
- lib/hab/formatter.rb
|
188
|
+
- lib/hab/formatter/colors.rb
|
189
|
+
- lib/hab/formatter/graph.rb
|
190
|
+
- lib/hab/version.rb
|
191
|
+
- lib/rumoji/erase.rb
|
192
|
+
homepage: ''
|
193
|
+
licenses:
|
194
|
+
- MIT
|
195
|
+
metadata: {}
|
196
|
+
post_install_message:
|
197
|
+
rdoc_options: []
|
198
|
+
require_paths:
|
199
|
+
- lib
|
200
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
201
|
+
requirements:
|
202
|
+
- - ">="
|
203
|
+
- !ruby/object:Gem::Version
|
204
|
+
version: '0'
|
205
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - ">="
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: '0'
|
210
|
+
requirements: []
|
211
|
+
rubyforge_project:
|
212
|
+
rubygems_version: 2.2.2
|
213
|
+
signing_key:
|
214
|
+
specification_version: 4
|
215
|
+
summary: A command line interface for Habitica
|
216
|
+
test_files: []
|