beeminder 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/TODO +1 -1
  2. data/bin/beemind +21 -10
  3. data/lib/beeminder/version.rb +1 -1
  4. metadata +3 -3
data/TODO CHANGED
@@ -1,6 +1,6 @@
1
1
  * TODO [3/5]
2
2
  - [X] document code
3
- - [ ] handle oauth tokens?
3
+ - [ ] use token to identify user, remove name argument
4
4
  - [X] beemind binary
5
5
  - [X] implement actual API calls
6
6
  - [ ] add a few more sanity checks
data/bin/beemind CHANGED
@@ -20,31 +20,42 @@ usage = "usage: beemind goal value [comment]"
20
20
  opts = Trollop::options do
21
21
  banner usage
22
22
 
23
- opt :config, "Path to config.", :type => :string, :default => "~/.beeminderrc"
24
- opt :list, "List all available goals."
23
+ opt :config, "Path to config.", :type => :string, :default => "~/.beeminderrc"
24
+ opt :list, "List all available goals."
25
+ opt :user, "Beeminder account. (Optional. If not given, reads config or asks for it.)", :type => :string
26
+ opt :token, "Auth token. (Optional. If not given, reads config or asks for it.)", :type => :string
27
+ opt :no_config, "Don't write name / token to config file. (Implied with --user or --token.)"
25
28
  end
26
29
 
27
30
  Trollop::die usage if not (2..3).include?(ARGV.size) and not opts[:list]
28
31
  goal, value, comment = ARGV unless opts[:list]
29
32
 
30
33
  opts[:config] = File.expand_path opts[:config]
34
+ opts[:no_config] = true if opts[:user] or opts[:token]
31
35
 
32
- if not File.exists? opts[:config]
33
- # create config
36
+ if File.exists? opts[:config]
37
+ # read config to fill in the gaps
38
+ auth = YAML.load File.open(opts[:config]) || {}
39
+ opts[:user] ||= auth["user"]
40
+ opts[:token] ||= auth["token"]
41
+ end
42
+
43
+ # ask for missing data
44
+ opts[:user] ||= ask("Beeminder account:")
45
+ opts[:token] ||= ask("Auth token:")
46
+
47
+ unless opts[:no_config]
34
48
  auth = {
35
- "account" => ask("Beeminder account:"),
36
- "token" => ask("Auth token:")
49
+ "user" => opts[:user],
50
+ "token" => opts[:token]
37
51
  }
38
52
  File.open(opts[:config], "w+") {|f| YAML.dump auth, f}
39
53
  File.chmod 0600, opts[:config]
40
54
  puts "Written config to '#{opts[:config]}.'"
41
55
  end
42
56
 
43
- # load config
44
- auth = YAML.load File.open(opts[:config])
45
-
46
57
  # login
47
- bee = Beeminder::User.new auth["account"], auth["token"]
58
+ bee = Beeminder::User.new opts[:user], opts[:token]
48
59
 
49
60
  if opts[:list]
50
61
  # list all available goals
@@ -1,3 +1,3 @@
1
1
  module Beeminder
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beeminder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -93,7 +93,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
93
93
  version: '0'
94
94
  segments:
95
95
  - 0
96
- hash: 4159352450891138468
96
+ hash: -231839000410159505
97
97
  required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  none: false
99
99
  requirements:
@@ -102,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
102
  version: '0'
103
103
  segments:
104
104
  - 0
105
- hash: 4159352450891138468
105
+ hash: -231839000410159505
106
106
  requirements: []
107
107
  rubyforge_project:
108
108
  rubygems_version: 1.8.23