xembly 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -20,14 +21,14 @@
20
21
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
22
  # SOFTWARE.
22
23
 
23
- require 'xembly/add'
24
- require 'xembly/addif'
25
- require 'xembly/attr'
26
- require 'xembly/remove'
27
- require 'xembly/set'
28
- require 'xembly/strict'
29
- require 'xembly/up'
30
- require 'xembly/xpath'
24
+ require_relative 'add'
25
+ require_relative 'addif'
26
+ require_relative 'attr'
27
+ require_relative 'remove'
28
+ require_relative 'set'
29
+ require_relative 'strict'
30
+ require_relative 'up'
31
+ require_relative 'xpath'
31
32
 
32
33
  module Xembly
33
34
  # Directives
@@ -36,10 +37,10 @@ module Xembly
36
37
  # +text+:: Directives in text
37
38
  def initialize(text)
38
39
  @array = text
39
- .strip
40
- .scan(/([A-Za-z]+)(?:\s+"([^"]+)")?(?:\s*,\s*"([^"]+)")*\s*;/)
41
- .map { |t| t.reject(&:nil?) }
42
- .map { |t| Directives.map(t) }
40
+ .strip
41
+ .scan(/([A-Za-z]+)(?:\s+"([^"]+)")?(?:\s*,\s*"([^"]+)")*\s*;/)
42
+ .map(&:compact)
43
+ .map { |t| Directives.map(t) }
43
44
  end
44
45
 
45
46
  def each(&block)
@@ -60,15 +61,15 @@ module Xembly
60
61
  when 'ATTR'
61
62
  Attr.new(args[0], args[1])
62
63
  when 'CDATA'
63
- fail 'CDATA command is not supported yet, please contribute'
64
+ raise 'CDATA command is not supported yet, please contribute'
64
65
  when 'NS'
65
- fail 'NS command is not supported yet, please contribute'
66
+ raise 'NS command is not supported yet, please contribute'
66
67
  when 'PI'
67
- fail 'PI command is not supported yet, please contribute'
68
+ raise 'PI command is not supported yet, please contribute'
68
69
  when 'POP'
69
- fail 'POP command is not supported yet, please contribute'
70
+ raise 'POP command is not supported yet, please contribute'
70
71
  when 'PUSH'
71
- fail 'PUSH command is not supported yet, please contribute'
72
+ raise 'PUSH command is not supported yet, please contribute'
72
73
  when 'REMOVE'
73
74
  Remove.new
74
75
  when 'SET'
@@ -80,9 +81,9 @@ module Xembly
80
81
  when 'XPATH'
81
82
  Xpath.new(args[0])
82
83
  when 'XSET'
83
- fail 'XSET command is not supported yet, please contribute'
84
+ raise 'XSET command is not supported yet, please contribute'
84
85
  else
85
- fail "Unknown command \"#{cmd}\""
86
+ raise "Unknown command \"#{cmd}\""
86
87
  end
87
88
  end
88
89
  end
data/lib/xembly/remove.rb CHANGED
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -20,7 +21,7 @@
20
21
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
22
  # SOFTWARE.
22
23
 
23
- require 'xembly'
24
+ require_relative '../xembly/base'
24
25
 
25
26
  module Xembly
26
27
  # REMOVE directive
data/lib/xembly/set.rb CHANGED
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -21,7 +22,7 @@
21
22
  # SOFTWARE.
22
23
 
23
24
  require 'nokogiri'
24
- require 'xembly'
25
+ require_relative '../xembly/base'
25
26
 
26
27
  module Xembly
27
28
  # SET directive
data/lib/xembly/strict.rb CHANGED
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -21,6 +22,7 @@
21
22
  # SOFTWARE.
22
23
 
23
24
  require 'nokogiri'
25
+ require_relative '../xembly/base'
24
26
 
25
27
  module Xembly
26
28
  # STRICT directive
@@ -32,8 +34,9 @@ module Xembly
32
34
  end
33
35
 
34
36
  def exec(_, cursor)
35
- fail "there are #{cursor.length} nodes, while #{@count} expected" unless \
37
+ raise "there are #{cursor.length} nodes, while #{@count} expected" unless \
36
38
  cursor.length == @count
39
+
37
40
  cursor
38
41
  end
39
42
  end
data/lib/xembly/up.rb CHANGED
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -21,6 +22,7 @@
21
22
  # SOFTWARE.
22
23
 
23
24
  require 'nokogiri'
