hanami-cli 0.1.0.beta1 → 0.1.0.beta2

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: f875978b7f89336681b8bd5a565c983bfb958ff3
4
- data.tar.gz: 1c96e142ccf87d61f9832c15df06ae2f1d6e6f2c
3
+ metadata.gz: 8d4e4a10ea60b044fb117ee000c8051328742059
4
+ data.tar.gz: 36a09925ac19e9f94a2a58422ef1e348556f0d89
5
5
  SHA512:
6
- metadata.gz: 998f3111282c4df19b87bbc918e35517c47f680234ae5e2bd4372c8a7280b6a8012a12b11ff17d302e0f7e21ec007f9216d77c4542631eb9910c4ab48636b34e
7
- data.tar.gz: a9dc63d4465bfcaa132937f36c7825249ed0dcbe4cd6799f4bde5a567f8d3fc90c23ee9f02e4636ec9f4bd439dbdc910db68eead6dc3e3113cada80a9e150897
6
+ metadata.gz: eb52b4f06425756aa1681ceea22feb28a5db0067ec42fc5f233f771fb8913844e6b6b9594ca310f11551b970c2f4b8ebcb5408cca83f2da607a74694f1d79013
7
+ data.tar.gz: 48368a1e44252c47845744fa794e4b7826e2418fdb0f2eb1e3fa99233da3267160ac18493d463ba5f6a4d5ddfd2a9737167b0383481258c12312aec9e4da35a1
data/.gitignore CHANGED
@@ -8,3 +8,4 @@
8
8
  /spec/reports/
9
9
  /tmp/
10
10
  .byebug_history
11
+ .rubocop-*
@@ -0,0 +1,4 @@
1
+ # Please keep AllCops, Bundler, Style, Metrics groups and then order cops
2
+ # alphabetically
3
+ inherit_from:
4
+ - https://raw.githubusercontent.com/hanami/devtools/master/.rubocop.yml
@@ -5,12 +5,12 @@ before_install:
5
5
  - gem update --system
6
6
  - rvm @global do gem uninstall bundler -a -x
7
7
  - rvm @global do gem install bundler -v 1.14.6
8
- script: 'bundle exec rake --trace'
8
+ script: ./script/ci
9
9
  rvm:
10
10
  - 2.3.4
11
- - 2.4.1
11
+ - 2.4.2
12
12
  - ruby-head
13
- - jruby-9.1.8.0
13
+ - jruby-9.1.13.0
14
14
  - jruby-head
15
15
 
16
16
  matrix:
@@ -1,6 +1,10 @@
1
1
  # Hanami::CLI
2
2
  General purpose Command Line Interface (CLI) framework for Ruby
3
3
 
4
+ ## v0.1.0.beta2 - 2017-10-03
5
+ ### Added
6
+ - [Alfonso Uceda] Allow default value for arguments
7
+
4
8
  ## v0.1.0.beta1 - 2017-08-11
5
9
  ### Added
6
10
  - [Alfonso Uceda, Luca Guidi] Commands banner and usage
data/Gemfile CHANGED
@@ -6,6 +6,6 @@ unless ENV['TRAVIS']
6
6
  gem 'yard', require: false
7
7
  end
8
8
 
9
- gem 'hanami-utils', '1.1.0.beta1', require: false, git: 'https://github.com/hanami/utils.git', branch: 'develop'
9
+ gem 'hanami-utils', '1.1.0.beta2', require: false, git: 'https://github.com/hanami/utils.git', branch: 'develop'
10
10
 
11
- gem 'rubocop', '0.49.1', require: false
11
+ gem 'hanami-devtools', require: false, git: 'https://github.com/hanami/devtools.git'
@@ -1,4 +1,4 @@
1
- # coding: utf-8
1
+
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'hanami/cli/version'
@@ -16,17 +16,18 @@ Gem::Specification.new do |spec|
16
16
 
17
17
  spec.metadata['allowed_push_host'] = "https://rubygems.org"
18
18
 
19
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
20
- f.match(%r{^(test|spec|features)/})
21
- end
22
19
  spec.bindir = "exe"
23
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
21
  spec.require_paths = ["lib"]
25
22
 
26
- spec.add_dependency "hanami-utils", "1.1.0.beta1"
23
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
24
+ f.match(%r{^(test|spec|features)/})
25
+ end
26
+
27
+ spec.add_dependency "hanami-utils", "1.1.0.beta2"
27
28
  spec.add_dependency "concurrent-ruby", "~> 1.0"
28
29
 
29
- spec.add_development_dependency "bundler", "~> 1.14"
30
- spec.add_development_dependency "rake", "~> 10.0"
31
- spec.add_development_dependency "rspec", "~> 3.5"
30
+ spec.add_development_dependency "bundler"
31
+ spec.add_development_dependency "rake", "~> 12.0"
32
+ spec.add_development_dependency "rspec", "~> 3.6"
32
33
  end
@@ -76,7 +76,7 @@ module Hanami
76
76
 
77
77
  # @since 0.1.0
78
78
  # @api private
79
- def self.arguments(command)
79
+ def self.arguments(command) # rubocop:disable Metrics/AbcSize
80
80
  required_arguments = command.required_arguments
