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