idonethis-cli 0.15.0 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4182a64e9826e779a203b440d80d91188790b8b6
4
- data.tar.gz: 58c4a1a481ab51baf479e9033b2f907b5b60e079
3
+ metadata.gz: 246f3b44c2ed5428e74baaedcaa1ffed8c70b9f7
4
+ data.tar.gz: 5d58699bef08ac1736ee8f014fd9f17adb747713
5
5
  SHA512:
6
- metadata.gz: 0f7e9fadd484284850ce58f3c7e78e2f94a6f4a5ba3bca2a05dba74b7c14409bebf47bbf3ec3228b7497f0435722b719b7acdacc42d6f88aecb2241c1dcaadff
7
- data.tar.gz: 81db5e4f8f974311baa133f9affa5dbae2051b983fcaecefe2fb95d09ef245286477ae33d31365227431bc342151319931d2eaa5992513e61b3d9054bc3649d5
6
+ metadata.gz: 84e598fada179d5c3f037b2387aec4a8da3c1677099cbd9acc6e1bddaede82c71bbe44dcba349bf24bcb162433de5dd0d67ce3ce9022afd26de261ae6a07b140
7
+ data.tar.gz: 23ce96df5e21529fc9c1d14278d61c67f2999dd70a8b4e4d9aeebca448c4d229496dbd7ba848276ad0266344eae31fe356ea7ca9441be8a04ae3ff2e678c4885
data/README.md CHANGED
@@ -42,10 +42,19 @@ You can also list dones for the past week:
42
42
  $ idonethis list week
43
43
  ```
44
44
 
45
+ Dones are ordered by done date just like the GUI.
46
+
45
47
  ### Add done
46
48
 
47
49
  ```
