recode 0.1.1 → 0.1.3

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
  SHA256:
3
- metadata.gz: d2caac89edbf1003a3a6d9d48f391098a7fa5f3fd063edf9152aaccc0ae224d3
4
- data.tar.gz: 40d28e5a4eade760c85694b0b89437013948df35edc59f71e11301588fefae39
3
+ metadata.gz: 2128ff9e04d8cfb769e6d86a37cd9f86f641f279f9ac252cb87a3b595f293fa6
4
+ data.tar.gz: 91f57f66757d7b0d1831620e3c1537c2a49c5b36fafad37c97c371a19e846c60
5
5
  SHA512:
6
- metadata.gz: e25dccd66128657f8d32e6031fcd1c04e555ef3dc001839dbf29d3011e44d88a5bd1f8a83da977effa40605c105f705a61b219e9832c0e26d6cb47be1b14edea
7
- data.tar.gz: c49731b417af6c8f193f2215a89da54fcf7bdb6231b93ee53c87bce222401628d143ecc4e47a1841e6ddc8de68d6a44ebad9585442fab524f6b2fdd73fde358f
6
+ metadata.gz: 297830b73fd0a5260decd1f710e2bec7cb304f5a4be44faf0c938903274088b2805c20d0c847d04598959e5149eeb0f13a4b06eb1fb9f9e51b765a262682cd6d
7
+ data.tar.gz: e69e6f88d4c0468d9daf8f5534bc7533ea4de9d16965e08275e133da3a22da42af8165e8ce50ae26646fac5f04a66dd8cb35e58ce5d0ac3a7bf765b25d433c21
data/bin/recode CHANGED
@@ -11,6 +11,6 @@ rescue Interrupt, Recode::Abort
11
11
  exit 1
12
12
  rescue => e
13
13
  puts e.backtrace.reverse if ENV['DEBUG']
14
- say! "!txtred!#{e.class}: #{e.message}"
14
+ say! "r`#{e.class}: #{e.message}`"
15
15
  exit 1
16
- end
16
+ end
@@ -1,14 +1,15 @@
1
1
  module Recode
2
2
  module ChangeVariations
3
3
  using Strings::Inflection::Extensions
4
+ using Recode::Refinements
4
5
 
5
6
  def change_variations(old_string, new_string)
6
7
  result = []
7
- result << [old_string.pluralize.downcase, new_string.pluralize.downcase]
8
+ result << [old_string.pluralize.underscore, new_string.pluralize.underscore]
8
9
  result << [old_string.pluralize, new_string.pluralize]
9
- result << [old_string.downcase, new_string.downcase]
10
+ result << [old_string.underscore, new_string.underscore]
10
11
  result << [old_string, new_string]
11
12
  result.uniq
12
13
  end
13
14
  end
14
- end
15
+ end
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
- router = MisterBin::Runner.new version: VERSION
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
@@ -1,26 +1,26 @@
1
1
  module Recode
2
2
  class Command < MisterBin::Command
3
- help "Code Refactoring Utility"
3
+ help 'Code Refactoring Utility'
4
4
 
5
- usage "recode OLD [to] NEW [in] EXTENSIONS... [options]"
6
- usage "recode (-h|--help)"
5
+ usage 'recode OLD [to] NEW [in] EXTENSIONS... [options]'
6
+ usage 'recode (-h|--help)'
7
7
 
8
- option "-a --apply", "Apply changes"
9
- option "-p --prompt", "Apply changes interactively "
8
+ option '-a --apply', 'Apply changes'
9
+ option '-p --prompt', 'Apply changes interactively '
10
10
 
11
- param "OLD", "Old string, singular and capitalized"
12
- param "NEW", "New string, singular and capitalized"
13
- param "EXTENSIONS", "Space delimited file extensions"
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 "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"
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
@@ -15,5 +15,4 @@ module Recode
15
15
  Diffy::Diff
16
16
  end
17
17
  end
18
-
19
- end
18
+ end
@@ -1,3 +1,3 @@
1
1
  module Recode
2
2
  Abort = Class.new Interrupt
3
- end
3
+ end
@@ -12,4 +12,4 @@ module Recode
12
12
  end
