hanami-cli 0.1.0.beta1 → 0.1.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
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