recode 0.1.2 → 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 +4 -4
- data/bin/recode +2 -2
- data/lib/recode/change_variations.rb +1 -1
- data/lib/recode/cli.rb +2 -3
- data/lib/recode/command.rb +17 -19
- data/lib/recode/diffing.rb +1 -2
- data/lib/recode/exceptions.rb +1 -1
- data/lib/recode/handler/apply.rb +1 -1
- data/lib/recode/handler/base.rb +5 -5
- data/lib/recode/handler/output.rb +1 -1
- data/lib/recode/handler/prompt.rb +12 -13
- data/lib/recode/refinements.rb +6 -6
- data/lib/recode/runner.rb +8 -7
- data/lib/recode/version.rb +2 -2
- metadata +26 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3fc7a96db1061fd191bd74c928e0ecca0596ca16984c3f2246ee1f350639ca5c
|
|
4
|
+
data.tar.gz: c2ea1aa2c4d840d337517fa43388a798d74f0058be811bbc0865cf88b68d1fac
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 22d0ea0d41ccff458727cedf55e53fb1bf0b3cfc8504ca0f09707fb6bea370623708a21f7d745af8302a8f2aab3e289e15e2d3d8d1c3f804d9d44cd876ca3f4d
|
|
7
|
+
data.tar.gz: 63edb0742f6db03ec51d81f2de07b03b08748c503e52d193725c92c6075eda1c6566f7f1b8e2fa60c341b924ac5907237203fe23add1f868133b0d91fc989cd4
|
data/bin/recode
CHANGED
data/lib/recode/cli.rb
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
require 'mister_bin'
|
|
2
2
|
require 'recode'
|
|
3
3
|
require 'recode/command'
|
|
4
|
+
require 'recode/version'
|
|
4
5
|
|
|
5
6
|
module Recode
|
|
6
7
|
class CLI
|
|
7
8
|
def self.router
|
|
8
|
-
|
|
9
|
-
router.route_all to: Command
|
|
10
|
-
router
|
|
9
|
+
MisterBin::Runner.new version: VERSION, handler: Command
|
|
11
10
|
end
|
|
12
11
|
end
|
|
13
12
|
end
|
data/lib/recode/command.rb
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
module Recode
|
|
2
2
|
class Command < MisterBin::Command
|
|
3
|
-
help
|
|
3
|
+
help 'Code Refactoring Utility'
|
|
4
4
|
|
|
5
|
-
usage
|
|
6
|
-
usage
|
|
5
|
+
usage 'recode OLD [to] NEW [in] EXTENSIONS... [options]'
|
|
6
|
+
usage 'recode (-h|--help)'
|
|
7
7
|
|
|
8
|
-
option
|
|
9
|
-
option
|
|
8
|
+
option '-a --apply', 'Apply changes'
|
|
9
|
+
option '-p --prompt', 'Apply changes interactively '
|
|
10
10
|
|
|
11
|
-
param
|
|
12
|
-
param
|
|
13
|
-
param
|
|
11
|
+
param 'OLD', 'Old string, singular and capitalized'
|
|
12
|
+
param 'NEW', 'New string, singular and capitalized'
|
|
13
|
+
param 'EXTENSIONS', 'Space delimited file extensions'
|
|
14
14
|
|
|
15
|
-
example
|
|
16
|
-
example
|
|
17
|
-
example
|
|
18
|
-
example
|
|
15
|
+
example 'recode Member User rb'
|
|
16
|
+
example 'recode Member to User in rb js'
|
|
17
|
+
example 'recode Member to User in rb js --apply'
|
|
18
|
+
example 'recode Member to User in rb js -p'
|
|
19
19
|
|
|
20
20
|
def run
|
|
21
|
-
runner = Runner.new path: path,
|
|
22
|
-
extensions: extensions,
|
|
23
|
-
old_string: old_string,
|
|
21
|
+
runner = Runner.new path: path,
|
|
22
|
+
extensions: extensions,
|
|
23
|
+
old_string: old_string,
|
|
24
24
|
new_string: new_string
|
|
25
25
|
|
|
26
26
|
runner.execute handler
|
|
@@ -39,9 +39,9 @@ module Recode
|
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
def path
|
|
42
|
-
|
|
42
|
+
'.'
|
|
43
43
|
end
|
|
44
|
-
|
|
44
|
+
|
|
45
45
|
def extensions
|
|
46
46
|
args['EXTENSIONS']
|
|
47
47
|
end
|
|
@@ -53,7 +53,5 @@ module Recode
|
|
|
53
53
|
def new_string
|
|
54
54
|
args['NEW']
|
|
55
55
|
end
|
|
56
|
-
|
|
57
|
-
|
|
58
56
|
end
|
|
59
57
|
end
|
data/lib/recode/diffing.rb
CHANGED
data/lib/recode/exceptions.rb
CHANGED
data/lib/recode/handler/apply.rb
CHANGED
data/lib/recode/handler/base.rb
CHANGED
|
@@ -5,14 +5,14 @@ module Recode
|
|
|
5
5
|
include Colsole
|
|
6
6
|
|
|
7
7
|
def show_rename(source:, target:)
|
|
8
|
-
say "\
|
|
9
|
-
say
|
|
8
|
+
say "\nm`#{'_' * terminal_width}`"
|
|
9
|
+
say 'm`rename:`'
|
|
10
10
|
puts diff source, target
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def show_edit(file:, before:, after:)
|
|
14
|
-
say "\
|
|
15
|
-
say "
|
|
14
|
+
say "\nb`#{'_' * terminal_width}`"
|
|
15
|
+
say "b`edit: #{file}`"
|
|
16
16
|
puts diff before, after
|
|
17
17
|
end
|
|
18
18
|
|
|
@@ -26,4 +26,4 @@ module Recode
|
|
|
26
26
|
end
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
|
-
end
|
|
29
|
+
end
|
|
@@ -12,25 +12,24 @@ module Recode
|
|
|
12
12
|
super
|
|
13
13
|
save_file file, after if apply?
|
|
14
14
|
end
|
|
15
|
-
|
|
15
|
+
|
|
16
16
|
private
|
|
17
17
|
|
|
18
18
|
def apply?
|
|
19
|
-
say "\nApply?
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
say
|
|
19
|
+
say "\nApply? gu`Y`es, gu`n`o, gu`q`uit : "
|
|
20
|
+
|
|
21
|
+
case $stdin.getch.downcase
|
|
22
|
+
when 'q', "\u0003"
|
|
23
|
+
say 'b`Quit`'
|
|
24
24
|
raise Recode::Abort
|
|
25
|
-
|
|
26
|
-
say
|
|
27
|
-
false
|
|
28
|
-
else
|
|
29
|
-
say "!txtgrn!Yes"
|
|
25
|
+
when 'y'
|
|
26
|
+
say 'g`Yes`'
|
|
30
27
|
true
|
|
28
|
+
else
|
|
29
|
+
say 'r`No`'
|
|
30
|
+
false
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
|
-
|
|
34
33
|
end
|
|
35
34
|
end
|
|
36
|
-
end
|
|
35
|
+
end
|
data/lib/recode/refinements.rb
CHANGED
|
@@ -2,12 +2,12 @@ module Recode
|
|
|
2
2
|
module Refinements
|
|
3
3
|
refine String do
|
|
4
4
|
def underscore
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
gsub(/::/, '/')
|
|
6
|
+
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
|
7
|
+
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
|
8
|
+
.tr('-', '_')
|
|
9
|
+
.downcase
|
|
10
10
|
end
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
|
-
end
|
|
13
|
+
end
|
data/lib/recode/runner.rb
CHANGED
|
@@ -3,12 +3,13 @@ module Recode
|
|
|
3
3
|
include Colsole
|
|
4
4
|
include ChangeVariations
|
|
5
5
|
|
|
6
|
-
attr_accessor :path, :extensions, :old_string, :new_string
|
|
7
|
-
attr_accessor :handler
|
|
6
|
+
attr_accessor :path, :extensions, :old_string, :new_string, :handler
|
|
8
7
|
|
|
9
8
|
def initialize(path: nil, extensions: nil, old_string: nil, new_string: nil)
|
|
10
|
-
@path
|
|
11
|
-
@
|
|
9
|
+
@path = path
|
|
10
|
+
@extensions = extensions
|
|
11
|
+
@old_string = old_string
|
|
12
|
+
@new_string = new_string
|
|
12
13
|
end
|
|
13
14
|
|
|
14
15
|
def execute(handler)
|
|
@@ -31,14 +32,14 @@ module Recode
|
|
|
31
32
|
def refactor_filename(file)
|
|
32
33
|
target = apply_changes file
|
|
33
34
|
payload = { source: file, target: target }
|
|
34
|
-
handler.rename
|
|
35
|
+
handler.rename(**payload) unless target == file
|
|
35
36
|
end
|
|
36
37
|
|
|
37
38
|
def refactor_content(file)
|
|
38
39
|
before = File.read file
|
|
39
40
|
after = apply_changes before
|
|
40
41
|
payload = { file: file, before: before, after: after }
|
|
41
|
-
handler.edit
|
|
42
|
+
handler.edit(**payload) unless before == after
|
|
42
43
|
end
|
|
43
44
|
|
|
44
45
|
def apply_changes(string)
|
|
@@ -52,7 +53,7 @@ module Recode
|
|
|
52
53
|
end
|
|
53
54
|
|
|
54
55
|
def files
|
|
55
|
-
@files ||= Dir["#{path}/**/*.{#{extensions.join ','}}"]
|
|
56
|
+
@files ||= Dir["#{path}/**/*.{#{extensions.join ','}}"]
|
|
56
57
|
end
|
|
57
58
|
|
|
58
59
|
def refresh_files
|
data/lib/recode/version.rb
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
module Recode
|
|
2
|
-
VERSION =
|
|
3
|
-
end
|
|
2
|
+
VERSION = '0.1.4'
|
|
3
|
+
end
|
metadata
CHANGED
|
@@ -1,57 +1,63 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: recode
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Danny Ben Shitrit
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-07-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: colsole
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: 0.8.1
|
|
20
|
+
- - "<"
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '2'
|
|
20
23
|
type: :runtime
|
|
21
24
|
prerelease: false
|
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
26
|
requirements:
|
|
24
|
-
- - "
|
|
27
|
+
- - ">="
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
29
|
+
version: 0.8.1
|
|
30
|
+
- - "<"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '2'
|
|
27
33
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
34
|
+
name: diffy
|
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
|
30
36
|
requirements:
|
|
31
37
|
- - "~>"
|
|
32
38
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
39
|
+
version: '3.3'
|
|
34
40
|
type: :runtime
|
|
35
41
|
prerelease: false
|
|
36
42
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
43
|
requirements:
|
|
38
44
|
- - "~>"
|
|
39
45
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
46
|
+
version: '3.3'
|
|
41
47
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
48
|
+
name: mister_bin
|
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
|
44
50
|
requirements:
|
|
45
51
|
- - "~>"
|
|
46
52
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
53
|
+
version: '0.7'
|
|
48
54
|
type: :runtime
|
|
49
55
|
prerelease: false
|
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
57
|
requirements:
|
|
52
58
|
- - "~>"
|
|
53
59
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
60
|
+
version: '0.7'
|
|
55
61
|
- !ruby/object:Gem::Dependency
|
|
56
62
|
name: strings-inflection
|
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -91,7 +97,11 @@ files:
|
|
|
91
97
|
homepage: https://github.com/dannyben/recode
|
|
92
98
|
licenses:
|
|
93
99
|
- MIT
|
|
94
|
-
metadata:
|
|
100
|
+
metadata:
|
|
101
|
+
bug_tracker_uri: https://github.com/DannyBen/recode/issues
|
|
102
|
+
changelog_uri: https://github.com/DannyBen/recode/blob/master/CHANGELOG.md
|
|
103
|
+
source_code_uri: https://github.com/DannyBen/recode
|
|
104
|
+
rubygems_mfa_required: 'true'
|
|
95
105
|
post_install_message:
|
|
96
106
|
rdoc_options: []
|
|
97
107
|
require_paths:
|
|
@@ -100,14 +110,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
100
110
|
requirements:
|
|
101
111
|
- - ">="
|
|
102
112
|
- !ruby/object:Gem::Version
|
|
103
|
-
version:
|
|
113
|
+
version: '3.0'
|
|
104
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
115
|
requirements:
|
|
106
116
|
- - ">="
|
|
107
117
|
- !ruby/object:Gem::Version
|
|
108
118
|
version: '0'
|
|
109
119
|
requirements: []
|
|
110
|
-
rubygems_version: 3.
|
|
120
|
+
rubygems_version: 3.4.10
|
|
111
121
|
signing_key:
|
|
112
122
|
specification_version: 4
|
|
113
123
|
summary: Command line utility for refactoring code
|