dev_scripts 0.1.3 → 0.1.5

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
- SHA256:
3
- metadata.gz: aa031ba0e29ce35de97fd224f4ada87daabdf518546b623550120c1217e1e60b
4
- data.tar.gz: b14f3d423592f05587d9e19b56685674bf96d51aadc43c9c0d5562ab13560ccd
2
+ SHA1:
3
+ metadata.gz: 49dc0985139ae92c819660701caef50acb6abf49
4
+ data.tar.gz: 46b16c970e4075f5c40ab683fa99634a2377010f
5
5
  SHA512:
6
- metadata.gz: 8385065080df3aeedfaff17740642e2d991e1201eb8f4f3c30609e79e726049137b97a89bf3abe75768a98b106ea614a52fadb5b024fa472355d74f460b4f503
7
- data.tar.gz: d8d067413a5ae99d99a1c2ad22b4f2db4814a02aa77230952c1bc8ba736b7315c831afd51d838d1125b0ecfa91ac0076d1315ccaa41c72a5ff813c2152bbfd97
6
+ metadata.gz: 3782f648e1676fdfc9211f501603a859e983b14f2f54224eaf32c544b61f9a8671043207744bc3b881827a98eee45770e7c0dd2027c8fd9142fa2bac87802086
7
+ data.tar.gz: e297bf4c889877dbc6218b29eb585bc40fa92986b75a419afbaf78f2adb29e3d114aef4c245c51d456963db3e7eaa8ed66f7a9647752d81555e7cbb5db12c96e
data/.gitignore CHANGED
@@ -6,6 +6,10 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ /dev_scripts/
10
+ /lib/dev_scripts/scripts/open_controller_file.rb
11
+ /lib/dev_scripts/scripts/open_shared_context_file.rb
12
+ /lib/dev_scripts/scripts/remove_file.rb
9
13
 
10
14
  # rspec failure tracking
11
15
  .rspec_status
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": "2.0.0",
3
+ "tasks": [
4
+ {
5
+ "label": "open spec",
6
+ "type": "shell",
7
+ "command": "dev_scripts open_spec_file ${relativeFile}",
8
+ "problemMatcher": []
9
+ }
10
+ ]
11
+ }
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dev_scripts (0.1.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
- before do
47
+ execute do
48
+ begin
49
+ raise AlreadyInASpecFileError if already_in_a_spec_file?
50
+
37
51
  if file_exists?
38
- puts 'file already exists, opening file'
52
+ print_message 'file already exists, opening file'
39
53
  else
40
- puts 'file does not exist, writing a new file'
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
- Rspec.describe #{constant_name} do
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}# rubcop:disable Metrics/MethodLength\n"
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}# rubcop:enable Metrics/MethodLength\n"
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('')) }
@@ -1,3 +1,3 @@
1
1
  module DevScripts
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.5"
3
3
  end
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.3
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-30 00:00:00.000000000 Z
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
- rubygems_version: 3.0.3
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