dev_scripts 0.1.3 → 0.1.5
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 +5 -5
- data/.gitignore +4 -0
- data/.vscode/tasks.json +11 -0
- data/Gemfile.lock +6 -1
- data/dev_scripts.gemspec +1 -0
- data/lib/dev_scripts/script.rb +111 -0
- data/lib/dev_scripts/scripts/open_spec_file.rb +22 -8
- data/lib/dev_scripts/scripts/rubocop_metrics_method_length.rb +2 -2
- data/lib/dev_scripts/version.rb +1 -1
- data/lib/dev_scripts.rb +6 -89
- metadata +20 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 49dc0985139ae92c819660701caef50acb6abf49
|
4
|
+
data.tar.gz: 46b16c970e4075f5c40ab683fa99634a2377010f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3782f648e1676fdfc9211f501603a859e983b14f2f54224eaf32c544b61f9a8671043207744bc3b881827a98eee45770e7c0dd2027c8fd9142fa2bac87802086
|
7
|
+
data.tar.gz: e297bf4c889877dbc6218b29eb585bc40fa92986b75a419afbaf78f2adb29e3d114aef4c245c51d456963db3e7eaa8ed66f7a9647752d81555e7cbb5db12c96e
|
data/.gitignore
CHANGED
data/.vscode/tasks.json
ADDED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
dev_scripts (0.1.
|
4
|
+
dev_scripts (0.1.5)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -12,6 +12,7 @@ GEM
|
|
12
12
|
minitest (~> 5.1)
|
13
13
|
tzinfo (~> 1.1)
|
14
14
|
zeitwerk (~> 2.2)
|
15
|
+
byebug (11.0.1)
|
15
16
|
coderay (1.1.2)
|
16
17
|
concurrent-ruby (1.1.5)
|
17
18
|
diff-lcs (1.3)
|
@@ -46,6 +47,9 @@ GEM
|
|
46
47
|
pry (0.12.2)
|
47
48
|
coderay (~> 1.1.0)
|
48
49
|
method_source (~> 0.9.0)
|
50
|
+
pry-byebug (3.7.0)
|
51
|
+
byebug (~> 11.0)
|
52
|
+
pry (~> 0.10)
|
49
53
|
rake (10.5.0)
|
50
54
|
rb-fsevent (0.10.3)
|
51
55
|
rb-inotify (0.10.0)
|
@@ -80,6 +84,7 @@ DEPENDENCIES
|
|
80
84
|
guard
|
81
85
|
guard-rspec
|
82
86
|
pry
|
87
|
+
pry-byebug
|
83
88
|
rake (~> 10.0)
|
84
89
|
rspec (~> 3.0)
|
85
90
|
|
data/dev_scripts.gemspec
CHANGED
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_development_dependency "rake", "~> 10.0"
|
25
25
|
spec.add_development_dependency "rspec", "~> 3.0"
|
26
26
|
spec.add_development_dependency "pry"
|
27
|
+
spec.add_development_dependency "pry-byebug"
|
27
28
|
spec.add_development_dependency "guard"
|
28
29
|
spec.add_development_dependency "guard-rspec"
|
29
30
|
spec.add_development_dependency "activesupport"
|
@@ -0,0 +1,111 @@
|
|
1
|
+
module DevScripts
|
2
|
+
class Script
|
3
|
+
class ScriptNotRegistered < StandardError
|
4
|
+
def initialize(script_name)
|
5
|
+
super "#{script_name} not registered"
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class << self
|
10
|
+
def scripts
|
11
|
+
@scripts ||= []
|
12
|
+
end
|
13
|
+
|
14
|
+
def clear_scripts
|
15
|
+
@scripts = []
|
16
|
+
end
|
17
|
+
|
18
|
+
def define_script(script_name, &block)
|
19
|
+
scripts << new(script_name: script_name, &block)
|
20
|
+
end
|
21
|
+
|
22
|
+
def execute(args)
|
23
|
+
script_name, *rest = args
|
24
|
+
|
25
|
+
script_to_execute = scripts.find { |script| script.name == script_name.to_sym }
|
26
|
+
|
27
|
+
if script_to_execute
|
28
|
+
begin
|
29
|
+
script_to_execute.run(rest)
|
30
|
+
ensure
|
31
|
+
scripts[scripts.index(script_to_execute)] = script_to_execute.duplicate
|
32
|
+
end
|
33
|
+
else
|
34
|
+
raise ScriptNotRegistered.new(script_name)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
attr_reader :name
|
40
|
+
|
41
|
+
def initialize(script_name:, &block)
|
42
|
+
@name = script_name
|
43
|
+
@block = block
|
44
|
+
@base = block.binding.receiver
|
45
|
+
@run_args = []
|
46
|
+
end
|
47
|
+
|
48
|
+
def run(args)
|
49
|
+
@run_args = args
|
50
|
+
|
51
|
+
instance_eval(&block)
|
52
|
+
end
|
53
|
+
|
54
|
+
def duplicate
|
55
|
+
self.class.new(script_name: name, &block)
|
56
|
+
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
attr_reader :block, :base, :run_args, :arg_names_to_args, :before_block
|
61
|
+
|
62
|
+
def let(name, &block)
|
63
|
+
define_singleton_method(name) do
|
64
|
+
found_value = instance_variable_get("@#{name}")
|
65
|
+
return found_value unless found_value.nil?
|
66
|
+
|
67
|
+
instance_variable_set("@#{name}", instance_eval(&block))
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def before(&block)
|
72
|
+
@before_block = block
|
73
|
+
end
|
74
|
+
|
75
|
+
def execute(&block)
|
76
|
+
instance_eval(&before_block) if before_block
|
77
|
+
|
78
|
+
instance_eval(&block)
|
79
|
+
end
|
80
|
+
|
81
|
+
def args(*arg_names)
|
82
|
+
arg_names.each_with_index do |arg_name, index|
|
83
|
+
define_singleton_method(arg_name) do
|
84
|
+
found_value = instance_variable_get("@#{arg_name}")
|
85
|
+
|
86
|
+
return found_value unless found_value.nil?
|
87
|
+
|
88
|
+
instance_variable_set("@#{arg_name}", run_args[index])
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
def create_file_in_editor(file_path_to_open, &file_content_block)
|
94
|
+
File.open(file_path_to_open, 'w') do |file|
|
95
|
+
file.write(instance_eval(&file_content_block))
|
96
|
+
end
|
97
|
+
rescue Errno::ENOENT
|
98
|
+
Dir.mkdir file_path_to_open.split('/')[0..-2].join('/')
|
99
|
+
|
100
|
+
retry
|
101
|
+
end
|
102
|
+
|
103
|
+
def open_file_in_editor(file_path_to_open)
|
104
|
+
system "code -r #{file_path_to_open}"
|
105
|
+
end
|
106
|
+
|
107
|
+
def print_message(message)
|
108
|
+
puts message
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
@@ -1,3 +1,10 @@
|
|
1
|
+
require 'dev_scripts/script'
|
2
|
+
|
3
|
+
class AlreadyInASpecFileError < StandardError
|
4
|
+
end
|
5
|
+
|
6
|
+
ALREADY_IN_SPEC_FILE_MESSAGE = 'Already in Spec File'
|
7
|
+
|
1
8
|
DevScripts::Script.define_script :open_spec_file do
|
2
9
|
args :file_path
|
3
10
|
|
@@ -5,6 +12,10 @@ DevScripts::Script.define_script :open_spec_file do
|
|
5
12
|
!found_file_path.nil?
|
6
13
|
end
|
7
14
|
|
15
|
+
def already_in_a_spec_file?
|
16
|
+
!(file_path =~ /_spec.rb\Z/).nil?
|
17
|
+
end
|
18
|
+
|
8
19
|
let(:file_path_without_extension) do
|
9
20
|
file_path.gsub('.rb', '')
|
10
21
|
end
|
@@ -33,24 +44,27 @@ DevScripts::Script.define_script :open_spec_file do
|
|
33
44
|
.join('::')
|
34
45
|
end
|
35
46
|
|
36
|
-
|
47
|
+
execute do
|
48
|
+
begin
|
49
|
+
raise AlreadyInASpecFileError if already_in_a_spec_file?
|
50
|
+
|
37
51
|
if file_exists?
|
38
|
-
|
52
|
+
print_message 'file already exists, opening file'
|
39
53
|
else
|
40
|
-
|
41
|
-
end
|
42
|
-
end
|
54
|
+
print_message 'file does not exist, writing a new file'
|
43
55
|
|
44
|
-
execute do
|
45
|
-
if !file_exists?
|
46
56
|
create_file_in_editor spec_file_path do
|
47
57
|
<<-RUBY
|
48
|
-
|
58
|
+
RSpec.describe #{constant_name} do
|
49
59
|
end
|
50
60
|
RUBY
|
51
61
|
end
|
52
62
|
end
|
53
63
|
|
54
64
|
open_file_in_editor spec_file_path
|
65
|
+
|
66
|
+
rescue AlreadyInASpecFileError
|
67
|
+
print_message 'Already in Spec File'
|
68
|
+
end
|
55
69
|
end
|
56
70
|
end
|
@@ -93,12 +93,12 @@ DevScripts::Script.define_script :rubocop_metrics_method_length do
|
|
93
93
|
def run
|
94
94
|
all_lines.insert(
|
95
95
|
method_reader.first_line,
|
96
|
-
"#{method_reader.indentation}#
|
96
|
+
"#{method_reader.indentation}# rubocop:disable Metrics/MethodLength\n"
|
97
97
|
)
|
98
98
|
|
99
99
|
all_lines.insert(
|
100
100
|
method_reader.last_line + 2,
|
101
|
-
"#{method_reader.indentation}#
|
101
|
+
"#{method_reader.indentation}# rubocop:enable Metrics/MethodLength\n"
|
102
102
|
)
|
103
103
|
|
104
104
|
File.open(file_path, 'w') { |file| file.write(all_lines.join('')) }
|
data/lib/dev_scripts/version.rb
CHANGED
data/lib/dev_scripts.rb
CHANGED
@@ -2,98 +2,15 @@ require "dev_scripts/version"
|
|
2
2
|
|
3
3
|
module DevScripts
|
4
4
|
class Error < StandardError; end
|
5
|
-
class Script
|
6
|
-
class Scripts < Array
|
7
|
-
def add(script_name:, &block)
|
8
|
-
self << Script.new(script_name: script_name, &block)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
class << self
|
13
|
-
def scripts
|
14
|
-
@scripts ||= Scripts.new
|
15
|
-
end
|
16
|
-
|
17
|
-
def define_script(script_name, &block)
|
18
|
-
scripts.add(script_name: script_name, &block)
|
19
|
-
end
|
20
|
-
|
21
|
-
def execute(args)
|
22
|
-
script_name, *rest = args
|
23
|
-
|
24
|
-
script_to_execute = scripts.find { |script| script.name == script_name.to_sym }
|
25
|
-
|
26
|
-
script_to_execute.run(rest) if script_to_execute
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
attr_reader :name
|
31
|
-
|
32
|
-
def initialize(script_name:, &block)
|
33
|
-
@name = script_name
|
34
|
-
@block = block
|
35
|
-
@base = block.binding.receiver
|
36
|
-
@run_args = []
|
37
|
-
end
|
38
|
-
|
39
|
-
def run(args)
|
40
|
-
@run_args = args
|
41
|
-
|
42
|
-
instance_eval(&block)
|
43
|
-
end
|
44
|
-
|
45
|
-
private
|
46
|
-
|
47
|
-
attr_reader :block, :base, :run_args, :arg_names_to_args, :before_block
|
48
|
-
|
49
|
-
def let(name, &block)
|
50
|
-
define_singleton_method(name) do
|
51
|
-
found_value = instance_variable_get("@#{name}")
|
52
|
-
return found_value unless found_value.nil?
|
53
|
-
|
54
|
-
instance_variable_set("@#{name}", instance_eval(&block))
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
def before(&block)
|
59
|
-
@before_block = block
|
60
|
-
end
|
61
|
-
|
62
|
-
def execute(&block)
|
63
|
-
instance_eval(&before_block) if before_block
|
64
|
-
|
65
|
-
instance_eval(&block)
|
66
|
-
end
|
67
|
-
|
68
|
-
def args(*arg_names)
|
69
|
-
arg_names.each_with_index do |arg_name, index|
|
70
|
-
define_singleton_method(arg_name) do
|
71
|
-
found_value = instance_variable_get("@#{arg_name}")
|
72
|
-
|
73
|
-
return found_value unless found_value.nil?
|
74
|
-
|
75
|
-
instance_variable_set("@#{arg_name}", run_args[index])
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
def create_file_in_editor(file_path_to_open, &file_content_block)
|
81
|
-
File.open(file_path_to_open, 'w') do |file|
|
82
|
-
file.write(instance_eval(&file_content_block))
|
83
|
-
end
|
84
|
-
rescue Errno::ENOENT
|
85
|
-
Dir.mkdir file_path_to_open.split('/')[0..-2].join('/')
|
86
|
-
|
87
|
-
retry
|
88
|
-
end
|
89
|
-
|
90
|
-
def open_file_in_editor(file_path_to_open)
|
91
|
-
system "code -r #{file_path_to_open}"
|
92
|
-
end
|
93
|
-
end
|
94
5
|
end
|
95
6
|
|
96
7
|
require 'dev_scripts/scripts/open_spec_file'
|
97
8
|
require 'dev_scripts/scripts/rubocop_metrics_method_length'
|
98
9
|
|
10
|
+
if File.exist? './dev_scripts'
|
11
|
+
Dir['./dev_scripts/**/*.rb'].each do |file|
|
12
|
+
require file
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
99
16
|
DevScripts::Script.execute(ARGV)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dev_scripts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carlos Quinones
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry-byebug
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: guard
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -119,6 +133,7 @@ files:
|
|
119
133
|
- ".gitignore"
|
120
134
|
- ".rspec"
|
121
135
|
- ".travis.yml"
|
136
|
+
- ".vscode/tasks.json"
|
122
137
|
- Gemfile
|
123
138
|
- Gemfile.lock
|
124
139
|
- Guardfile
|
@@ -129,6 +144,7 @@ files:
|
|
129
144
|
- dev_scripts.gemspec
|
130
145
|
- exe/dev_scripts
|
131
146
|
- lib/dev_scripts.rb
|
147
|
+
- lib/dev_scripts/script.rb
|
132
148
|
- lib/dev_scripts/scripts/open_spec_file.rb
|
133
149
|
- lib/dev_scripts/scripts/rubocop_metrics_method_length.rb
|
134
150
|
- lib/dev_scripts/version.rb
|
@@ -150,7 +166,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
166
|
- !ruby/object:Gem::Version
|
151
167
|
version: '0'
|
152
168
|
requirements: []
|
153
|
-
|
169
|
+
rubyforge_project:
|
170
|
+
rubygems_version: 2.5.2.3
|
154
171
|
signing_key:
|
155
172
|
specification_version: 4
|
156
173
|
summary: Register and run scripts for ruby and rails development
|