svgeez 1.0.3 → 3.2.0

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.
@@ -1,3 +1,3 @@
1
1
  module Svgeez
2
- VERSION = '1.0.3'.freeze
2
+ VERSION = '3.2.0'.freeze
3
3
  end
@@ -1,10 +1,7 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'svgeez/version'
1
+ require_relative 'lib/svgeez/version'
5
2
 
6
3
  Gem::Specification.new do |spec|
7
- spec.required_ruby_version = '>= 2.2.6'
4
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.4', '< 2.8')
8
5
 
9
6
  spec.name = 'svgeez'
10
7
  spec.version = Svgeez::VERSION
@@ -16,16 +13,17 @@ Gem::Specification.new do |spec|
16
13
  spec.homepage = 'https://github.com/jgarber623/svgeez'
17
14
  spec.license = 'MIT'
18
15
 
19
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
16
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
17
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(bin|spec)/}) }
18
+ end
19
+
20
+ spec.bindir = 'exe'
21
+ spec.executables = ['svgeez']
21
22
  spec.require_paths = ['lib']
22
23
 
23
- spec.add_development_dependency 'bundler', '~> 1.10'
24
- spec.add_development_dependency 'codeclimate-test-reporter', '~> 0.6.0'
25
- spec.add_development_dependency 'rake', '~> 10.0'
26
- spec.add_development_dependency 'rspec', '~> 3.5'
27
- spec.add_development_dependency 'rubocop', '~> 0.42.0'
24
+ spec.metadata['bug_tracker_uri'] = "#{spec.homepage}/issues"
25
+ spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md"
28
26
 
29
- spec.add_runtime_dependency 'listen', '~> 3.0'
30
- spec.add_runtime_dependency 'mercenary', '~> 0.3'
27
+ spec.add_runtime_dependency 'listen', '~> 3.2'
28
+ spec.add_runtime_dependency 'mercenary', '~> 0.4.0'
31
29
  end
metadata CHANGED
@@ -1,113 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: svgeez
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Garber
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-17 00:00:00.000000000 Z
11
+ date: 2020-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.10'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.10'
27
- - !ruby/object:Gem::Dependency
28
- name: codeclimate-test-reporter
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 0.6.0
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 0.6.0
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '10.0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '10.0'
55
- - !ruby/object:Gem::Dependency
56
- name: rspec
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '3.5'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '3.5'
69
- - !ruby/object:Gem::Dependency
70
- name: rubocop
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 0.42.0
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 0.42.0
83
13
  - !ruby/object:Gem::Dependency
84
14
  name: listen
85
15
  requirement: !ruby/object:Gem::Requirement
86
16
  requirements:
87
17
  - - "~>"
88
18
  - !ruby/object:Gem::Version
89
- version: '3.0'
19
+ version: '3.2'
90
20
  type: :runtime
91
21
  prerelease: false
92
22
  version_requirements: !ruby/object:Gem::Requirement
93
23
  requirements:
94
24
  - - "~>"
95
25
  - !ruby/object:Gem::Version
96
- version: '3.0'
26
+ version: '3.2'
97
27
  - !ruby/object:Gem::Dependency
98
28
  name: mercenary
99
29
  requirement: !ruby/object:Gem::Requirement
100
30
  requirements:
101
31
  - - "~>"
102
32
  - !ruby/object:Gem::Version
103
- version: '0.3'
33
+ version: 0.4.0
104
34
  type: :runtime
105
35
  prerelease: false
106
36
  version_requirements: !ruby/object:Gem::Requirement
107
37
  requirements:
108
38
  - - "~>"
109
39
  - !ruby/object:Gem::Version
110
- version: '0.3'
40
+ version: 0.4.0
111
41
  description: Automatically generate an SVG sprite from a folder of SVG icons.
112
42
  email:
113
43
  - jason@sixtwothree.org
@@ -116,36 +46,41 @@ executables:
116
46
  extensions: []
117
47
  extra_rdoc_files: []
118
48
  files:
119
- - ".codeclimate.yml"
120
49
  - ".editorconfig"
121
50
  - ".gitignore"
51
+ - ".reek.yml"
122
52
  - ".rspec"
53
+ - ".rubocop"
123
54
  - ".rubocop.yml"
124
55
  - ".ruby-version"
56
+ - ".simplecov"
125
57
  - ".travis.yml"
58
+ - CHANGELOG.md
126
59
  - CODE_OF_CONDUCT.md
127
60
  - CONTRIBUTING.md
128
61
  - Gemfile
129
62
  - LICENSE
130
63
  - README.md
131
64
  - Rakefile
132
- - bin/svgeez
65
+ - exe/svgeez
133
66
  - lib/svgeez.rb
134
67
  - lib/svgeez/builder.rb