25
+ require_relative '../xembly/base'
24
26
 
25
27
  module Xembly
26
28
  # UP directive
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -21,9 +22,9 @@
21
22
  # SOFTWARE.
22
23
 
23
24
  # Xembly main module.
24
- # Author:: Yegor Bugayenko (yegor@teamed.io)
25
- # Copyright:: Copyright (c) 2016 Yegor Bugayenko
25
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
26
+ # Copyright:: Copyright (c) 2016-2024 Yegor Bugayenko
26
27
  # License:: MIT
27
28
  module Xembly
28
- VERSION = '0.4.2'
29
+ VERSION = '0.5.0'
29
30
  end
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -20,7 +21,7 @@
20
21
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
22
  # SOFTWARE.
22
23
 
23
- require 'xembly'
24
+ require_relative '../xembly/base'
24
25
 
25
26
  module Xembly
26
27
  # Xembler
@@ -37,6 +38,7 @@ module Xembly
37
38
  cursor = [dom]
38
39
  @dirs.each do |dir|
39
40
  cursor = dir.exec(dom, cursor)
41
+ Xembly.log.info "Applied: #{dir}"
40
42
  end
41
43
  Xembly.log.info "#{@dirs.length} directive(s) applied"
42
44
  dom
data/lib/xembly/xpath.rb CHANGED
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -21,6 +22,7 @@
21
22
  # SOFTWARE.
22
23
 
23
24
  require 'nokogiri'
25
+ require_relative '../xembly/base'
24
26
 
25
27
  module Xembly
26
28
  # XPATH directive
data/lib/xembly.rb CHANGED
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -20,62 +21,10 @@
20
21
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
22
  # SOFTWARE.
22
23
 
23
- require 'xembly/version'
24
- require 'xembly/xembler'
25
- require 'xembly/directives'
26
24
  require 'nokogiri'
27
25
  require 'logger'
28
26
  require 'time'
29
-
30
- # Xembly main module.
31
- # Author:: Yegor Bugayenko (yegor@teamed.io)
32
- # Copyright:: Copyright (c) 2016 Yegor Bugayenko
33
- # License:: MIT
34
- module Xembly
35
- # Get logger.
36
- def self.log
37
- unless @logger
38
- @logger = Logger.new(STDOUT)
39
- @logger.formatter = proc { |severity, _, _, msg|
40
- "#{severity}: #{msg.dump}\n"
41
- }
42
- @logger.level = Logger::ERROR
43
- end
44
- @logger
45
- end
46
-
47
- class << self
48
- attr_writer :logger
49
- end
50
-
51
- # Code base abstraction
52
- class Base
53
- # Ctor.
54
- # +opts+:: Options
55
- def initialize(opts)
56
- @opts = opts
57
- Xembly.log.level = Logger::INFO if @opts.verbose?
58
- Xembly.log.info "my version is #{Xembly::VERSION}"
59
- Xembly.log.info "Ruby version is #{RUBY_VERSION} at #{RUBY_PLATFORM}"
60
- end
61
-
62
- # Generate XML.
63
- def xml
64
- if @opts.xml?
65
- xml = File.read(@opts[:xml])
66
- Xembly.log.info "reading #{@opts[:xml]}"
67
- else
68
- xml = STDIN.read
69
- Xembly.log.info 'reading STDIN'
70
- end
71
- if @opts.dirs?
72
- Xembly.log.info "reading directives from #{@opts[:dirs]}"
73
- dirs = File.read(@opts[:dirs])
74
- else
75
- Xembly.log.info "#{@opts.arguments.length} directives in command line"
76
- dirs = @opts.arguments.join('')
77
- end
78
- Xembler.new(Directives.new(dirs)).apply(xml).to_xml
79
- end
80
- end
81
- end
27
+ require_relative 'xembly/version'
28
+ require_relative 'xembly/xembler'
29
+ require_relative 'xembly/directives'
30
+ require_relative 'xembly/base'
data/renovate.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": [
4
+ "config:base"
5
+ ]
6
+ }
data/test/test__helper.rb CHANGED
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -22,17 +23,17 @@
22
23
 
23
24
  require 'simplecov'
24
25
  require 'nokogiri'
25
- require 'xembly'
26
26
  require 'minitest/autorun'
27
+ require_relative '../lib/xembly'
27
28
 
28
29
  # Xembly test, parent class.