13
13
  end
14
14
  end
15
- end
15
+ end
@@ -5,14 +5,14 @@ module Recode
5
5
  include Colsole
6
6
 
7
7
  def show_rename(source:, target:)
8
- say "\n!txtpur!" + ("_" * terminal_width)
9
- say "!txtpur!rename:"
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 "\n!txtblu!" + ("_" * terminal_width)
15
- say "!txtblu!edit: #{file}"
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
@@ -10,4 +10,4 @@ module Recode
10
10
  end
11
11
  end
12
12
  end
13
- end
13
+ 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? !undgrn!Y!txtrst!es, !undgrn!n!txtrst!o, !undgrn!q!txtrst!uit : "
20
- answer = $stdin.getch.downcase
21
-
22
- if answer == 'q' or answer == "\u0003"
23
- say "!txtblu!Quit"
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
- elsif answer == 'n'
26
- say "!txtred!No"
25
+ when 'n'
26
+ say 'r`No`'
27
27
  false
28
28
  else
29
- say "!txtgrn!Yes"
29
+ say 'g`Yes`'
30
30
  true
31
31
  end
32
32
  end
33
-
34
33
  end
35
34
  end
36
- end
35
+ end
@@ -0,0 +1,13 @@
1
+ module Recode
2
+ module Refinements
3
+ refine String do
4
+ def underscore
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
+ end
11
+ end
12
+ 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, @extensions = path, extensions
11
- @old_string, @new_string = old_string, new_string
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 **payload unless target == file
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 **payload unless before == after
42
+ handler.edit(**payload) unless before == after
42
43
  end
43
44
 
44
45
  def apply_changes(string)
@@ -1,3 +1,3 @@
1
1
  module Recode
2
- VERSION = "0.1.1"
3
- end
2
+ VERSION = '0.1.3'
3
+ end
data/lib/recode.rb CHANGED
@@ -3,6 +3,7 @@ require 'colsole'
3
3
  require 'strings-inflection'
4
4
  require 'strings/inflection/extensions'
5
5
 
6
+ require 'recode/refinements'
6
7
  require 'recode/exceptions'
7
8
  require 'recode/diffing'
8
9
  require 'recode/handler/base'
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.1
4
+ version: 0.1.3
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: 2020-05-17 00:00:00.000000000 Z
11
+ date: 2023-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: mister_bin
14
+ name: colsole
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0.7'
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: '0.7'
29
+ version: 0.8.1
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2'
27
33
  - !ruby/object:Gem::Dependency
28
- name: colsole
34
+ name: diffy
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '0.7'
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: '0.7'
46
+ version: '3.3'
41
47
  - !ruby/object:Gem::Dependency
42
- name: diffy
48
+ name: mister_bin
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '3.3'
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: '3.3'
60
+ version: '0.7'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: strings-inflection
57
63
  requirement: !ruby/object:Gem::Requirement
@@ -85,12 +91,14 @@ files:
85
91
  - lib/recode/handler/base.rb
86
92
  - lib/recode/handler/output.rb
87
93
  - lib/recode/handler/prompt.rb
94
+ - lib/recode/refinements.rb
88
95
  - lib/recode/runner.rb
89
96
  - lib/recode/version.rb
90
97
  homepage: https://github.com/dannyben/recode
91
98
  licenses:
92
99
  - MIT
93
- metadata: {}
100
+ metadata:
101
+ rubygems_mfa_required: 'true'
94
102
  post_install_message:
95
103
  rdoc_options: []
96
104
  require_paths:
@@ -99,14 +107,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
99
107
  requirements:
100
108
  - - ">="
101
109
  - !ruby/object:Gem::Version
102
- version: 2.4.0
110
+ version: 2.7.0
103
111
  required_rubygems_version: !ruby/object:Gem::Requirement
104
112
  requirements:
105
113
  - - ">="
106
114
  - !ruby/object:Gem::Version
107
115
  version: '0'
108
116
  requirements: []
109
- rubygems_version: 3.1.2
117
+ rubygems_version: 3.4.6
110
118
  signing_key:
111
119
  specification_version: 4
112
120
  summary: Command line utility for refactoring code