idonethis-cli 0.15.0 → 0.19.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 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