svgeez 1.0.3 → 3.2.0

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