namespacer-rb 0.1.6 → 0.1.8

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: d185c337c9121c5caa1b0d5c8050189b5dc7f4bdb2711335eeb1b508a617b4ef
4
- data.tar.gz: 34021011d450232a6222b0ba9c6de5f80c6909d487ba733d550e2ff95c02cfd3
3
+ metadata.gz: d9007d905c40b79426ef2e135e520bf0a87f035a2ae2413c06398d0e04d91f73
4
+ data.tar.gz: a43de5cd8ca7bde19071109dc171ee7b534647ff2d5c0729e15ad1b5410874f1
5
5
  SHA512:
6
- metadata.gz: 42884144adc93a87ee7af9da506ec51670d6289ef66b2f8ffcde00ab8eeafe40d0fa2e1f58c9239ff576438dddbc6cdb6910ce0b42cab060dae500147c40a248
7
- data.tar.gz: 48421f57144fc65224be350c60a7ba8948851624c8d90bf36d218cab05f880075659c058757c7177dc6f68e4f9b8668d720692fe769d2c4bcadb5e7b0337cc01
6
+ metadata.gz: bafd3deefcd88b7c476aa295fc7d6134e7d0e0ca0589077a24fda966b401fd3a5f6e3832832092e24723f1ea63940113b28479e6322efdd9dcb94a00df79bc35
7
+ data.tar.gz: b47c888e929e11a25c6990a9578cd04c57d9da8250268a4787243013178b297f30b73bd0bb33faef05300df4e4eb249304f6b342a8984fe34809a34ce1b9e09c
data/Readme.adoc CHANGED
@@ -25,6 +25,7 @@ gem install namespacer-rb
25
25
  ### Namespacing a file
26
26
 
27
27
  `namespacer MyNamespace my_file.rb` will create a new file `my_file.namespaced.rb` with all top-level classes and modules namespaced under `MyNamespace`.
28
+ `namespacer -i MyNamespace my_file.rb` will overwrite the original file with the namespaced version.
28
29
 
29
30
  ## Development
30
31
 
data/exe/namespacer CHANGED
@@ -9,7 +9,7 @@ require 'tty-command'
9
9
  module Rubyists
10
10
  # Namespace for the namespacer CLI
11
11
  module Namespacer
12
- CliOptions = Struct.new(:recursive, :verbose, :in_place, :fail_rubocop_silently)
12
+ CliOptions = Struct.new(:recursive, :verbose, :in_place, :fail_rubocop_silently, :allow_text_files)
13
13
  def self.cli_options
14
14
  @cli_options ||= CliOptions.new(verbose: false, recursive: false, in_place: false)
15
15
  end
@@ -33,6 +33,10 @@ parser = OptionParser.new do |opts|
33
33
 
34
34
  opts.on('-i', '--in-place', 'Modify files in-place') { |_| options.in_place = true }
35
35
 
36
+ opts.on('-a', '--allow-text-files', 'Allow non-ruby mime types, so long as they are text') do |_|
37
+ options.allow_text_files = true
38
+ end
39
+
36
40
  opts.on('-f', '--fail-rubocop-silently', 'Write files even if they are not rubocop-friendly') do |_|
37
41
  options.fail_rubocop_silently = true
38
42
  end
@@ -80,7 +84,7 @@ def new_path(path)
80
84
  dir = path.dirname
81
85
  ext = path.extname
82
86
  base = path.basename(ext.to_s)
83
- dir.join("#{base}.namespaced#{ext}")
87
+ dir.join("#{base}_namespaced#{ext}")
84
88
  end
85
89
 
86
90
  def rubocop_cmd(path, ruby_code) # rubocop:disable Metrics/MethodLength
@@ -104,11 +108,13 @@ def rubocop_cmd(path, ruby_code) # rubocop:disable Metrics/MethodLength
104
108
  end
105
109
 
106
110
  def rubocop_friendly?(path)
111
+ opts = Rubyists::Namespacer.cli_options
107
112
  magic = Rubyists::Namespacer.magic
108
113
  mime = magic.file(path.to_s)
109
114
  return true if mime.include?('text/x-ruby')
115
+ return true if mime.split('/').first == 'text' && opts.allow_text_files
110
116
 
111
- warn "File #{path} is not a Ruby file (#{mime})" if Rubyists::Namespacer.cli_options.verbose
117
+ warn "File #{path} is not a Ruby file (#{mime})" if opts.verbose
112
118
  false
113
119
  end
114
120
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rubyists
4
4
  module Namespacer
5
- VERSION = '0.1.6'
5
+ VERSION = '0.1.8'
6
6
  end
7
7
  end
data/lib/namespacer.rb CHANGED
@@ -7,9 +7,9 @@ require 'pry'
7
7
 
8
8
  # Top-level namespace to keep Rubyists namespaces in isolation
9
9
  module Rubyists
10
- # Wrap some namespace around top-level AST nodes of 'module' or 'class' type
10
+ # Namespace for the namespacer tool
11
11
  module Namespacer
12
- # Do the rewriting with the rewriter class
12
+ # Do the AST rewriting with the Rewriter class
13
13
  class Rewriter < Parser::TreeRewriter
14
14
  attr_accessor(:namespaces)
15
15
 
@@ -44,6 +44,7 @@ module Rubyists
44
44
  end
45
45
  end
46
46
 
47
+ # Wrap some namespace around top-level AST nodes of 'module' or 'class' type
47
48
  def self.namespace!(string_or_io, namespaces)
48
49
  buffer = Parser::Source::Buffer.new("(#{namespaces})")
49
50
  buffer.source = string_or_io.is_a?(IO) ? string_or_io.read : string_or_io
@@ -56,5 +57,5 @@ end
56
57
 
57
58
  if $PROGRAM_NAME == __FILE__
58
59
  warn 'Wrapping myself'
59
- puts Rubyists::Namespacer.namespace!(File.read(__FILE__), 'Rubyists::Namespacer')
60
+ puts Rubyists::Namespacer.namespace!(File.read(__FILE__), 'Wrapped::Smoke::Test')
60
61
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: namespacer-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tj (bougyman) Vanderpoel
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubocop
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.21'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.21'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: ruby-filemagic
29
43
  requirement: !ruby/object:Gem::Requirement