29
- # Author:: Yegor Bugayenko (yegor@teamed.io)
30
- # Copyright:: Copyright (c) 2016 Yegor Bugayenko
30
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
31
+ # Copyright:: Copyright (c) 2016-2024 Yegor Bugayenko
31
32
  # License:: MIT
32
33
  class XeTest < Minitest::Test
33
34
  def matches(xml, xpaths)
34
35
  xpaths.each do |xpath|
35
- fail "doesn't match '#{xpath}': #{xml}" \
36
+ raise "doesn't match '#{xpath}': #{xml}" \
36
37
  unless Nokogiri::XML(xml).xpath(xpath).size == 1
37
38
  end
38
39
  end
data/test/test_add.rb CHANGED
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -24,8 +25,8 @@ require 'xembly/add'
24
25
  require 'test__helper'
25
26
 
26
27
  # Xembly::Add tests.
27
- # Author:: Yegor Bugayenko (yegor@teamed.io)
28
- # Copyright:: Copyright (c) 2016 Yegor Bugayenko
28
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
29
+ # Copyright:: Copyright (c) 2016-2024 Yegor Bugayenko
29
30
  # License:: MIT
30
31
  class TestAdd < XeTest
31
32
  def test_adds_nodes
data/test/test_addif.rb CHANGED
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -24,8 +25,8 @@ require 'xembly/addif'
24
25
  require 'test__helper'
25
26
 
26
27
  # Xembly::AddIf tests.
27
- # Author:: Yegor Bugayenko (yegor@teamed.io)
28
- # Copyright:: Copyright (c) 2016 Yegor Bugayenko
28
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
29
+ # Copyright:: Copyright (c) 2016-2024 Yegor Bugayenko
29
30
  # License:: MIT
30
31
  class TestAddIf < XeTest
31
32
  def test_skips_nodes
data/test/test_attr.rb CHANGED
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -24,8 +25,8 @@ require 'xembly/attr'
24
25
  require 'test__helper'
25
26
 
26
27
  # Xembly::Attr tests.
27
- # Author:: Yegor Bugayenko (yegor@teamed.io)
28
- # Copyright:: Copyright (c) 2016 Yegor Bugayenko
28
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
29
+ # Copyright:: Copyright (c) 2016-2024 Yegor Bugayenko
29
30
  # License:: MIT
30
31
  class TestAttr < XeTest
31
32
  def test_sets_attributes
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -25,8 +26,8 @@ require 'nokogiri'
25
26
  require 'xembly/directives'
26
27
 
27
28
  # Xembly::Directives module tests.
28
- # Author:: Yegor Bugayenko (yegor@teamed.io)
29
- # Copyright:: Copyright (c) 2016 Yegor Bugayenko
29
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
30
+ # Copyright:: Copyright (c) 2016-2024 Yegor Bugayenko
30
31
  # License:: MIT
31
32
  class TestDirectives < Minitest::Test
32
33
  def test_parses_directives
data/test/test_remove.rb CHANGED
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -24,8 +25,8 @@ require 'xembly/remove'
24
25
  require 'test__helper'
25
26
 
26
27
  # Xembly::Remove tests.
27
- # Author:: Yegor Bugayenko (yegor@teamed.io)
28
- # Copyright:: Copyright (c) 2016 Yegor Bugayenko
28
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
29
+ # Copyright:: Copyright (c) 2016-2024 Yegor Bugayenko
29
30
  # License:: MIT
30
31
  class TestRemove < XeTest
31
32
  def test_adds_nodes
data/test/test_set.rb CHANGED
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -24,8 +25,8 @@ require 'xembly/set'
24
25
  require 'test__helper'
25
26
 
26
27
  # Xembly::Set tests.
27
- # Author:: Yegor Bugayenko (yegor@teamed.io)
28
- # Copyright:: Copyright (c) 2016 Yegor Bugayenko
28
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
29
+ # Copyright:: Copyright (c) 2016-2024 Yegor Bugayenko
29
30
  # License:: MIT
30
31
  class TestSet < XeTest
31
32
  def test_sets_values
data/test/test_xembler.rb CHANGED
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -24,11 +25,11 @@ require 'minitest/autorun'
24
25
  require 'nokogiri'
25
26
  require 'xembly/xembler'
26
27
  require 'xembly/directives'
27
- require 'test__helper'
28
+ require_relative 'test__helper'
28
29
 
29
30
  # Xembly::Xembler module tests.
