habitica_cli 0.1.1 → 1.0.0
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 +4 -4
- data/.rubocop.yml +2 -0
- data/.ruby-version +1 -1
- data/.travis.yml +2 -1
- data/README.md +4 -0
- data/habitica-cli.gemspec +1 -0
- data/lib/habitica_cli/config.rb +40 -0
- data/lib/habitica_cli/main.rb +19 -15
- data/lib/habitica_cli/version.rb +1 -1
- data/lib/habitica_cli.rb +4 -0
- metadata +19 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b47aa3252682b4f60c627064a8567c78e67db09b
|
4
|
+
data.tar.gz: 1e316b12c7cd6891e401b3003b3776e9e7af8eb7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a6863a0481d6a0638444ef6e46dff00c446c565d376d64fd9d41a4df86c7c638886ee7c536448e617d6af5e675f337b1f0b32ce4e0735a1a89200c5c5efef6b
|
7
|
+
data.tar.gz: 353a4a302d88affca9f2d4e355fe9ef4e582f913b28b6e91727a2552d8157a1730e84c507aee4cdc6b8b650ae8a947609937c2eaf2887e4cb98c81851b59446c
|
data/.rubocop.yml
ADDED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.3.0
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -13,6 +13,10 @@ The cli needs your habitica user id and api key. You can configure these via the
|
|
13
13
|
|
14
14
|
- Setting/Exporting `HABIT_USER` and `HABIT_KEY` in your environment
|
15
15
|
- Using the `--habit-user` and `--habit-key` flags e.g. `habitica list --habit-user='user-id' --habit-key='user-api-key'`
|
16
|
+
- Creating a YAML file with `habit_user: <your user id>` and `habit_key: <your key>` at:
|
17
|
+
- osx: `~/Library/Preferencs/habitica_cli-ruby/config.yml`
|
18
|
+
- nix: `~/.config/habitica_cli-ruby/config.yml`
|
19
|
+
- windows: `~\AppData\Local\Config\habitica_cli-ruby\config.yml`
|
16
20
|
|
17
21
|
```shell
|
18
22
|
habitica <command> <action>
|
data/habitica-cli.gemspec
CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_dependency 'faraday', '~> 0.9.2'
|
22
22
|
spec.add_dependency 'faraday_middleware', '~> 0.10.0'
|
23
23
|
spec.add_dependency 'thor', '~> 0.19.1'
|
24
|
+
spec.add_dependency 'kefir', '~> 1.0.1'
|
24
25
|
|
25
26
|
spec.add_development_dependency 'bundler', '~> 1.7'
|
26
27
|
spec.add_development_dependency 'rake', '~> 10.0'
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module HabiticaCli
|
2
|
+
# Handles basic configuration parsing
|
3
|
+
# and interacts with Kefir for config storage
|
4
|
+
class Config
|
5
|
+
def initialize(cli_options)
|
6
|
+
@options = cli_options
|
7
|
+
@config = Kefir.config('habitica_cli')
|
8
|
+
end
|
9
|
+
|
10
|
+
def user_and_api_key
|
11
|
+
config = Kefir.config('habitica_cli')
|
12
|
+
habit_user, habit_key = @options.values_at(:habit_user, :habit_key)
|
13
|
+
|
14
|
+
if blank?(habit_user) || blank?(habit_key)
|
15
|
+
habit_user = config.get('habit_user')
|
16
|
+
habit_key = config.get('habit_key')
|
17
|
+
end
|
18
|
+
|
19
|
+
[habit_user, habit_key]
|
20
|
+
end
|
21
|
+
|
22
|
+
def usage
|
23
|
+
<<-ERR
|
24
|
+
**Error**: You must provide a habit user and api key
|
25
|
+
Do this via:
|
26
|
+
- adding `habit_user` and `habit_key` to #{@config.path}
|
27
|
+
- setting HABIT_USER and HABIT_KEY in your shell
|
28
|
+
- passing --habit_user --habit_key
|
29
|
+
ERR
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def blank?(obj)
|
35
|
+
# rubocop:disable Style/DoubleNegation
|
36
|
+
obj.respond_to?(:empty?) ? !!obj.empty? : !obj
|
37
|
+
# rubocop:enable Style/DoubleNegation
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/habitica_cli/main.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
|
-
require 'ostruct'
|
2
|
-
|
3
1
|
module HabiticaCli
|
4
2
|
# At the moment this holds _all_ tasks
|
5
3
|
# until we can figure out a better way to split
|
6
4
|
# out top level tasks into individual files
|
7
|
-
# (thor's DSL makes that a little bit of a chore
|
5
|
+
# (thor's DSL makes that a little bit of a chore)
|
8
6
|
class Main < Thor
|
9
|
-
|
10
|
-
class_option :
|
7
|
+
# rubocop:disable Metrics/LineLength
|
8
|
+
class_option :habit_user, hide: true, aliases: '--habit-user', default: ENV['HABIT_USER']
|
9
|
+
class_option :habit_key, hide: true, aliases: '--habit-key', default: ENV['HABIT_KEY']
|
10
|
+
# rubocop:enable Metrics/LineLength
|
11
11
|
|
12
12
|
def initialize(*args)
|
13
13
|
super(*args)
|
14
|
-
@api = api
|
15
14
|
@cache = cache
|
16
15
|
@options = options
|
16
|
+
@api = configure_api
|
17
17
|
end
|
18
18
|
|
19
19
|
# TODO: consider using this inside display instead of select
|
@@ -53,17 +53,21 @@ module HabiticaCli
|
|
53
53
|
)
|
54
54
|
end
|
55
55
|
|
56
|
-
def
|
57
|
-
|
58
|
-
|
56
|
+
def configure_api
|
57
|
+
config = Config.new(@options)
|
58
|
+
user, key = config.user_and_api_key
|
59
59
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
fail "You must provide a habit user and api key \n\n do this via (HABIT_USER and HABIT_KEY) or the --habit_user --habit_key" # rubocop:disable Metrics/LineLength
|
60
|
+
if user.nil? || key.nil?
|
61
|
+
help
|
62
|
+
puts config.usage
|
63
|
+
exit 1
|
65
64
|
end
|
66
|
-
|
65
|
+
|
66
|
+
@api = Api.new(user, key)
|
67
|
+
end
|
68
|
+
|
69
|
+
def cache
|
70
|
+
@cache ||= Cache.new
|
67
71
|
end
|
68
72
|
end
|
69
73
|
end
|
data/lib/habitica_cli/version.rb
CHANGED
data/lib/habitica_cli.rb
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
require 'thor'
|
2
|
+
require 'ostruct'
|
2
3
|
require 'pstore'
|
4
|
+
require 'ostruct'
|
5
|
+
require 'kefir'
|
3
6
|
require 'faraday'
|
4
7
|
require 'faraday_middleware'
|
5
8
|
require 'habitica_cli/version'
|
9
|
+
require 'habitica_cli/config'
|
6
10
|
require 'habitica_cli/main'
|
7
11
|
require 'habitica_cli/api'
|
8
12
|
require 'habitica_cli/commands/shared'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: habitica_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Tomlin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
11
|
+
date: 2016-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.19.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: kefir
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.0.1
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.0.1
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: bundler
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -152,6 +166,7 @@ extra_rdoc_files: []
|
|
152
166
|
files:
|
153
167
|
- ".gitignore"
|
154
168
|
- ".rspec"
|
169
|
+
- ".rubocop.yml"
|
155
170
|
- ".ruby-version"
|
156
171
|
- ".travis.yml"
|
157
172
|
- Gemfile
|
@@ -169,6 +184,7 @@ files:
|
|
169
184
|
- lib/habitica_cli/commands/list.rb
|
170
185
|
- lib/habitica_cli/commands/shared.rb
|
171
186
|
- lib/habitica_cli/commands/status.rb
|
187
|
+
- lib/habitica_cli/config.rb
|
172
188
|
- lib/habitica_cli/constants.rb
|
173
189
|
- lib/habitica_cli/main.rb
|
174
190
|
- lib/habitica_cli/version.rb
|
@@ -197,7 +213,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
197
213
|
version: '0'
|
198
214
|
requirements: []
|
199
215
|
rubyforge_project:
|
200
|
-
rubygems_version: 2.
|
216
|
+
rubygems_version: 2.6.7
|
201
217
|
signing_key:
|
202
218
|
specification_version: 4
|
203
219
|
summary: A minimal CLI for habitica
|