working_man 0.0.6 → 0.1.1

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.
data/bin/working_man CHANGED
@@ -8,9 +8,8 @@ include Methadone::Main
8
8
  include Methadone::CLILogging
9
9
 
10
10
  main do |run_type|
11
- # your program code here
12
- # You can access CLI options via
13
- # the options Hash
11
+ check_config!
12
+
14
13
  case run_type
15
14
  when "start"
16
15
  WorkingMan.start_work
@@ -19,12 +18,52 @@ main do |run_type|
19
18
  end
20
19
  end
21
20
 
22
- # supplemental methods here
21
+ # Internal: Checks for a configuration file. If one is not found, message
22
+ # is printed to the console and system exits with status code "1"
23
+ #
24
+ # Examples:
25
+ #
26
+ # check_config!
27
+ #
28
+ # Returns true if everything passes
29
+ def check_config!
30
+ config_path = File.expand_path('~/.working_man.yml')
31
+
32
+ if File.exists?(config_path)
33
+ check_config_format(config_path)
34
+ return true
35
+ else
36
+ puts "No configuration found. Please configure which apps to start in #{config_path}"
37
+ exit 1
38
+ end
39
+ end
23
40
 
24
- # Declare command-line interface here
41
+ # Internal: Checks the format of the configuration file. If the configuration
42
+ # is blank, exits with status "2". If there are no apps, exits with status "3"
43
+ # If there are no URLs, prints a warning but continues with execution.
25
44
  #
26
- description "WorkingMan starts and stops your work day"
45
+ # Examples:
27
46
  #
47
+ # check_config_format(config_path)
48
+ #
49
+ # Returns true if everything passes
50
+ def check_config_format(config_path)
51
+ $config = YAML::load(File.open(config_path))
52
+
53
+ if !$config
54
+ p "Nothing in configuration. Exiting..."
55
+ exit 2
56
+ elsif !$config['apps']
57
+ p "No applications in configuration. Exiting..."
58
+ exit 2
59
+ elsif !$config['urls']
60
+ p "WARN: No URLs in configuration"
61
+ return true
62
+ end
63
+ end
64
+
65
+ description "WorkingMan starts and stops your work day"
66
+
28
67
  # Require run_type
29
68
  arg :run_type, "'start' or 'stop' your work day"
30
69
 
@@ -24,17 +24,6 @@ Scenario: Start work successfully with app and url
24
24
  And I run `working_man start`
25
25
  Then the output should contain "Work hard today"
26
26
  And the exit status should be 0
27
-
28
- Scenario: Start work successfully with app and no url
29
- Given a file named "/tmp/fakehome/.working_man.yml" with:
30
- """
31
- apps:
32
- - 'Twitter'
33
- urls:
34
- """
35
- And I run `working_man start`
36
- Then the output should contain "Work hard today"
37
- And the exit status should be 0
38
27
 
39
28
  Scenario: Start work unsuccessfully without any apps
40
29
  Given a file named "/tmp/fakehome/.working_man.yml" with:
@@ -1,3 +1,3 @@
1
1
  module WorkingMan
2
- VERSION = "0.0.6"
2
+ VERSION = "0.1.1"
3
3
  end
data/lib/working_man.rb CHANGED
@@ -4,7 +4,7 @@ require "working_man/actions"
4
4
 
5
5
  module WorkingMan
6
6
  # Internal: Starts work day by calling WorkingMan::Actions#launch_applications,
7
- # iterating through each app in @config['apps']. It exits if there are no
7
+ # iterating through each app in $config['apps']. It exits if there are no
8
8
  # applications with error code 2. If there are no URLs, the program finishes
9
9
  # successfully.
10
10
  #
@@ -12,48 +12,25 @@ module WorkingMan
12
12
  #
13
13
  # WorkingMan.start_work
14
14
  def self.start_work
15
- if File.exists?(File.expand_path('~/.working_man.yml'))
16
- @config = YAML::load(File.open(File.expand_path('~/.working_man.yml')))
17
- print "Starting work...\n"
18
- begin
19
- WorkingMan::Actions.launch_applications(@config['apps'])
20
- rescue NoMethodError
21
- p "No applications in configuration"
22
- exit(2)
23
- end
24
-
25
- begin
26
- WorkingMan::Actions.open_urls(@config['urls'])
27
- rescue NoMethodError
28
- end
29
- print "Work hard today!\n"
30
- return true
31
- else
32
- puts "No configuration found. Please configure which apps to start in ~/.working_man.yml."
33
- exit(1)
34
- end
15
+ print "Starting work...\n"
16
+
17
+ WorkingMan::Actions.launch_applications($config['apps'])
18
+ WorkingMan::Actions.open_urls($config['urls'])
19
+
20
+ print "Work hard today!\n"
35
21
  end
36
22
 
37
- # Internal: Stop work iterates through the apps in @config['apps'], stopping
23
+ # Internal: Stop work iterates through the apps in $config['apps'], stopping
38
24
  # each one
39
25
  #
40
26
  # Examples:
41
27
  #
42
28
  # WorkingMan.stop_work
43
29
  def self.stop_work
44
- if File.exists?(File.expand_path('~/.working_man.yml'))
45
- @config = YAML::load(File.open(File.expand_path('~/.working_man.yml')))
46
- print "Stopping work...\n"
47
- begin
48
- WorkingMan::Actions.close_applications(@config['apps'])
49
- rescue NoMethodError
50
- p "No applications in configuration"
51
- exit(2)
52
- end
53
- print "Have a great day!\n"
54
- else
55
- puts "No configuration found. Please configure which apps to start in ~/.working_man.yml."
56
- exit(1)
57
- end
30
+ print "Stopping work...\n"
31
+
32
+ WorkingMan::Actions.close_applications($config['apps'])
33
+
34
+ print "Have a great day!\n"
58
35
  end
59
36
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: working_man
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-05 00:00:00.000000000 Z
12
+ date: 2012-05-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdoc