shufu 0.1.3 → 0.1.4

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: 17364e473508ee305a2ce5ca29833014f474deeec7123fb5aceeb4a39e0a8928
4
- data.tar.gz: 07da5c874f8b7ead3e9bcb3389cda4bca000e400afde8733b7445eb5624680df
3
+ metadata.gz: 071d6191267e3bb684b700c188e3cdcc7924c7a93e329cf79c49eb0c203a0ff4
4
+ data.tar.gz: de82af9aac1ff9b9114f668f71b200706c1e6ba1e1d1e289d4ab562c830a9e6b
5
5
  SHA512:
6
- metadata.gz: 0cadcc2fefaab6555da37f4e7be336e27ff79724a41cc648d97c9ec6a5d2fc5a33d791afafec7b97cc7e80dd34515e60eeb069c95515302ed5afcd07730e5338
7
- data.tar.gz: f9035d6846f3a66e619bb6f49d5cbf2387b4ff1928ad61f6a35a00b021dfb326baf6511937ae62baa5fc8f78eaa5015ed885d9271cc84f4168d0182803e70fe3
6
+ metadata.gz: 32f4aed2b7910b2a3f0a405d248165c48cd94abeed5c2fdf01cfd711f51aa9d8aaa09628e8f9cc9b3049695f6343e6f11c814b8afafcc2681da361cf9b4cfa5e
7
+ data.tar.gz: dc924999be4ee8db979697cc0c1e12580703a6af0ac6933fbd225327d5c4f25a4584db4e176b3cfa8163b641d069c44ff388b0959b8d3ce30e389d98e6e3547b
data/Gemfile.lock CHANGED
@@ -1,41 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shufu (0.1.3)
4
+ shufu (0.1.4)
5
5
  dry-initializer
6
- dry-schema
7
6
 
8
7
  GEM
9
8
  remote: https://rubygems.org/
10
9
  specs:
11
- concurrent-ruby (1.1.9)
12
10
  diff-lcs (1.5.0)
13
- dry-configurable (0.14.0)
14
- concurrent-ruby (~> 1.0)
15
- dry-core (~> 0.6)
16
- dry-container (0.9.0)
17
- concurrent-ruby (~> 1.0)
18
- dry-configurable (~> 0.13, >= 0.13.0)
19
- dry-core (0.7.1)
20
- concurrent-ruby (~> 1.0)
21
- dry-inflector (0.2.1)
22
11
  dry-initializer (3.1.1)
23
- dry-logic (1.2.0)
24
- concurrent-ruby (~> 1.0)
25
- dry-core (~> 0.5, >= 0.5)
26
- dry-schema (1.8.0)
27
- concurrent-ruby (~> 1.0)
28
- dry-configurable (~> 0.13, >= 0.13.0)
29
- dry-core (~> 0.5, >= 0.5)
30
- dry-initializer (~> 3.0)
31
- dry-logic (~> 1.0)
32
- dry-types (~> 1.5)
33
- dry-types (1.5.1)
34
- concurrent-ruby (~> 1.0)
35
- dry-container (~> 0.3)
36
- dry-core (~> 0.5, >= 0.5)
37
- dry-inflector (~> 0.1, >= 0.1.2)
38
- dry-logic (~> 1.0, >= 1.0.2)
39
12
  power_assert (1.1.7)
40
13
  rake (13.0.6)
41
14
  rspec (3.10.0)
data/README.md CHANGED
@@ -23,14 +23,16 @@ Or install it yourself as:
23
23
  ```ruby
24
24
  require "shufu"
25
25
 
26
- arguments = [
26
+ schema = [
27
+ { name: "git", type: "command" },
28
+ { name: "commit", type: "command" },
27
29
  { name: "amend", type: "flag" },
28
30
  { name: "author", type: "equal" }
29
31
  ]
30
32
 
31
- command = Shufu::Command.new("git commit", arguments)
33
+ command = Shufu::Command.new(schema)
32
34
 
33
- p command.line({ amend: true, author: "cc-kawakami" })
35
+ p command.to_s({ amend: true, author: "cc-kawakami" })
34
36
 
35
37
  # => "git commit --amend --author=cc-kawakami"
36
38
  ```
@@ -5,7 +5,7 @@ module Shufu
5
5
  extend Dry::Initializer
6
6
 
7
7
  option :name, proc(&:to_s)
8
- option :type, proc(&:to_sym), default: proc { :param }
8
+ option :type, proc(&:to_sym), default: proc { :equal }
9
9
 
10
10
  def to_s(value)
11
11
  case type
data/lib/shufu/command.rb CHANGED
@@ -1,14 +1,35 @@
1
1
  module Shufu
2
- class InvalidSchemaError < RuntimeError; end
3
-
4
2
  class Command
5
- def initialize(base, schema)
6
- @base = base
3
+ #
4
+ # @param [Array<Hash>] schema
5
+ #
6
+ def initialize(schema)
7
7
  @schema = schema.map { |s| Argument.new(**s) }
8
8
  end
9
9
 
10
- def line(values)
11
- Line.new(@base, @schema, values).to_s
10
+ #
11
+ # @param [Hash] values
12
+ # @return [String]
13
+ #
14
+ def to_s(values)
15
+ arguments(values).join(" ")
16
+ end
17
+
18
+ #
19
+ # @reutrn [Array<String>]
20
+ #
21
+ def arguments(values)
22
+ [commands] + values.map { |k, v|
23
+ a = @schema.find { |a| a.name == k.to_s } || Argument.new(name: k)
24
+ a.to_s(v)
25
+ }
26
+ end
27
+
28
+ #
29
+ # @return [Array<String>]
30
+ #
31
+ def commands
32
+ @schema.select { |a| a.type == :command }.map(&:name)
12
33
  end
13
34
  end
14
35
  end
data/lib/shufu/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Shufu
4
- VERSION = "0.1.3"
4
+ VERSION = "0.1.4"
5
5
  end
data/shufu.gemspec CHANGED
@@ -24,6 +24,5 @@ Gem::Specification.new do |spec|
24
24
  end
25
25
  spec.require_paths = ["lib"]
26
26
 
27
- spec.add_dependency "dry-schema"
28
27
  spec.add_dependency "dry-initializer"
29
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shufu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - cc-kawakami
@@ -10,20 +10,6 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2022-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: dry-schema
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: dry-initializer
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -53,7 +39,6 @@ files:
53
39
  - lib/shufu.rb
54
40
  - lib/shufu/argument.rb
55
41
  - lib/shufu/command.rb
56
- - lib/shufu/line.rb
57
42
  - lib/shufu/version.rb
58
43
  - shufu.gemspec
59
44
  homepage: https://github.com/cc-kawakami/shufu
data/lib/shufu/line.rb DELETED
@@ -1,17 +0,0 @@
1
- module Shufu
2
- class Line
3
- def initialize(base, schema, values)
4
- @base = base
5
- @schema = schema
6
- @values = values
7
- end
8
-
9
- def to_s
10
- ([@base] + @values.map { |k, v|
11
- argument = @schema.find { |a| a.name == k.to_s }
12
- argument = Shufu::Argument.new(name: k) if !argument
13
- argument.to_s(v)
14
- }).join(" ")
15
- end
16
- end
17
- end