spidy 0.0.2 → 0.0.3

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
  SHA256:
3
- metadata.gz: 5ee6041bae6fd932f5b19a52890766192fd59e7ab2be070390e3a8ac16b511cf
4
- data.tar.gz: 49d00e22394f0d83d3b49aa8926710ee23c2bffae1c14ce469f3227b338b9cad
3
+ metadata.gz: 45d422fb444d14f2d8e72f68d897acfceb257cfc63a04b90ab6c1b5b6b4bcd02
4
+ data.tar.gz: 7047acace733723466be506c8031feea78b3e3b8e973327aad8ebebfabd8108f
5
5
  SHA512:
6
- metadata.gz: 82dd5bb591c47412c0648afe1a5ac7b971c8f1ccbf01708e3556d6edd2ca2a8d514ee3160cbf5cdc550c77d8e10b470eb6b70ff493f30d0b5458384cb18379a7
7
- data.tar.gz: 798f5ef00e24d12d14058bc6ad87a54d3a9d67f9d091ee64f1450ceed1008bee027d4a396d2d8cf449bacb895220384b2ddbf141ccfbe7fb8b9e6a5290183d74
6
+ metadata.gz: 01f8d7efed9be9f0d043de2131d8a39220629773b4f3ddaa36a03bc1a144e5d514e0982e05b20ad2c5aa8ae8ab8feaf3acb3d2f1ccbf4c397ff77501c833f65d
7
+ data.tar.gz: ca8dd34d812b3806ce6e7d13dfefda34ed1817b38359714e963e4b8665f39eecee934af4645f545ee60374e1ac9992295f3b0053a1580e23ff37cb1993fe68f5
data/lib/spidy/shell.rb CHANGED
@@ -7,12 +7,21 @@ require 'pry'
7
7
  #
8
8
  class Spidy::Shell
9
9
  attr_reader :definition_file
10
+ class_attribute :output_yielder, default: (proc { |result| STDOUT.puts(result.to_s) })
10
11
  delegate :namespace, :spiders, to: :definition_file
11
12
 
12
13
  def initialize(definition_file)
13
14
  @definition_file = definition_file
14
15
  end
15
16
 
17
+ def call(name)
18
+ exec(namespace[name&.to_sym] || namespace.values.first)
19
+ end
20
+
21
+ def each(name)
22
+ exec(spiders[name&.to_sym] || spiders.values.first)
23
+ end
24
+
16
25
  def function
17
26
  print <<~SHELL
18
27
  function spider() {
@@ -24,8 +33,22 @@ class Spidy::Shell
24
33
  SHELL
25
34
  end
26
35
 
27
- # rubocop:disable Metrics/MethodLength
28
36
  def build(name)
37
+ build_shell(name)
38
+ build_ruby(name)
39
+ end
40
+
41
+ def build_shell(name)
42
+ File.open("#{name}.sh", 'w') do |f|
43
+ f.write <<~SHELL
44
+ #!/bin/bash
45
+ eval "$(spidy $(dirname "${0}")/#{name}.rb shell)"
46
+ spider example
47
+ SHELL
48
+ end
49
+ end
50
+
51
+ def build_ruby(name)
29
52
  File.open("#{name}.rb", 'w') do |f|
30
53
  f.write <<~RUBY
31
54
  # frozen_string_literal: true
@@ -42,35 +65,18 @@ class Spidy::Shell
42
65
  end
43
66
  RUBY
44
67
  end
45
-
46
- File.open("#{name}.sh", 'w') do |f|
47
- f.write <<~SHELL
48
- #!/bin/bash
49
- eval "$(spidy $(dirname "${0}")/#{name}.rb shell)"
50
- spider example
51
- SHELL
52
- end
53
- end
54
- # rubocop:enable Metrics/MethodLength
55
-
56
- def call(name)
57
- exec(namespace[name&.to_sym] || namespace.values.first)
58
- end
59
-
60
- def each(name)
61
- exec(spiders[name&.to_sym] || spiders.values.first)
62
68
  end
63
69
 
64
70
  private
65
71
 
66
72
  def exec(command)
67
73
  fail "undefined commmand[#{name}]" if command.nil?
74
+ return command.call(&output_yielder) unless FileTest.pipe?(STDIN)
68
75
 
69
- yielder = proc { |result| STDOUT.puts(result.to_s) }
70
- if FileTest.pipe?(STDIN)
71
- STDIN.each { |line| command.call(line.strip, &yielder) }
72
- else
73
- command.call(&yielder)
76
+ STDIN.each do |line|
77
+ command.call(line.strip, &yielder)
78
+ rescue StandardError => e
79
+ STDERR.puts("#{line.strip} => \n #{e.message}")
74
80
  end
75
81
  end
76
82
  end
data/lib/spidy/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Spidy
4
- VERSION = '0.0.2'
4
+ VERSION = '0.0.3'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spidy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - aileron
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-01 00:00:00.000000000 Z
11
+ date: 2019-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler