frecli 0.4.0 → 0.5.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: 16f3a566c8afc7aab09f9214e42ac57d5ab0e247
4
- data.tar.gz: 6e49c3f9e9b561da01918ac677e1f5e36dffd7d2
3
+ metadata.gz: 2fe84c1433f41e5e4736bc1c7776edc5bb2b17cf
4
+ data.tar.gz: 04563a9b90938cba2819463b57efbab0a4a260f3
5
5
  SHA512:
6
- metadata.gz: a14af37475312f06d8582ca8997616099ec3f2feb3c340140a3e88ec3ad61f920d46fb6400c0b6bc395bacd032d7583dc9ea955cb0955b7a46bda4f1eb40d91d
7
- data.tar.gz: 5bd67c5fc7417e1ea33188eaf04007fa12962eab01529d84e98a850d7a438d880dd4b6d9e026222580c99488fcc0d253352fdbd58a11917d662ce9d302843c6a
6
+ metadata.gz: 82c2461a4827035bc704507b8c378682a41f56bdd7a4886d69aa2c4bc53d206c9a39744dae5e15233238681ff50b3ea62be006eddb88185af0e22de937ee9325
7
+ data.tar.gz: 3c7c3275c098a78525c05f5d134190643ebeeaf74716121f2adcb1b95573e67b01576169408bf9bb2e7be2d3da29d0d2898c1d50d544a6a6682ca69579a61361
data/README.md CHANGED
@@ -18,9 +18,17 @@ Having said that, I do intend to implement considerably more features. Also note
18
18
 
19
19
  ## Commands
20
20
 
21
- ### `frecli time`
21
+ ### `frecli time project_name`
22
22
 
23
- Presents you with a list of projects. Simply enter the number of the project you'd like to time, and away you go.
23
+ Starts timing the specified project. Project name can be fuzzy.
24
+
25
+ e.g., to time a project named FreCLI:
26
+
27
+ ```
28
+ frecli time frecli
29
+ frecli time frec
30
+ frecli time fc
31
+ ```
24
32
 
25
33
  ### `frecli status`
26
34
 
@@ -37,8 +45,10 @@ Logs the current timer, adding a description if one is given.
37
45
 
38
46
  ## TODO
39
47
 
48
+ - ~~Project selection by name/alias/fuzzy~~
49
+ - Project list
40
50
  - Daily report (time logged, unlogged, total)
41
- - More specs
51
+ - More specs. I put this off in favour of having something usable.
42
52
  - Log timers of other projects
43
53
  - Deal with exceptions / errors
44
54
  - Project selection via settings
data/bin/frecli CHANGED
@@ -21,9 +21,12 @@ command :status do |c|
21
21
  end
22
22
 
23
23
  desc 'Times a project'
24
+ arg_name 'project_query'
24
25
  command :time do |c|
25
- c.action do
26
- Frecli::Cli.time
26
+ c.action do |_, _, args|
27
+ project_query = args.shift.to_s
28
+
29
+ Frecli::Cli.time(project_query)
27
30
  end
28
31
  end
29
32
 
data/lib/frecli/cli.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'fuzzy_match'
2
+
1
3
  class Frecli
2
4
  module Cli
3
5
  def self.status
@@ -10,26 +12,11 @@ class Frecli
10
12
  end
11
13
  end
12
14
 
13
- def self.time
14
- projects = Frecli.projects.sort { |x, y| x.name <=> y.name }
15
-
16
- puts "Select a project to time:\n\n"
17
-
18
- projects.each_with_index do |project, i|
19
- puts "[#{i + 1}] #{project.name}"
20
- end
21
-
22
- print "\n\nProject: "
23
-
24
- selection = STDIN.gets.chomp.to_i
25
-
26
- unless (1..projects.count).include? selection
27
- puts "Project invalid."
28
-
29
- return
30
- end
15
+ def self.time(project_query)
16
+ project = FuzzyMatch
17
+ .new(Frecli.projects, read: :name)
18
+ .find(project_query)
31
19
 
32
- project = projects[selection - 1]
33
20
  timer = Frecli.timer_start(project)
34
21
 
35
22
  puts "Now timing #{project.name} (#{timer.formatted_time})."
@@ -1,3 +1,3 @@
1
1
  class Frecli
2
- VERSION = '0.4.0'
2
+ VERSION = '0.5.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frecli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamie Schembri
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-26 00:00:00.000000000 Z
11
+ date: 2016-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 0.1.6
139
+ - !ruby/object:Gem::Dependency
140
+ name: fuzzy_match
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 2.1.0
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 2.1.0
139
153
  description:
140
154
  email: jamie@schembri.me
141
155
  executables: