Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions lib/pipey.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
require 'pipey/line'
require 'pipey/chain'
require 'pipey/steps'
require 'pipey/steps'
require 'pipey/extensions'
require 'pipey/extensions'

module Pipey
Expand Down
10 changes: 5 additions & 5 deletions lib/pipey/chain.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ module Pipey
class Chain < SimpleDelegator
include Core

def self.call(initial, params = {})
new(initial).call(params)
def self.call(initial, **params)
new(initial).call(**params)
end

def call!(params = {}) # :nodoc:
self.class.steps_for(params).each do |name|
result = send(name, params)
def call!(**params)
self.class.steps_for(**params).each do |name|
result = send(name, **params)

if self.class.valid_pipe_result?(result)
__setobj__(result)
Expand Down
8 changes: 4 additions & 4 deletions lib/pipey/core.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ def valid_pipe_result?(_)
end
end

def stop!(*args)
throw(:__pipey_stop, *args)
def stop!(*args, **kwargs)
throw(:__pipey_stop, *args, **kwargs)
end

def call(*args)
def call(**args)
catch :__pipey_stop do
clone.call!(*args)
clone.call!(**args)
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/pipey/extensions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module Extensions
module RequiredKeys
# @override Pipey::DSL.steps_for
# @override Pipey::Scanner.steps_for
def steps_for(params)
def steps_for(**params)
super.reject do |step|
instance_method(step).parameters.any? do |type, name|
type == :keyreq && params[name].nil?
Expand Down
10 changes: 5 additions & 5 deletions lib/pipey/line.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ module Pipey
class Line
include Core

def self.call(*args)
new.call(*args)
def self.call(initial, **opts)
new.call!(initial, **opts)
end

def call!(initial, opts = {})
self.class.steps_for(opts).reduce(initial) do |value, name|
result = send(name, value, opts)
def call!(initial, **opts)
self.class.steps_for(**opts).reduce(initial) do |value, name|
result = send(name, value, **opts)

if self.class.valid_pipe_result?(result)
result
Expand Down
4 changes: 2 additions & 2 deletions lib/pipey/steps.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ def steps
@steps ||= []
end

def steps_for(_)
def steps_for(**_)
steps
end

Expand All @@ -24,7 +24,7 @@ def initialize(pattern)
instance_methods.grep(pattern)
end

define_method :steps_for do |_|
define_method :steps_for do |**_|
steps
end
end
Expand Down
3 changes: 1 addition & 2 deletions pipey.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@ Gem::Specification.new do |spec|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ["lib"]

spec.add_development_dependency "bundler", "~> 1.14"
spec.add_development_dependency "rake", "~> 10.0"
spec.add_development_dependency "rake"
spec.add_development_dependency "minitest"
spec.add_development_dependency "m"
end
3 changes: 0 additions & 3 deletions test/pipey/chain_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,7 @@ def run_stop(**)

def test_line_with_dsl
s = Subject::DSL

assert_equal [:run_multiply, :run_divide], s.steps
assert_equal [:run_multiply, :run_divide], s.steps_for(multiply_by: 10)

assert_equal [2, 4], s.call([1, 2], multiply_by: 10, divide_by: 5)
end

Expand Down
4 changes: 2 additions & 2 deletions test/pipey/line_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,15 @@ def run_two(input, divide_by:, **)
class Stopper < Pipey::Chain
extend Pipey::Steps::Scanner[/^run_/]

def run_stop(_, **)
def run_stop(**)
stop! 100
200
end
end

def test_line_with_dsl
assert_equal [:run_multiply, :run_divide], Subject::DSL.steps
assert_equal 2, Subject::DSL.call(1)
assert_equal 2, Subject::DSL.call(1, multiply_by: 10)
end

def test_line_with_scanner
Expand Down