speedflow 0.3.0 → 0.3.2

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: 0917a8d9f55cf6d722cbf1819dca1acf62d41262
4
- data.tar.gz: d48c35ef4a5970b059a9d7b042100ce1bac65921
3
+ metadata.gz: 8d413c3a17a899e968628efd0384146168ec0aaa
4
+ data.tar.gz: 8fd189ddacc5df83366167350c3067e64445922d
5
5
  SHA512:
6
- metadata.gz: 2797aaa19a525241bf15896d817f4a5c0f3f5b9fc275069590b866f35750e92e67e1906268485d88393be70e9bad117d0fb274f3364c5ed3995c852f058f87e2
7
- data.tar.gz: a24938e6ed76a465575956ac154f2f73acef4714b9e64f95c8559943f5edda878baa2a845c2a1beddbb0e2837b80777aed15cf121f2edcd6e9b462203e3839b9
6
+ metadata.gz: b0df3efbcafd6374dc1891ba69698d16536a6c3003b55deaee9d55244a3637619f731897e4ab42ffff8b5a8bd6349cdcba7738f89858100d090c3c1832ef8a84
7
+ data.tar.gz: 0767fae862569b343a63468f0a505e78209a528ea2a67a9529e1b05ec0e060090ab5b353c5c0ef0cdd27c00b55f8d08c3fb0992a131fff98c4557c9d382995c4
data/bin/sf ADDED
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+ STDOUT.sync = true
3
+
4
+ require 'mercenary'
5
+ require 'speedflow'
6
+
7
+ # Kill exiting error
8
+ Signal.trap('SIGINT') { exit 130 }
9
+
10
+ # Speedflow program
11
+ Mercenary.program(:speedflow) do |program|
12
+ program.version Speedflow::VERSION
13
+ program.description 'Speedflow is a CLI to help you to keep your time.'
14
+ program.syntax "speedflow [OPTIONS] COMMAND [arg...]\n" \
15
+ ' speedflow [ --help | -v | --version | --trace ]'
16
+ program.option(
17
+ 'config',
18
+ '-c FILE1[,FILE2[,FILE3...]]',
19
+ '--config FILE1[,FILE2[,FILE3...]]',
20
+ Array,
21
+ 'Custom configuration file')
22
+
23
+ # program.logger(Logger::DEBUG)
24
+
25
+ Speedflow::Command.subclasses.each { |c| c.init_with_program(program) }
26
+
27
+ program.default_command(:help)
28
+ end
@@ -53,14 +53,14 @@ module Speedflow
53
53
  # Returns nothing.
54
54
  def process_trigger(trigger, config, options)
55
55
  flow = Speedflow::Flow.new(config)
56
- begin
57
- flow.trigger(trigger, options)
58
- success "Trigger '#{trigger}' successful"
59
- rescue FlowTriggerNotFound => exception
60
- error "Trigger '#{trigger}' error: #{exception.message}"
61
- rescue Plugin::PluginNotFound => exception
62
- error "Plugin error: #{exception.message}"
63
- end
56
+ flow.trigger(trigger, options)
57
+ success "Trigger '#{trigger}' successful"
58
+ rescue FlowTriggerNotFound => exception
59
+ error "Trigger '#{trigger}' error: #{exception.message}"
60
+ rescue Plugin::PluginNotFound => exception
61
+ error "Plugin error: #{exception.message}"
62
+ rescue Plugin::PluginActionNotFound => exception
63
+ error exception.message
64
64
  end
65
65
 
66
66
  # Add options from flow arguents.
@@ -12,7 +12,7 @@ module Speedflow
12
12
  #
13
13
  # Returns a Hash of config.
14
14
  def initialize(config)
15
- # TODO: v0.4: Reinforce the SOI.
15
+ # TODO: Reinforce the SOI.
16
16
  @config = config
17
17
  end
18
18
 
@@ -23,13 +23,13 @@ module Speedflow
23
23
  #
24
24
  # Returns nothing.
25
25
  def trigger(trigger, input)
26
- # TODO: v0.4: Change by: Configuration.not_empty_key?
27
- # TODO: v0.4: Move to this class: Flow.trigger?
26
+ # TODO: Change by: Configuration.not_empty_key?
27
+ # TODO: Move to this class: Flow.trigger?
28
28
  unless @config.flow_trigger?(trigger)
29
29
  raise FlowTriggerNotFound, "Unable to trigger: #{trigger}"
30
30
  end
31
31
 
32
- # TODO: v0.4: Move in a normal object tree: Flow > Trigger > Action
32
+ # TODO: Move in a normal object tree: Flow > Trigger > Action
33
33
  output_by_tag = {}
34
34
  output = {}
35
35
  @config['flow'][trigger.to_s].each do |step|
@@ -48,11 +48,11 @@ module Speedflow
48
48
  def trigger_step(step, input, output, output_by_tag)