48
- $ bin/idonethis new -m "Ricky Bizzness"
50
+ $ idonethis new -m "Ricky Bizzness"
51
+ ```
52
+
53
+ #### Add done with date
54
+
55
+ ```
56
+ idonethis new -m "Dorris's birthday" --date 29-Sep-2015
57
+
49
58
  ```
50
59
 
51
60
  ### Choose team
data/bin/idonethis CHANGED
@@ -1,13 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- gemfile_path = File.join(File.dirname(File.dirname(__FILE__)), "Gemfile")
4
-
5
- ENV["BUNDLE_GEMFILE"] = gemfile_path
3
+ $:.unshift File.join(File.dirname(File.dirname(__FILE__)), "lib")
6
4
 
7
5
  require "rubygems"
8
- require "bundler/setup"
9
- require "idonethis"
10
-
11
- Bundler.require(:default)
6
+ require File.join(File.dirname(File.dirname(__FILE__)), "lib", "idonethis")
12
7
 
13
8
  Idonethis::Adapters::Cli.run ARGV
@@ -1,17 +1,19 @@
1
1
  module Idonethis::Adapters
2
2
  module Git
3
3
  class << self
4
- def commits(dir, since)
4
+ def commits(dir, since, how_many = 1000)
5
5
  require 'git'
6
-
6
+
7
7
  since_when = case since
8
8
  when 'yesterday'
9
- '1am yesterday'
9
+ '1am yesterday'
10
+ when 'today'
11
+ '1am'
10
12
  else
11
- '1am'
13
+ since
12
14
  end
13
-
14
- ::Git.open(dir).log.since(since_when)
15
+
16
+ ::Git.open(dir).log(how_many).since(since_when)
15
17
  end
16
18
 
17
19
  def repo?(dir)
@@ -4,11 +4,15 @@ module Idonethis::Adapters
4
4
  require 'restclient'
5
5
 
6
6
  def get(url, headers = {}, body = {})
7
- RestClient.get(url, headers)
7
+ RestClient.get(url, headers) do |response, _, __|
8
+ response
9
+ end
8
10
  end
9
11
 
10
12
  def post(url, headers = {}, body = {})
11
- RestClient.post(url, body, headers)
13
+ RestClient.post(url, body, headers) do |response, _, __|
14
+ response
15
+ end
12
16
  end
13
17
  end
14
18
  end
@@ -0,0 +1,19 @@
1
+ module Calendar
2
+ class << self
3
+ def today
4
+ Time.now
5
+ end
6
+
7
+ def yesterday
8
+ Time.now - one_day_in_seconds
9
+ end
10
+
11
+ def day_string(time)
12
+ time.strftime("%F")
13
+ end
14
+
15
+ private
16
+
17
+ def one_day_in_seconds; (60 * 60 * 24); end
18
+ end
19
+ end
@@ -1,5 +1,5 @@
1
1
  module Idonethis
2
2
  module Cli
3
- VERSION = "0.15.0"
3
+ VERSION = "0.19.0"
4
4
  end
5
5
  end
@@ -36,8 +36,12 @@ module Idonethis::UseCases
36
36
  list: List.method(:apply),
37
37
  new: New.method(:apply),
38
38
  config: Config.method(:apply),
39
- git: ->(_, args) { Git.apply(_, args.merge(git: adapters[:git], view: ->(msg) { puts msg }, fs: adapters[:fs]))},
40
- help: ->(credential, args) { puts "TODO: implement help" }
39
+ git: ->(_, args) { Git.apply(args.merge(git: adapters[:git], view: ->(msg) { puts msg }, fs: adapters[:fs]))},
40
+ help: ->(credential, args) do
41
+ puts ""
42
+ puts "Usage:\n\n"
43
+ puts %Q{idonethis #{New.usage}}
44
+ end
41
45
  }
42
46
 
43
47
  if command == :list && opts.include?("teams")
@@ -1,7 +1,7 @@
1
1
  module Idonethis::UseCases
2
2
  module Git
3
3
  class << self
4
- def apply(_, args={})
4
+ def apply(args={})
5
5
  log = args[:log] || fail("You need to supply :log adapter")
6
6
  git = args[:git] || fail("You need to supply :git adapter")
7
7
  view = args[:view] || fail("You need to supply :view adapter")
@@ -1,8 +1,8 @@
1
- module Idonethis::UseCases
1
+ module Idonethis::UseCases
2
2
  module New
3
3
  class << self
4
4
  def apply(credential, args={})
5
- log = args[:log] || fail("You need to supply :internet adapter")
5
+ log = args[:log] || fail("You need to supply :internet adapter")
6
6
  internet = args[:internet] || fail("You need to supply :internet adapter")
7
7
  team = args[:team]
8
8
  date = args[:date]
@@ -15,8 +15,11 @@ module Idonethis::UseCases
15
15
  "team" => (team || credential[:team])
16
16
  }
17
17
 
18
- body = body.merge({"done_date" => Time.parse(date).strftime("%F")}) if date
19
-
18
+ if date
19
+ date = Calendar.yesterday.to_s if date == 'yesterday'
20
+ body = body.merge({"done_date" => Calendar.day_string(Time.parse(date))})
21
+ end
22
+
20
23
  log.call body
21
24
 
22
25
  parse internet.post(
@@ -25,12 +28,18 @@ module Idonethis::UseCases
25
28
  body
26
29
  )
27
30
  end
31
+
32
+ def usage
33
+ %Q{new -m "Birthday shopping + sushi lunch" --date 1-Oct-2015}
34
+ end
28
35
 
29
36
  private
30
37
 
31
38
  def parse(reply)
32
39
  require 'json'
33
40
 
41
+ fail reply.body unless reply.code == 201
42
+
34
43
  JSON.parse(reply.body)
35
44
  end
36
45
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: idonethis-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Biddington
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-02 00:00:00.000000000 Z
11
+ date: 2016-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -105,6 +105,7 @@ files:
105
105
  - lib/adapters/settings.rb
106
106
  - lib/adapters/views/cli.rb
107
107
  - lib/idonethis.rb
108
+ - lib/idonethis/calendar.rb
108
109
  - lib/idonethis/cli/version.rb
109
110
  - lib/idonethis/index.rb
110
111
  - lib/idonethis/settings_file.rb
@@ -136,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
137
  version: '0'
137
138
  requirements: []
138
139
  rubyforge_project:
139
- rubygems_version: 2.4.8
140
+ rubygems_version: 2.4.6
140
141
  signing_key:
141
142
  specification_version: 4
142
143
  summary: Command line interface for idonethis