81
81
  optional_arguments = command.optional_arguments
82
82
 
@@ -97,6 +97,9 @@ module Hanami
97
97
 
98
98
  # @since 0.1.0
99
99
  # @api private
100
+ #
101
+ # rubocop:disable Metrics/AbcSize
102
+ # rubocop:disable Metrics/MethodLength
100
103
  def self.extended_command_options(command)
101
104
  result = command.options.map do |option|
102
105
  name = Utils::String.dasherize(option.name)
@@ -116,6 +119,8 @@ module Hanami
116
119
  result << " --#{'help, -h'.ljust(30)}\t# Print this help"
117
120
  result.join("\n")
118
121
  end
122
+ # rubocop:enable Metrics/MethodLength
123
+ # rubocop:enable Metrics/AbcSize
119
124
  end
120
125
  end
121
126
  end
@@ -30,6 +30,9 @@ module Hanami
30
30
 
31
31
  # @since 0.1.0
32
32
  # @api private
33
+ #
34
+ # rubocop:disable Metrics/AbcSize
35
+ # rubocop:disable Metrics/MethodLength
33
36
  def get(arguments)
34
37
  node = @root
35
38
  args = []
@@ -57,6 +60,8 @@ module Hanami
57
60
 
58
61
  result
59
62
  end
63
+ # rubocop:enable Metrics/MethodLength
64
+ # rubocop:enable Metrics/AbcSize
60
65
 
61
66
  private
62
67
 
@@ -64,7 +64,8 @@ module Hanami
64
64
  end
65
65
  end
66
66
 
67
- Result.success(parse_params.merge(parsed_options))
67
+ parse_params.reject! { |_key, value| value.nil? }
68
+ Result.success(parsed_options.merge(parse_params))
68
69
  end
69
70
  # rubocop:enable Metrics/MethodLength
70
71
  # rubocop:enable Metrics/AbcSize
@@ -1,6 +1,6 @@
1
1
  module Hanami
2
2
  class CLI
3
3
  # @since 0.1.0
4
- VERSION = "0.1.0.beta1".freeze
4
+ VERSION = "0.1.0.beta2".freeze
5
5
  end
6
6
  end
@@ -0,0 +1,51 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ run_code_quality_checks() {
6
+ bundle exec rubocop .
7
+ }
8
+
9
+ run_unit_tests() {
10
+ bundle exec rake spec:coverage
11
+ }
12
+
13
+ run_isolation_tests() {
14
+ local pwd=$PWD
15
+ local root="$pwd/spec/isolation"
16
+
17
+ if [ -d $root ]; then
18
+ for test in $(find $root -name '*_spec.rb')
19
+ do
20
+ run_isolation_test $test
21
+
22
+ if [ $? -ne 0 ]; then
23
+ local exit_code=$?
24
+ echo "Failing test: $test"
25
+ exit $exit_code
26
+ fi
27
+ done
28
+ fi
29
+ }
30
+
31
+ run_isolation_test() {
32
+ local test=$1
33
+
34
+ printf "\n\n\nRunning: $test\n"
35
+ ruby $test --options spec/isolation/.rspec
36
+ }
37
+
38
+ run_test() {
39
+ local test=$1
40
+
41
+ printf "\n\n\nRunning: $test\n"
42
+ COVERAGE=true bundle exec rspec $test
43
+ }
44
+
45
+ main() {
46
+ run_code_quality_checks &&
47
+ run_unit_tests &&
48
+ run_isolation_tests
49
+ }
50
+
51
+ main
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hanami-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.beta1
4
+ version: 0.1.0.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Guidi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-08-11 00:00:00.000000000 Z
11
+ date: 2017-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hanami-utils
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.1.0.beta1
19
+ version: 1.1.0.beta2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 1.1.0.beta1
26
+ version: 1.1.0.beta2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: concurrent-ruby
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -42,44 +42,44 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.14'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '1.14'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '12.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '12.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '3.5'
75
+ version: '3.6'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '3.5'
82
+ version: '3.6'
83
83
  description: Hanami framework to build command line interfaces with Ruby
84
84
  email:
85
85
  - me@lucaguidi.com
@@ -89,6 +89,7 @@ extra_rdoc_files: []
89
89
  files:
90
90
  - ".gitignore"
91
91
  - ".rspec"
92
+ - ".rubocop.yml"
92
93
  - ".travis.yml"
93
94
  - CHANGELOG.md
94
95
  - Gemfile
@@ -107,6 +108,7 @@ files:
107
108
  - lib/hanami/cli/registry.rb
108
109
  - lib/hanami/cli/usage.rb
109
110
  - lib/hanami/cli/version.rb
111
+ - script/ci
110
112
  homepage: http://hanamirb.org
111
113
  licenses:
112
114
  - MIT
@@ -128,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
130
  version: 1.3.1
129
131
  requirements: []
130
132
  rubyforge_project:
131
- rubygems_version: 2.6.11
133
+ rubygems_version: 2.6.13
132
134
  signing_key:
133
135
  specification_version: 4
134
136
  summary: Hanami CLI