135
68
  - lib/svgeez/command.rb
136
69
  - lib/svgeez/commands/build.rb
137
70
  - lib/svgeez/commands/watch.rb
138
71
  - lib/svgeez/destination.rb
72
+ - lib/svgeez/elements/svg_element.rb
73
+ - lib/svgeez/elements/symbol_element.rb
139
74
  - lib/svgeez/optimizer.rb
140
75
  - lib/svgeez/source.rb
141
- - lib/svgeez/svg_element.rb
142
- - lib/svgeez/symbol_element.rb
143
76
  - lib/svgeez/version.rb
144
77
  - svgeez.gemspec
145
78
  homepage: https://github.com/jgarber623/svgeez
146
79
  licenses:
147
80
  - MIT
148
- metadata: {}
81
+ metadata:
82
+ bug_tracker_uri: https://github.com/jgarber623/svgeez/issues
83
+ changelog_uri: https://github.com/jgarber623/svgeez/blob/v3.2.0/CHANGELOG.md
149
84
  post_install_message:
150
85
  rdoc_options: []
151
86
  require_paths:
@@ -154,15 +89,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
154
89
  requirements:
155
90
  - - ">="
156
91
  - !ruby/object:Gem::Version
157
- version: 2.2.6
92
+ version: '2.4'
93
+ - - "<"
94
+ - !ruby/object:Gem::Version
95
+ version: '2.8'
158
96
  required_rubygems_version: !ruby/object:Gem::Requirement
159
97
  requirements:
160
98
  - - ">="
161
99
  - !ruby/object:Gem::Version
162
100
  version: '0'
163
101
  requirements: []
164
- rubyforge_project:
165
- rubygems_version: 2.4.5.2
102
+ rubygems_version: 3.1.3
166
103
  signing_key:
167
104
  specification_version: 4
168
105
  summary: Automatically generate an SVG sprite from a folder of SVG icons.
@@ -1,17 +0,0 @@
1
- ---
2
- engines:
3
- duplication:
4
- enabled: true
5
- config:
6
- languages:
7
- - ruby
8
- fixme:
9
- enabled: true
10
- rubocop:
11
- enabled: true
12
- ratings:
13
- paths:
14
- - bin/
15
- - lib/
16
- exclude_paths:
17
- - spec/
data/bin/svgeez DELETED
@@ -1,21 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- $LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w(.. lib))
4
-
5
- require 'mercenary'
6
- require 'svgeez'
7
-
8
- Mercenary.program(:svgeez) do |p|
9
- p.version Svgeez::VERSION
10
- p.description 'Generate an SVG sprite from a folder of SVG icons.'
11
- p.syntax 'svgeez <subcommand> [options]'
12
-
13
- Svgeez::Command.subclasses.each { |c| c.init_with_program(p) }
14
-
15
- p.action do |args, _|
16
- if args.empty?
17
- puts p
18
- abort
19
- end
20
- end
21
- end
@@ -1,18 +0,0 @@
1
- module Svgeez
2
- class SvgElement
3
- def initialize(source, destination)
4
- @source = source
5
- @destination = destination
6
- end
7
-
8
- def build
9
- %(<svg id="#{@destination.file_id}" version="1.1" xmlns="http://www.w3.org/2000/svg">#{element_contents}</svg>)
10
- end
11
-
12
- private
13
-
14
- def element_contents
15
- @source.file_paths.map { |file_path| SymbolElement.new(file_path, @destination.file_id).build }.join
16
- end
17
- end
18
- end
@@ -1,30 +0,0 @@
1
- module Svgeez
2
- class SymbolElement
3
- def initialize(file_path, file_id)
4
- @file_path = file_path
5
- @file_id = file_id
6
- end
7
-
8
- def build
9
- IO.read(@file_path).match(%r{^<svg\s*?(?<attributes>.*?)>(?<content>.*?)</svg>}m) do |matches|
10
- %(<symbol #{element_attributes(matches[:attributes]).sort.join(' ')}>#{element_contents(matches[:content])}</symbol>)
11
- end
12
- end
13
-
14
- private
15
-
16
- def element_attributes(attributes)
17
- attrs = attributes.scan(/(?:viewBox|xmlns:.+?)=".*?"/m)
18
-
19
- attrs << %(id="#{@file_id}-#{File.basename(@file_path, '.svg').gsub(/['"\s]/, '-')}")
20
- end
21
-
22
- def element_contents(content)
23
- content.scan(/\sid="(.+?)"/).flatten.each do |value|
24
- content.gsub!(/\s(id|xlink:href)="(#?#{value})"/m, %( \\1="\\2-#{SecureRandom.uuid}"))
25
- end
26
-
27
- content
28
- end
29
- end
30
- end