30
- # Author:: Yegor Bugayenko (yegor@teamed.io)
31
- # Copyright:: Copyright (c) 2016 Yegor Bugayenko
31
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
32
+ # Copyright:: Copyright (c) 2016-2024 Yegor Bugayenko
32
33
  # License:: MIT
33
34
  class TestXembler < XeTest
34
35
  def test_modifies_xml
data/test/test_xembly.rb CHANGED
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -22,14 +23,14 @@
22
23
 
23
24
  require 'minitest/autorun'
24
25
  require 'nokogiri'
25
- require 'xembly'
26
26
  require 'tmpdir'
27
27
  require 'slop'
28
- require 'test__helper'
28
+ require_relative '../lib/xembly'
29
+ require_relative 'test__helper'
29
30
 
30
31
  # Xembly main module test.
31
- # Author:: Yegor Bugayenko (yegor@teamed.io)
32
- # Copyright:: Copyright (c) 2016 Yegor Bugayenko
32
+ # Author:: Yegor Bugayenko (yegor256@gmail.com)
33
+ # Copyright:: Copyright (c) 2016-2024 Yegor Bugayenko
33
34
  # License:: MIT
34
35
  class TestXembly < XeTest
35
36
  def test_basic
@@ -68,7 +69,7 @@ class TestXembly < XeTest
68
69
  private
69
70
 
70
71
  def opts(args)
71
- Slop.parse args do |o|
72
+ Slop.parse(args, help: true) do |o|
72
73
  o.on '-v', '--verbose'
73
74
  o.string '-x', '--xml', argument: :required
74
75
  o.string '-d', '--dirs', argument: :required
data/xembly.gemspec CHANGED
@@ -1,6 +1,7 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  #
3
- # Copyright (c) 2016 Yegor Bugayenko
4
+ # Copyright (c) 2016-2024 Yegor Bugayenko
4
5
  #
5
6
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
7
  # of this software and associated documentation files (the 'Software'), to deal
@@ -20,38 +21,27 @@
20
21
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
22
  # SOFTWARE.
22
23
 
23
- lib = File.expand_path('../lib', __FILE__)
24
+ lib = File.expand_path('lib', __dir__)
24
25
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
25
26
  require 'xembly/version'
26
27
 
27
28
  Gem::Specification.new do |s|
28
- s.specification_version = 2 if s.respond_to? :specification_version=
29
- if s.respond_to? :required_rubygems_version=
30
- s.required_rubygems_version = Gem::Requirement.new('>= 0')
31
- end
32
- s.rubygems_version = '2.2.2'
33
- s.required_ruby_version = '>= 2.0.0'
29
+ s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
30
+ s.required_ruby_version = '>= 2.5'
34
31
  s.name = 'xembly'
35
32
  s.version = Xembly::VERSION
36
33
  s.license = 'MIT'
37
34
  s.summary = 'Xembly Gem'
38
35
  s.description = 'Command Line XML Manipulator'
39
36
  s.authors = ['Yegor Bugayenko']
40
- s.email = 'yegor@teamed.io'
37
+ s.email = 'yegor256@gmail.com'
41
38
  s.homepage = 'http://github.com/yegor256/xembly-gem'
42
39
  s.files = `git ls-files`.split($RS)
43
- s.executables = s.files.grep(/^bin\//) { |f| File.basename(f) }
44
- s.test_files = s.files.grep(/^(test|spec|features)\//)
40
+ s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
45
41
  s.rdoc_options = ['--charset=UTF-8']
46
42
  s.extra_rdoc_files = ['README.md', 'LICENSE.txt']
47
- s.add_runtime_dependency 'nokogiri', '1.6.7.2'
48
- s.add_runtime_dependency 'slop', '4.3.0'
49
- s.add_runtime_dependency 'rake', '11.1.1'
50
- s.add_development_dependency 'coveralls', '0.7.2'
51
- s.add_development_dependency 'rdoc', '4.2.0'
52
- s.add_development_dependency 'cucumber', '1.3.17'
53
- s.add_development_dependency 'minitest', '5.5.0'
54
- s.add_development_dependency 'rubocop', '0.24.1'
55
- s.add_development_dependency 'rubocop-rspec', '1.2.1'
56
- s.add_development_dependency 'rspec-rails', '3.1.0'
43
+ s.add_runtime_dependency 'nokogiri', '1.16.2'
44
+ s.add_runtime_dependency 'rake', '13.1.0'
45
+ s.add_runtime_dependency 'slop', '4.10.1'
46
+ s.metadata['rubygems_mfa_required'] = 'true'
57
47
  end