49
49
  arguments = step['arguments'] || {}
50
50
 
51
- # TODO: v0.4: Move to a normal object: TriggerArgument
51
+ # TODO: Move to a normal object: TriggerArgument
52
52
  step['arguments'] = transform_arguments(arguments, output, input)
53
53
  step['arguments'] = add_config_argument(arguments)
54
54
 
55
- # TODO: v0.4: Move to a normal object: TriggerArgument
55
+ # TODO: Move to a normal object: TriggerArgument
56
56
  output = plugin_manager.action_from_step(step)
57
57
  output_by_tag[step['tag']] = output if step.key? 'tag'
58
58
 
@@ -61,7 +61,7 @@ module Speedflow
61
61
 
62
62
  # Public: Add config arguement
63
63
  #
64
- # TODO: v0.4: Move to a normal object: TriggerArgument
64
+ # TODO: Move to a normal object: TriggerArgument
65
65
  #
66
66
  # arguments - Hash of arguments.
67
67
  #
@@ -77,7 +77,7 @@ module Speedflow
77
77
 
78
78
  # Public: Transform arguments (to add value)
79
79
  #
80
- # TODO: v0.4: Move to a normal object: TriggerArgument
80
+ # TODO: Move to a normal object: TriggerArgument
81
81
  #
82
82
  # arguments - Hash of arguments.
83
83
  # prev_values - Hash of previous values.
@@ -91,7 +91,7 @@ module Speedflow
91
91
  arguments[arg_name]['value'] = ''
92
92
  if inputs.key?(arg_name)
93
93
  arguments[arg_name]['value'] = inputs[arg_name]
94
- elsif !arg_values.nil? && arg_values.key?('default')
94
+ elsif arg_values.is_a?(Hash) && arg_values.key?('default')
95
95
  arguments[arg_name]['value'] = arg_values['default']
96
96
  end
97
97
  end
@@ -99,7 +99,7 @@ module Speedflow
99
99
 
100
100
  # Public: Get flat arguments from flow.
101
101
  #
102
- # TODO: v0.4: Move to a normal object: TriggerArgument
102
+ # TODO: Move to a normal object: TriggerArgument
103
103
  #
104
104
  # Returns flat Array of arguments.
105
105
  def flat_arguments
@@ -1,6 +1,6 @@
1
1
  # Speedflow core
2
2
  module Speedflow
3
- # TODO: v0.4: Remove, use TTY::Prompt.
3
+ # TODO: Remove, use TTY::Prompt.
4
4
  require 'colorize'
5
5
  # Used to manage the output message
6
6
  module Message
@@ -4,7 +4,7 @@ module Speedflow
4
4
  # Used to manage the plugins
5
5
  class Manager
6
6
  include ActiveSupport::Inflector
7
- # TODO: V2: Remove underground prompt.
7
+ # TODO: Remove underground prompt.
8
8
  include Message
9
9
 
10
10
  PLUGIN_BASE = 'speedflow-plugin-'.freeze
@@ -80,12 +80,12 @@ module Speedflow
80
80
  plugin_name = plugin.class.name.split('::')[-2].downcase
81
81
  action_name = action_name.prepend('action_').underscore
82
82
 
83
- unless plugin.respond_to?(action_name) && plugin_name == 'test'
83
+ unless plugin.respond_to?(action_name)
84
84
  message = "Unable to call action: #{plugin_name}.#{action_name}"
85
85
  raise PluginActionNotFound, message
86
86
  end
87
87
 
88
- # TODO: v0.4: Remove underground prompt.
88
+ # TODO: Remove underground prompt.
89
89
  success "Run action '#{action_name}' of '#{plugin_name}' plugin."
90
90
 
91
91
  plugin.send action_name
@@ -95,7 +95,7 @@ module Speedflow
95
95
  #
96
96
  # plugin_name - Plugin name.
97
97
  #
98
- # TODO: v0.4: Create Utils::name_to_object method.
98
+ # TODO: Create Utils::name_to_object method.
99
99
  #
100
100
  # Returns Object.
101
101
  def plugin_object(plugin_name)
@@ -1,3 +1,3 @@
1
1
  module Speedflow
2
- VERSION = '0.3.0'.freeze
2
+ VERSION = '0.3.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: speedflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julien Breux
@@ -240,6 +240,7 @@ email:
240
240
  - julien.breux@gmail.com
241
241
  executables:
242
242
  - speedflow
243
+ - sf
243
244
  extensions: []
244
245
  extra_rdoc_files: []
245
246
  files:
@@ -247,6 +248,7 @@ files:
247
248
  - README.md
248
249
  - bin/console
249
250
  - bin/setup
251
+ - bin/sf
250
252
  - bin/speedflow
251
253
  - lib/speedflow.rb
252
254
  - lib/speedflow/command.rb