frecli 0.4.0 → 0.5.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: 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: