savagery 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rspec +2 -0
- data/app/assets/javascripts/savagery/ember.js +4 -1
- data/lib/savagery/engine.rb +2 -2
- data/lib/savagery/helpers/rails.rb +21 -0
- data/lib/savagery/helpers.rb +16 -13
- data/lib/savagery/spriter/image.rb +1 -1
- data/lib/savagery/version.rb +1 -1
- data/savagery.gemspec +3 -0
- data/spec/helpers/rails_spec.rb +38 -0
- data/spec/helpers_spec.rb +27 -0
- data/spec/savagery_spec.rb +7 -12
- data/spec/spec_helper.rb +61 -0
- data/spec/spriter_spec.rb +17 -0
- data/spec/support/svgs.svg +131 -131
- metadata +40 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0150cff94514f6d8587a3257ae0a5962030e5fb0
|
4
|
+
data.tar.gz: 0608e6d5e9f859a73ff54c51bc5d2af5fe58cddd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 452d67396808834c178b3e1d58d7b61c1ecba8553c0aa5ff450dd950898fd97b5223afa477fed19df4973abe7b02906ab8c0e458729de6497e47843db8413d1f
|
7
|
+
data.tar.gz: 367674cd61251f38b0af3b275dfa27a9ad85a316a70a829da401aafa88fc2f5b8ebd7e7aee15e9700fa8cab5def010a90790d1cbbf85b927d9ed29b01c0fd32d
|
data/.rspec
ADDED
@@ -1,9 +1,12 @@
|
|
1
|
+
//= require ember-rails-assets
|
2
|
+
|
1
3
|
Savagery = {
|
2
4
|
svgSpriteInclude: function(name) {
|
3
5
|
if(this._svgSpritesIncluded[name]) { return; }
|
4
6
|
this._svgSpritesIncluded[name] = true
|
5
7
|
|
6
|
-
|
8
|
+
path = window.ASSETS.path(name + ".svg")
|
9
|
+
$.get(path, function(data) {
|
7
10
|
$("body").prepend(data);
|
8
11
|
}, "text");
|
9
12
|
},
|
data/lib/savagery/engine.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
require "rails"
|
2
|
-
require "savagery/helpers"
|
2
|
+
require "savagery/helpers/rails"
|
3
3
|
require "savagery/middleware"
|
4
4
|
|
5
5
|
module Savagery
|
6
6
|
class Engine < Rails::Engine
|
7
7
|
initializer "savagery.helpers" do |app|
|
8
|
-
ApplicationController.helper
|
8
|
+
ApplicationController.helper Helpers::Rails
|
9
9
|
end
|
10
10
|
|
11
11
|
initializer "savagery.middleware" do |app|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "set"
|
2
|
+
require "savagery/helpers"
|
3
|
+
|
4
|
+
module Savagery
|
5
|
+
module Helpers::Rails
|
6
|
+
def svg_sprite_include *args
|
7
|
+
raw _svg_sprite_helper.svg_sprite_include(*args)
|
8
|
+
end
|
9
|
+
|
10
|
+
def svg_sprite_use *args
|
11
|
+
raw _svg_sprite_helper.svg_sprite_use(*args)
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def _svg_sprite_helper
|
17
|
+
@_svg_sprite_helper ||= Helpers.new("app/assets/svgs")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
data/lib/savagery/helpers.rb
CHANGED
@@ -1,29 +1,32 @@
|
|
1
1
|
require "set"
|
2
2
|
|
3
3
|
module Savagery
|
4
|
-
|
4
|
+
class Helpers < Struct.new(:base_path)
|
5
5
|
def svg_sprite_include path
|
6
|
-
return raw("") if svg_sprites_included.include?(path)
|
7
6
|
svg_sprites_included.add path
|
8
|
-
|
9
|
-
sprite_file = "app/assets/svgs/#{path}.svg"
|
10
|
-
raw File.read(sprite_file)
|
7
|
+
svg_sprite_read(path)
|
11
8
|
end
|
12
9
|
|
13
10
|
def svg_sprite_use name, options={}
|
14
|
-
dirname =
|
15
|
-
sprite = svg_sprite_include(dirname)
|
16
|
-
|
17
|
-
|
18
|
-
options[:class] ||= basename
|
19
|
-
sprite + content_tag(:svg, options) do
|
20
|
-
content_tag :use, nil, "xlink:href" => "##{basename}"
|
21
|
-
end
|
11
|
+
dirname, basename = name.split("/")
|
12
|
+
sprite = svg_sprite_include(dirname) unless svg_sprites_included.include?(dirname)
|
13
|
+
use = %(<svg class="#{options[:class] || basename}"><use xlink:href="##{basename}"></use></svg>)
|
14
|
+
[sprite, use].join
|
22
15
|
end
|
23
16
|
|
17
|
+
private
|
18
|
+
|
24
19
|
def svg_sprites_included
|
25
20
|
@svg_sprites_included ||= Set.new
|
26
21
|
end
|
22
|
+
|
23
|
+
def svg_sprite_read path
|
24
|
+
File.read(svg_sprite_path(path))
|
25
|
+
end
|
26
|
+
|
27
|
+
def svg_sprite_path path
|
28
|
+
File.join(base_path, "#{path}.svg")
|
29
|
+
end
|
27
30
|
end
|
28
31
|
end
|
29
32
|
|
data/lib/savagery/version.rb
CHANGED
data/savagery.gemspec
CHANGED
@@ -18,7 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
+
spec.add_dependency "ember-rails-assets"
|
22
|
+
|
21
23
|
spec.add_development_dependency "bundler", "~> 1.6"
|
24
|
+
spec.add_development_dependency "actionview"
|
22
25
|
spec.add_development_dependency "rake"
|
23
26
|
spec.add_development_dependency "rspec"
|
24
27
|
spec.add_development_dependency "byebug"
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require "savagery/helpers/rails"
|
2
|
+
require "action_view"
|
3
|
+
|
4
|
+
describe Savagery::Helpers::Rails do
|
5
|
+
subject { ActionView::Base.new.extend(described_class) }
|
6
|
+
|
7
|
+
context "given a sprite" do
|
8
|
+
let(:helpers) do
|
9
|
+
double(svg_sprite_include: "<svg_sprite_include />",
|
10
|
+
svg_sprite_use: "<svg_sprite_use />")
|
11
|
+
end
|
12
|
+
|
13
|
+
before do
|
14
|
+
Savagery::Helpers.should_receive(:new).with("app/assets/svgs").and_return(helpers)
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "#svg_sprite_include" do
|
18
|
+
it "delegates to helpers" do
|
19
|
+
subject.svg_sprite_include.should == "<svg_sprite_include />"
|
20
|
+
end
|
21
|
+
|
22
|
+
it "is marked as safe to embed" do
|
23
|
+
subject.svg_sprite_include.should be_html_safe
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#svg_sprite_use" do
|
28
|
+
it "delegates to helpers" do
|
29
|
+
subject.svg_sprite_use.should == "<svg_sprite_use />"
|
30
|
+
end
|
31
|
+
|
32
|
+
it "is marked as safe to embed" do
|
33
|
+
subject.svg_sprite_use.should be_html_safe
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require "fileutils"
|
2
|
+
require "savagery/helpers"
|
3
|
+
|
4
|
+
describe Savagery::Helpers do
|
5
|
+
context "given a sprite" do
|
6
|
+
before do
|
7
|
+
FileUtils.rm_rf "tmp/svgs.svg"
|
8
|
+
File.write "tmp/svgs.svg", "<svg-defs/>\n"
|
9
|
+
end
|
10
|
+
|
11
|
+
subject { described_class.new("tmp") }
|
12
|
+
|
13
|
+
describe "#svg_sprite_use" do
|
14
|
+
it "outputs the sprite plus svg use element on first try" do
|
15
|
+
subject.svg_sprite_use("svgs/wtf").should ==
|
16
|
+
%(<svg-defs/>\n<svg class="wtf"><use xlink:href="#wtf"></use></svg>)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "outputs just the svg use element on second try" do
|
20
|
+
subject.svg_sprite_use("svgs/wtf")
|
21
|
+
subject.svg_sprite_use("svgs/wtf").should ==
|
22
|
+
%(<svg class="wtf"><use xlink:href="#wtf"></use></svg>)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
data/spec/savagery_spec.rb
CHANGED
@@ -1,19 +1,14 @@
|
|
1
1
|
require "savagery"
|
2
|
-
require "fileutils"
|
3
|
-
require "byebug"
|
4
2
|
|
5
3
|
describe Savagery do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
let(:spriter) { double(:spriter) }
|
5
|
+
let(:path) { double(:path) }
|
6
|
+
|
7
|
+
it ".sprite! delegates to Savagery::Spriter" do
|
8
|
+
Savagery::Spriter.should_receive(:new).with(path).and_return(spriter)
|
9
|
+
spriter.should_receive(:sprite!)
|
11
10
|
|
12
|
-
|
13
|
-
Savagery.sprite!("tmp/svgs")
|
14
|
-
actual = File.read("tmp/svgs.svg")
|
15
|
-
expected = File.read("spec/support/svgs.svg")
|
16
|
-
expect(actual).to eq expected
|
11
|
+
subject.sprite!(path)
|
17
12
|
end
|
18
13
|
end
|
19
14
|
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
require "byebug"
|
2
|
+
|
3
|
+
RSpec.configure do |config|
|
4
|
+
# These two settings work together to allow you to limit a spec run
|
5
|
+
# to individual examples or groups you care about by tagging them with
|
6
|
+
# `:focus` metadata. When nothing is tagged with `:focus`, all examples
|
7
|
+
# get run.
|
8
|
+
config.filter_run :focus
|
9
|
+
config.run_all_when_everything_filtered = true
|
10
|
+
|
11
|
+
# Many RSpec users commonly either run the entire suite or an individual
|
12
|
+
# file, and it's useful to allow more verbose output when running an
|
13
|
+
# individual spec file.
|
14
|
+
if config.files_to_run.one?
|
15
|
+
# Use the documentation formatter for detailed output,
|
16
|
+
# unless a formatter has already been configured
|
17
|
+
# (e.g. via a command-line flag).
|
18
|
+
config.default_formatter = 'doc'
|
19
|
+
end
|
20
|
+
|
21
|
+
# Print the 10 slowest examples and example groups at the
|
22
|
+
# end of the spec run, to help surface which specs are running
|
23
|
+
# particularly slow.
|
24
|
+
# config.profile_examples = 10
|
25
|
+
|
26
|
+
# Run specs in random order to surface order dependencies. If you find an
|
27
|
+
# order dependency and want to debug it, you can fix the order by providing
|
28
|
+
# the seed, which is printed after each run.
|
29
|
+
# --seed 1234
|
30
|
+
config.order = :random
|
31
|
+
|
32
|
+
# Seed global randomization in this process using the `--seed` CLI option.
|
33
|
+
# Setting this allows you to use `--seed` to deterministically reproduce
|
34
|
+
# test failures related to randomization by passing the same `--seed` value
|
35
|
+
# as the one that triggered the failure.
|
36
|
+
Kernel.srand config.seed
|
37
|
+
|
38
|
+
# rspec-expectations config goes here. You can use an alternate
|
39
|
+
# assertion/expectation library such as wrong or the stdlib/minitest
|
40
|
+
# assertions if you prefer.
|
41
|
+
config.expect_with :rspec do |expectations|
|
42
|
+
# Enable only the newer, non-monkey-patching expect syntax.
|
43
|
+
# For more details, see:
|
44
|
+
# - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
|
45
|
+
expectations.syntax = [:should, :expect]
|
46
|
+
end
|
47
|
+
|
48
|
+
# rspec-mocks config goes here. You can use an alternate test double
|
49
|
+
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
50
|
+
config.mock_with :rspec do |mocks|
|
51
|
+
# Enable only the newer, non-monkey-patching expect syntax.
|
52
|
+
# For more details, see:
|
53
|
+
# - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
|
54
|
+
mocks.syntax = [:should, :expect]
|
55
|
+
|
56
|
+
# Prevents you from mocking or stubbing a method that does not exist on
|
57
|
+
# a real object. This is generally recommended.
|
58
|
+
mocks.verify_partial_doubles = true
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require "savagery/spriter"
|
2
|
+
require "fileutils"
|
3
|
+
|
4
|
+
describe Savagery::Spriter do
|
5
|
+
before do
|
6
|
+
FileUtils.rm_rf ["tmp/svgs", "tmp/svgs.svg"]
|
7
|
+
FileUtils.cp_r "spec/support/svgs", "tmp/svgs"
|
8
|
+
end
|
9
|
+
|
10
|
+
subject { described_class.new("tmp/svgs") }
|
11
|
+
|
12
|
+
it "#sprite!" do
|
13
|
+
subject.sprite!
|
14
|
+
File.read("tmp/svgs.svg").should == File.read("spec/support/svgs.svg")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
data/spec/support/svgs.svg
CHANGED
@@ -1,142 +1,142 @@
|
|
1
1
|
<svg style="display: none"><defs>
|
2
2
|
|
3
|
-
<symbol id="callout1">
|
4
|
-
<g opacity="0.6">
|
5
|
-
<path fill="#C2DFF5" d="M945.959,12.514c-2.913-1.25-7.968-1.442-12.753-1.714C936.875,12.009,940.785,12.569,945.959,12.514z"/>
|
6
|
-
<polygon fill="#C2DFF5" points="933.113,10.772 933.04,10.787 933.206,10.799 "/>
|
7
|
-
<path fill="#C2DFF5" d="M3.523,51.041l3.941-0.017C6.145,50.967,4.802,50.945,3.523,51.041z"/>
|
8
|
-
<path fill="#C2DFF5" d="M701.295,3.878l-0.759,1.989c-11.356-0.141-3.272-2.336-13.78-1.999
|
9
|
-
c-4.148,2.766-17.437-0.551-21.088,0.897c0.085-0.223-5.055-0.385-4.717-1.264c-1.597,1.511-5.293,0.278-8.541,0.622
|
10
|
-
c-1.182,0.409,0.855,0.472,1.728,0.947l-7.436,0.432c-2.898-0.536-3.601-1.45-0.44-1.57c-19.403-0.837-112.581-3.684-133.505-3.227
|
11
|
-
c2.671,1.198,9.138,0.51,11.564,2.368c-5.544,0.941-8.135-0.477-10.587,0.563c-2.083-2.744-12.142-0.83-16.286-3.637l-1.608,1.511
|
12
|
-
l-2.733-0.98c-24.339,1.24-5.568,0.699-27.117,0.018c-12.479,0.052-18.438,2.095-25.367,1.208c1.031,0.031,3.768,1.011,0.531,1.357
|
13
|
-
c-0.531-1.357-8.618,0.839-10.172-0.543c-3.168,0.122-13.419-0.204-9.976,1.691c-1.728-0.946-10.871-1.457-5.413-2.176
|
14
|
-
c-3.085-0.099-6.072-0.416-8.299-0.041l3.955,0.572c-10.427,0.113-16.087-1.397-22.901,0.169l3.841,0.791
|
15
|
-
c-6.233,0.026-11.447,0.084-13.868-1.774l6.407-0.467c-10.337-0.105-16.571-0.078-25.2,0.766l3.074,0.095
|
16
|
-
c-11.001,1.659-68.436,2.317-78.583,4.449l4.637,1.484l-8.714,1.064c1.028,0.032,4.265-4.536,5.12-4.061
|
17
|
-
C266.426,4.989,169.48,4.654,152.284,3.446c-6.933-0.888-1.216-2.267-1.133-2.49c-8.459,0.406-3.668,1.447-10.851,1.22
|
18
|
-
c-1.958-0.284,0.423-1.104,1.528-1.29c-3.151,0.123-6.063-0.412-6.313,0.245c3.93,0.572,2.236,2.304,3.887,3.469l-9.24-0.289
|
19
|
-
l0.426-1.103c-2.06-0.064-5.271,2.955-14.34,2.225C100.938,4.728,84.297,4.87,68.9,4.387c0.25-0.663,3.489-1.008,6.737-1.35
|
20
|
-
c-2.066-0.065-5.214,0.059-7.109-0.448c3.702,1.231-6.476,0.687-3.575,1.226C53.633,6.359,39.074,3.668,29.09,5.359
|
21
|
-
C28.184,7.785,7.149,46.917,7.106,49.814C4.015,49.717,0.94,49.619,0,49.367c0.787,0.695,6.859,1.108,10.095,0.766l0.58-1.545
|
22
|
-
c7.439-0.436,1.728,0.949,8.981,0.951c0.369,1.277-6.312,1.45-12.192,1.485c5.292,0.227,10.549,1.229,12.726-0.13
|
23
|
-
c4.967,0.603-0.577,1.544,5.407,2.178c4.273-0.312,9.896-1.473,14.789-0.648l-0.091,0.223c11.899,1.488,18.264-1.658,29.135-0.199
|
24
|
-
l-1.179,0.407c3.838,0.792,11.431-0.083,18.363,0.803c-1.978-0.285-3.685-1.229,0.492-1.318c7.973,0.917,13.431,0.198,19.253,1.272
|
25
|
-
l5.62-1.161c27.793,0.656,137.619,0.509,165.546,0.723l-1.097,0.183c42.555,0.005,129.891,1.392,173.889,0.329
|
26
|
-
c6.782,1.322,16.167,1.173,23.256,1.622c-3.938-0.569-2.574-1.419,0.506-1.323c21.617,0.461,1.471-0.825,23.343-1.025
|
27
|
-
c25.191-0.766,121.518,1.953,143.85,3.328c12.03-1.629,26.996-0.042,38.773-1.01l-1.19,0.407
|
28
|
-
c12.641-0.491,84.114,2.237,98.805,1.81l-1.97-0.288c12.817-0.933,11.045,1.018,21.123,1.782c-1.296-2.046,9.69-3.033,13.875-3.124
|
29
|
-
l-0.164,0.44c6.313-0.248,20.629-1.797,31.052-1.914l-0.424,1.102c8.706-1.062,25.035-0.327,31.28-0.351
|
30
|
-
c14.274,0.67,36.27,2.926,55.386,1.743l12.29,3.342l1.812-0.288c0,0,20.43-37.86-4.67-46.359l0.418-1.1l-4.987,0.069
|
31
|
-
c-5.976-0.633-8.762,0.609-8.339-0.489l8.194,0.258c-6.007-0.41-1.801-0.936,0.504-1.528c-2.509-0.145-4.943-0.312-6.936-0.683
|
32
|
-
c-1.191,0.409,0.863,0.473,1.795,0.726c-3.239,0.343-7.757,1.316-11.687,0.748c-6.154-0.196-0.366-1.798-7.546-2.022
|
33
|
-
c-37.866-1.417-74.551-3.242-112.841-3.559c-0.863-0.472,0.174-0.439,1.282-0.629c-11.542,0.307-21.791-0.018-32.301,0.323
|
34
|
-
c-2.909-0.539-3.696-1.23-4.552-1.704C761.975,4.931,702.238,4.132,701.295,3.878z"/>
|
35
|
-
</g>
|
3
|
+
<symbol id="callout1">
|
4
|
+
<g opacity="0.6">
|
5
|
+
<path fill="#C2DFF5" d="M945.959,12.514c-2.913-1.25-7.968-1.442-12.753-1.714C936.875,12.009,940.785,12.569,945.959,12.514z"/>
|
6
|
+
<polygon fill="#C2DFF5" points="933.113,10.772 933.04,10.787 933.206,10.799 "/>
|
7
|
+
<path fill="#C2DFF5" d="M3.523,51.041l3.941-0.017C6.145,50.967,4.802,50.945,3.523,51.041z"/>
|
8
|
+
<path fill="#C2DFF5" d="M701.295,3.878l-0.759,1.989c-11.356-0.141-3.272-2.336-13.78-1.999
|
9
|
+
c-4.148,2.766-17.437-0.551-21.088,0.897c0.085-0.223-5.055-0.385-4.717-1.264c-1.597,1.511-5.293,0.278-8.541,0.622
|
10
|
+
c-1.182,0.409,0.855,0.472,1.728,0.947l-7.436,0.432c-2.898-0.536-3.601-1.45-0.44-1.57c-19.403-0.837-112.581-3.684-133.505-3.227
|
11
|
+
c2.671,1.198,9.138,0.51,11.564,2.368c-5.544,0.941-8.135-0.477-10.587,0.563c-2.083-2.744-12.142-0.83-16.286-3.637l-1.608,1.511
|
12
|
+
l-2.733-0.98c-24.339,1.24-5.568,0.699-27.117,0.018c-12.479,0.052-18.438,2.095-25.367,1.208c1.031,0.031,3.768,1.011,0.531,1.357
|
13
|
+
c-0.531-1.357-8.618,0.839-10.172-0.543c-3.168,0.122-13.419-0.204-9.976,1.691c-1.728-0.946-10.871-1.457-5.413-2.176
|
14
|
+
c-3.085-0.099-6.072-0.416-8.299-0.041l3.955,0.572c-10.427,0.113-16.087-1.397-22.901,0.169l3.841,0.791
|
15
|
+
c-6.233,0.026-11.447,0.084-13.868-1.774l6.407-0.467c-10.337-0.105-16.571-0.078-25.2,0.766l3.074,0.095
|
16
|
+
c-11.001,1.659-68.436,2.317-78.583,4.449l4.637,1.484l-8.714,1.064c1.028,0.032,4.265-4.536,5.12-4.061
|
17
|
+
C266.426,4.989,169.48,4.654,152.284,3.446c-6.933-0.888-1.216-2.267-1.133-2.49c-8.459,0.406-3.668,1.447-10.851,1.22
|
18
|
+
c-1.958-0.284,0.423-1.104,1.528-1.29c-3.151,0.123-6.063-0.412-6.313,0.245c3.93,0.572,2.236,2.304,3.887,3.469l-9.24-0.289
|
19
|
+
l0.426-1.103c-2.06-0.064-5.271,2.955-14.34,2.225C100.938,4.728,84.297,4.87,68.9,4.387c0.25-0.663,3.489-1.008,6.737-1.35
|
20
|
+
c-2.066-0.065-5.214,0.059-7.109-0.448c3.702,1.231-6.476,0.687-3.575,1.226C53.633,6.359,39.074,3.668,29.09,5.359
|
21
|
+
C28.184,7.785,7.149,46.917,7.106,49.814C4.015,49.717,0.94,49.619,0,49.367c0.787,0.695,6.859,1.108,10.095,0.766l0.58-1.545
|
22
|
+
c7.439-0.436,1.728,0.949,8.981,0.951c0.369,1.277-6.312,1.45-12.192,1.485c5.292,0.227,10.549,1.229,12.726-0.13
|
23
|
+
c4.967,0.603-0.577,1.544,5.407,2.178c4.273-0.312,9.896-1.473,14.789-0.648l-0.091,0.223c11.899,1.488,18.264-1.658,29.135-0.199
|
24
|
+
l-1.179,0.407c3.838,0.792,11.431-0.083,18.363,0.803c-1.978-0.285-3.685-1.229,0.492-1.318c7.973,0.917,13.431,0.198,19.253,1.272
|
25
|
+
l5.62-1.161c27.793,0.656,137.619,0.509,165.546,0.723l-1.097,0.183c42.555,0.005,129.891,1.392,173.889,0.329
|
26
|
+
c6.782,1.322,16.167,1.173,23.256,1.622c-3.938-0.569-2.574-1.419,0.506-1.323c21.617,0.461,1.471-0.825,23.343-1.025
|
27
|
+
c25.191-0.766,121.518,1.953,143.85,3.328c12.03-1.629,26.996-0.042,38.773-1.01l-1.19,0.407
|
28
|
+
c12.641-0.491,84.114,2.237,98.805,1.81l-1.97-0.288c12.817-0.933,11.045,1.018,21.123,1.782c-1.296-2.046,9.69-3.033,13.875-3.124
|
29
|
+
l-0.164,0.44c6.313-0.248,20.629-1.797,31.052-1.914l-0.424,1.102c8.706-1.062,25.035-0.327,31.28-0.351
|
30
|
+
c14.274,0.67,36.27,2.926,55.386,1.743l12.29,3.342l1.812-0.288c0,0,20.43-37.86-4.67-46.359l0.418-1.1l-4.987,0.069
|
31
|
+
c-5.976-0.633-8.762,0.609-8.339-0.489l8.194,0.258c-6.007-0.41-1.801-0.936,0.504-1.528c-2.509-0.145-4.943-0.312-6.936-0.683
|
32
|
+
c-1.191,0.409,0.863,0.473,1.795,0.726c-3.239,0.343-7.757,1.316-11.687,0.748c-6.154-0.196-0.366-1.798-7.546-2.022
|
33
|
+
c-37.866-1.417-74.551-3.242-112.841-3.559c-0.863-0.472,0.174-0.439,1.282-0.629c-11.542,0.307-21.791-0.018-32.301,0.323
|
34
|
+
c-2.909-0.539-3.696-1.23-4.552-1.704C761.975,4.931,702.238,4.132,701.295,3.878z"/>
|
35
|
+
</g>
|
36
36
|
</symbol>
|
37
37
|
|
38
|
-
<symbol id="callout2">
|
39
|
-
<g opacity="0.8">
|
40
|
-
<path fill="#FFDF99" d="M4.457,85.674c3.209,1.935,8.75,2.127,13.996,2.454C14.416,86.276,10.125,85.468,4.457,85.674z"/>
|
41
|
-
<path fill="#FFDF99" d="M18.555,88.17c0.019-0.01,0.059-0.018,0.081-0.025l-0.183-0.017C18.493,88.149,18.524,88.153,18.555,88.17z
|
42
|
-
"/>
|
43
|
-
<path fill="#FFDF99" d="M1036.333,2.75l-4.317,0.117C1033.462,2.927,1034.933,2.932,1036.333,2.75z"/>
|
44
|
-
<path fill="#FFDF99" d="M272.613,93.963l0.802-3.198c12.443-0.031,3.62,3.664,15.125,2.886c4.504-4.52,19.11,0.487,23.089-1.911
|
45
|
-
c-0.09,0.359,5.543,0.501,5.186,1.915c1.727-2.454,5.795-0.565,9.348-1.188c1.289-0.681-0.944-0.735-1.907-1.477l8.14-0.859
|
46
|
-
c3.183,0.792,3.965,2.238,0.505,2.503c21.269,0.901,123.387,3.351,146.302,2.146c-2.943-1.856-10.018-0.609-12.703-3.528
|
47
|
-
c6.059-1.631,8.918,0.579,11.589-1.139c2.322,4.342,13.313,1.054,17.895,5.45l1.74-2.453l3.009,1.507
|
48
|
-
c26.646-2.533,6.09-1.244,29.706-0.642c13.67-0.365,20.168-3.768,27.772-2.504c-1.13-0.026-4.143-1.533-0.602-2.159
|
49
|
-
c0.602,2.159,9.428-1.538,11.151,0.64c3.469-0.266,14.704,0.022,10.903-2.931c1.906,1.475,11.931,2.086,5.962,3.359
|
50
|
-
c3.382,0.089,6.657,0.527,9.093-0.122l-4.342-0.827c11.422-0.416,17.645,1.873,25.086-0.788l-4.22-1.178
|
51
|
-
c6.829-0.183,12.54-0.395,15.219,2.524l-7.012,0.892c11.325-0.065,18.154-0.25,27.595-1.794l-3.369-0.083
|
52
|
-
c12.028-2.902,74.938-5.252,86.021-8.892l-5.102-2.271l9.531-1.899c-1.127-0.028-4.605,7.354-5.55,6.612
|
53
|
-
c20.418-0.191,126.628-1.845,145.483-0.302c7.608,1.264,1.366,3.6,1.278,3.958c9.261-0.84,3.998-2.398,11.87-2.197
|
54
|
-
c2.148,0.41-0.448,1.775-1.656,2.099c3.45-0.269,6.648,0.521,6.913-0.535c-4.313-0.826-2.483-3.635-4.309-5.461l10.126,0.254
|
55
|
-
l-0.45,1.773c2.258,0.057,5.73-4.847,15.677-3.884c16.781,0.784,35.011,0.181,51.886,0.604c-0.265,1.066-3.808,1.692-7.36,2.312
|
56
|
-
c2.264,0.057,5.71-0.211,7.794,0.557c-4.074-1.887,7.084-1.245,3.897-2.041c12.364-4.326,28.353-0.351,39.266-3.281
|
57
|
-
c0.958-3.901,23.428-66.981,23.433-71.618c3.388,0.085,6.757,0.174,7.791,0.556c-0.872-1.095-7.53-1.619-11.07-0.997l-0.612,2.484
|
58
|
-
c-8.143,0.865-1.906-1.479-9.854-1.318c-0.422-2.036,6.894-2.462,13.335-2.651c-5.8-0.244-11.574-1.73-13.939,0.494
|
59
|
-
c-5.45-0.851,0.609-2.483-5.955-3.361c-4.677,0.595-10.82,2.579-16.192,1.371l0.097-0.359c-13.058-2.112-19.984,3.067-31.915,0.977
|
60
|
-
l1.286-0.679c-4.217-1.18-12.521,0.393-20.129-0.869c2.17,0.412,4.055,1.885-0.52,2.121c-8.747-1.288-14.717-0.014-21.11-1.601
|
61
|
-
l-6.14,1.984C887.041,2.524,766.73,5.24,736.132,5.529l1.198-0.317c-46.618,0.953-142.315,0.707-190.5,3.4
|
62
|
-
c-7.449-1.962-17.729-1.511-25.501-2.069c4.322,0.822,2.841,2.211-0.535,2.128c-23.688-0.25-1.6,1.354-25.558,2.168
|
63
|
-
c-27.585,1.794-133.151-0.38-157.637-2.076c-13.155,2.878-29.573,0.677-42.461,2.491l1.298-0.679
|
64
|
-
c-13.841,1.073-92.181-1.679-108.267-0.663l2.161,0.416c-14.027,1.781-12.114-1.379-23.166-2.374
|
65
|
-
c1.449,3.244-10.572,5.072-15.155,5.312l0.174-0.708c-6.913,0.54-22.574,3.341-33.989,3.764l0.448-1.773
|
66
|
-
c-9.522,1.897-27.421,1.088-34.262,1.268c-15.648-0.75-39.776-3.861-60.701-1.537L10.167,9.211L8.188,9.713
|
67
|
-
c0,0-21.827,61.032,5.794,74.062l-0.441,1.77l5.463-0.224c6.555,0.878,9.589-1.173,9.142,0.595l-8.981-0.228
|
68
|
-
c6.587,0.521,1.987,1.457-0.529,2.457c2.75,0.174,5.419,0.388,7.608,0.935c1.298-0.681-0.953-0.737-1.978-1.121
|
69
|
-
c3.543-0.621,8.479-2.28,12.792-1.46c6.745,0.175,0.428,2.867,8.297,3.064c41.503,1.413,81.718,3.503,123.669,3.145
|
70
|
-
c0.953,0.735-0.184,0.707-1.395,1.036c12.639-0.752,23.871-0.464,35.38-1.246c3.195,0.797,4.067,1.885,5.011,2.622
|
71
|
-
C206.123,93.65,271.576,93.578,272.613,93.963z"/>
|
72
|
-
</g>
|
38
|
+
<symbol id="callout2">
|
39
|
+
<g opacity="0.8">
|
40
|
+
<path fill="#FFDF99" d="M4.457,85.674c3.209,1.935,8.75,2.127,13.996,2.454C14.416,86.276,10.125,85.468,4.457,85.674z"/>
|
41
|
+
<path fill="#FFDF99" d="M18.555,88.17c0.019-0.01,0.059-0.018,0.081-0.025l-0.183-0.017C18.493,88.149,18.524,88.153,18.555,88.17z
|
42
|
+
"/>
|
43
|
+
<path fill="#FFDF99" d="M1036.333,2.75l-4.317,0.117C1033.462,2.927,1034.933,2.932,1036.333,2.75z"/>
|
44
|
+
<path fill="#FFDF99" d="M272.613,93.963l0.802-3.198c12.443-0.031,3.62,3.664,15.125,2.886c4.504-4.52,19.11,0.487,23.089-1.911
|
45
|
+
c-0.09,0.359,5.543,0.501,5.186,1.915c1.727-2.454,5.795-0.565,9.348-1.188c1.289-0.681-0.944-0.735-1.907-1.477l8.14-0.859
|
46
|
+
c3.183,0.792,3.965,2.238,0.505,2.503c21.269,0.901,123.387,3.351,146.302,2.146c-2.943-1.856-10.018-0.609-12.703-3.528
|
47
|
+
c6.059-1.631,8.918,0.579,11.589-1.139c2.322,4.342,13.313,1.054,17.895,5.45l1.74-2.453l3.009,1.507
|
48
|
+
c26.646-2.533,6.09-1.244,29.706-0.642c13.67-0.365,20.168-3.768,27.772-2.504c-1.13-0.026-4.143-1.533-0.602-2.159
|
49
|
+
c0.602,2.159,9.428-1.538,11.151,0.64c3.469-0.266,14.704,0.022,10.903-2.931c1.906,1.475,11.931,2.086,5.962,3.359
|
50
|
+
c3.382,0.089,6.657,0.527,9.093-0.122l-4.342-0.827c11.422-0.416,17.645,1.873,25.086-0.788l-4.22-1.178
|
51
|
+
c6.829-0.183,12.54-0.395,15.219,2.524l-7.012,0.892c11.325-0.065,18.154-0.25,27.595-1.794l-3.369-0.083
|
52
|
+
c12.028-2.902,74.938-5.252,86.021-8.892l-5.102-2.271l9.531-1.899c-1.127-0.028-4.605,7.354-5.55,6.612
|
53
|
+
c20.418-0.191,126.628-1.845,145.483-0.302c7.608,1.264,1.366,3.6,1.278,3.958c9.261-0.84,3.998-2.398,11.87-2.197
|
54
|
+
c2.148,0.41-0.448,1.775-1.656,2.099c3.45-0.269,6.648,0.521,6.913-0.535c-4.313-0.826-2.483-3.635-4.309-5.461l10.126,0.254
|
55
|
+
l-0.45,1.773c2.258,0.057,5.73-4.847,15.677-3.884c16.781,0.784,35.011,0.181,51.886,0.604c-0.265,1.066-3.808,1.692-7.36,2.312
|
56
|
+
c2.264,0.057,5.71-0.211,7.794,0.557c-4.074-1.887,7.084-1.245,3.897-2.041c12.364-4.326,28.353-0.351,39.266-3.281
|
57
|
+
c0.958-3.901,23.428-66.981,23.433-71.618c3.388,0.085,6.757,0.174,7.791,0.556c-0.872-1.095-7.53-1.619-11.07-0.997l-0.612,2.484
|
58
|
+
c-8.143,0.865-1.906-1.479-9.854-1.318c-0.422-2.036,6.894-2.462,13.335-2.651c-5.8-0.244-11.574-1.73-13.939,0.494
|
59
|
+
c-5.45-0.851,0.609-2.483-5.955-3.361c-4.677,0.595-10.82,2.579-16.192,1.371l0.097-0.359c-13.058-2.112-19.984,3.067-31.915,0.977
|
60
|
+
l1.286-0.679c-4.217-1.18-12.521,0.393-20.129-0.869c2.17,0.412,4.055,1.885-0.52,2.121c-8.747-1.288-14.717-0.014-21.11-1.601
|
61
|
+
l-6.14,1.984C887.041,2.524,766.73,5.24,736.132,5.529l1.198-0.317c-46.618,0.953-142.315,0.707-190.5,3.4
|
62
|
+
c-7.449-1.962-17.729-1.511-25.501-2.069c4.322,0.822,2.841,2.211-0.535,2.128c-23.688-0.25-1.6,1.354-25.558,2.168
|
63
|
+
c-27.585,1.794-133.151-0.38-157.637-2.076c-13.155,2.878-29.573,0.677-42.461,2.491l1.298-0.679
|
64
|
+
c-13.841,1.073-92.181-1.679-108.267-0.663l2.161,0.416c-14.027,1.781-12.114-1.379-23.166-2.374
|
65
|
+
c1.449,3.244-10.572,5.072-15.155,5.312l0.174-0.708c-6.913,0.54-22.574,3.341-33.989,3.764l0.448-1.773
|
66
|
+
c-9.522,1.897-27.421,1.088-34.262,1.268c-15.648-0.75-39.776-3.861-60.701-1.537L10.167,9.211L8.188,9.713
|
67
|
+
c0,0-21.827,61.032,5.794,74.062l-0.441,1.77l5.463-0.224c6.555,0.878,9.589-1.173,9.142,0.595l-8.981-0.228
|
68
|
+
c6.587,0.521,1.987,1.457-0.529,2.457c2.75,0.174,5.419,0.388,7.608,0.935c1.298-0.681-0.953-0.737-1.978-1.121
|
69
|
+
c3.543-0.621,8.479-2.28,12.792-1.46c6.745,0.175,0.428,2.867,8.297,3.064c41.503,1.413,81.718,3.503,123.669,3.145
|
70
|
+
c0.953,0.735-0.184,0.707-1.395,1.036c12.639-0.752,23.871-0.464,35.38-1.246c3.195,0.797,4.067,1.885,5.011,2.622
|
71
|
+
C206.123,93.65,271.576,93.578,272.613,93.963z"/>
|
72
|
+
</g>
|
73
73
|
</symbol>
|
74
74
|
|
75
|
-
<symbol id="login">
|
76
|
-
<g>
|
77
|
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M44.452,4.788c-0.624,1.477-2.15,2.052-3.564,2.741
|
78
|
-
c-2.328,2.053-3.835,4.935-4.659,8.496c-1.626-0.051-3.235,0.673-4.657,0c-1.618-6.663,3.376-14.129,7.674-15.896
|
79
|
-
C41.249-0.695,43.712,2.624,44.452,4.788z"/>
|
80
|
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M19.787,0.677c1.042-0.221,0.347,1.295,0.548,1.918
|
81
|
-
c0.437,3.03,1.061,6.653,2.467,9.044c0.227,0.385,0.817,0.713,1.096,1.096c0.185,0.254,0.095,0.588,0.272,0.822
|
82
|
-
c0.576,0.749,2.057,1.706,2.468,3.014c-1.096,0.732-2.652,1.004-4.112,1.371c-2.835-2.004-5.333-4.348-7.397-7.125
|
83
|
-
c-0.353-2.441-2.164-3.835-1.645-6.029c0.18-0.764,0.801-1.074,1.919-1.918c1.256-0.949,2.294-1.725,4.112-2.192
|
84
|
-
C19.602,0.677,19.694,0.677,19.787,0.677z"/>
|
85
|
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M55.688,12.462c1.907,2.112,3.518,4.521,3.837,8.221
|
86
|
-
c-0.652-0.442-1.755-0.436-2.467-0.821c-1.502,0.106-2.913-0.144-4.11,0c-3.317,0.399-5.38,2.224-7.948,3.289
|
87
|
-
c-0.81,0.671-1.108-0.92-1.918-1.096c-0.26-0.837-1.335-0.858-1.371-1.918c1.111-0.511,1.669-1.921,2.741-2.74
|
88
|
-
c0.217-0.166,0.576-0.096,0.822-0.274c0.396-0.29,0.706-0.838,1.096-1.096c0.271-0.179,0.57-0.119,0.823-0.275
|
89
|
-
c0.45-0.28,1.244-1.004,1.918-1.37c0.486-0.265,1.117-0.267,1.644-0.547C51.786,13.284,53.505,12.204,55.688,12.462z"/>
|
90
|
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M19.238,21.506c0.265,2.274-1.146,2.875-1.918,4.112
|
91
|
-
c-6.76,1.026-12.737-0.917-15.896-4.387c0.231-3.055,1.443-5.133,3.015-6.852c1.092,0.077,1.395,1.298,2.192,1.919
|
92
|
-
c0.91,0.709,2.462,1.537,3.287,2.74c0.772-0.079,1.297,0.531,1.92,0.822c0.293,0.137,0.692,0.098,1.097,0.274
|
93
|
-
c0.137,0.061,0.444,0.516,0.548,0.547c0.874,0.276,1.913-0.055,2.74,0.548C17.521,21.03,18.107,21.539,19.238,21.506z"/>
|
94
|
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M38.148,21.231c2.61,2.289,4.865,6.283,4.386,10.963
|
95
|
-
c-0.329,3.209-2.169,5.378-3.563,7.399c-2.965,2.257-7.566,4.425-12.059,2.739c-0.258-0.096-0.501-0.42-0.822-0.547
|
96
|
-
c-1.63-0.641-3.345-1.98-4.659-3.289c-0.096-0.76-0.526-1.262-0.821-1.918c-0.13-0.287-0.1-0.7-0.274-1.096
|
97
|
-
c-0.213-0.489-0.706-1.191-0.82-2.467c-0.245-2.641,0.312-4.68,1.095-6.579c0.092-0.22,0.104-0.792,0.273-1.096
|
98
|
-
c0.353-0.631,1.092-0.975,1.643-1.644c0.245-0.294,0.288-0.799,0.55-1.096c0.721-0.821,2.238-1.63,3.562-2.193
|
99
|
-
c1.685-0.716,3.069-1.268,5.756-1.096C34.824,19.469,35.935,20.427,38.148,21.231z"/>
|
100
|
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M60.895,40.416c-1.266,0.077-1.479-0.897-1.918-1.645
|
101
|
-
c-2.147-2.136-5.859-3.548-10.141-3.288c-1.141,0.068-2.364,0.533-3.562,0.547c0.066-1.802-0.482-2.988-0.274-4.933
|
102
|
-
c2.793-1.357,6.563-2.457,10.688-1.37c1.746,0.46,3.818,0.786,4.659,1.37c1.164,0.809,1.526,2.201,2.192,3.289
|
103
|
-
C62.601,37.005,62.641,39.603,60.895,40.416z"/>
|
104
|
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M1.697,39.319c0.047-0.594-0.97-0.125-1.369-0.273
|
105
|
-
c-0.486-2.246-0.528-6.111,0.549-7.675c0.635-0.555,1.165,0.656,2.19,0.549c1.856,1.147,5.079,1.741,7.949,1.37
|
106
|
-
c1.899-0.245,3.249-1.227,4.659-1.37c0.94,0.888,1.333,2.319,1.645,3.837c-0.527,1.268-2.226,1.774-3.289,2.192
|
107
|
-
c-3.09,1.214-7.652,1.42-11.786,1.37C2.064,39.319,1.88,39.319,1.697,39.319z"/>
|
108
|
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M22.801,43.156c-0.227,3.337-1.678,5.448-2.467,8.222
|
109
|
-
c-0.869,0.912-1.552,2.077-2.469,3.289c-0.771,1.024-1.428,2.523-2.738,2.74c-2.155,0.358-4.827-2.103-5.756-3.562
|
110
|
-
C9.025,53.3,8.512,52.803,8.55,52.2c0.325-1.428,1.951-1.543,3.014-2.191c0.447-0.273,0.91-0.808,1.371-1.096
|
111
|
-
c0.52-0.328,1.025-0.686,1.644-0.824c0.524-0.754,1.163-1.395,1.919-1.918c0.737-1.729,1.638-3.295,2.74-4.658
|
112
|
-
c0.052-0.223,0.276-0.274,0.276-0.549C20.862,41.44,21.786,42.345,22.801,43.156z"/>
|
113
|
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M55.14,52.2c-0.974,2.772-3.081,4.41-5.755,5.481
|
114
|
-
c-1.414-4.25-3.629-7.7-6.578-10.415c-1.356-0.652-2.599-1.42-3.562-2.466c0.092-1.826,2.084-1.752,3.015-2.741
|
115
|
-
C48.218,43.772,52.772,46.896,55.14,52.2z"/>
|
116
|
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M32.667,45.349c2.851,3.853,3.363,12.228,2.192,18.362
|
117
|
-
c-3.688,0.125-6.655-0.472-8.771-1.919c0.211-1.115,1.035-2.182,1.645-3.288c0.308-0.559,0.539-1.052,0.822-1.645
|
118
|
-
c0.466-0.978,1.382-2.825,1.372-4.659c-0.009-1.265-0.645-2.373-0.824-3.838c-0.27-0.216-1.044-1.287-0.548-1.369
|
119
|
-
C28.92,45.438,30.893,45.495,32.667,45.349z"/>
|
120
|
-
</g>
|
75
|
+
<symbol id="login">
|
76
|
+
<g>
|
77
|
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M44.452,4.788c-0.624,1.477-2.15,2.052-3.564,2.741
|
78
|
+
c-2.328,2.053-3.835,4.935-4.659,8.496c-1.626-0.051-3.235,0.673-4.657,0c-1.618-6.663,3.376-14.129,7.674-15.896
|
79
|
+
C41.249-0.695,43.712,2.624,44.452,4.788z"/>
|
80
|
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M19.787,0.677c1.042-0.221,0.347,1.295,0.548,1.918
|
81
|
+
c0.437,3.03,1.061,6.653,2.467,9.044c0.227,0.385,0.817,0.713,1.096,1.096c0.185,0.254,0.095,0.588,0.272,0.822
|
82
|
+
c0.576,0.749,2.057,1.706,2.468,3.014c-1.096,0.732-2.652,1.004-4.112,1.371c-2.835-2.004-5.333-4.348-7.397-7.125
|
83
|
+
c-0.353-2.441-2.164-3.835-1.645-6.029c0.18-0.764,0.801-1.074,1.919-1.918c1.256-0.949,2.294-1.725,4.112-2.192
|
84
|
+
C19.602,0.677,19.694,0.677,19.787,0.677z"/>
|
85
|
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M55.688,12.462c1.907,2.112,3.518,4.521,3.837,8.221
|
86
|
+
c-0.652-0.442-1.755-0.436-2.467-0.821c-1.502,0.106-2.913-0.144-4.11,0c-3.317,0.399-5.38,2.224-7.948,3.289
|
87
|
+
c-0.81,0.671-1.108-0.92-1.918-1.096c-0.26-0.837-1.335-0.858-1.371-1.918c1.111-0.511,1.669-1.921,2.741-2.74
|
88
|
+
c0.217-0.166,0.576-0.096,0.822-0.274c0.396-0.29,0.706-0.838,1.096-1.096c0.271-0.179,0.57-0.119,0.823-0.275
|
89
|
+
c0.45-0.28,1.244-1.004,1.918-1.37c0.486-0.265,1.117-0.267,1.644-0.547C51.786,13.284,53.505,12.204,55.688,12.462z"/>
|
90
|
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M19.238,21.506c0.265,2.274-1.146,2.875-1.918,4.112
|
91
|
+
c-6.76,1.026-12.737-0.917-15.896-4.387c0.231-3.055,1.443-5.133,3.015-6.852c1.092,0.077,1.395,1.298,2.192,1.919
|
92
|
+
c0.91,0.709,2.462,1.537,3.287,2.74c0.772-0.079,1.297,0.531,1.92,0.822c0.293,0.137,0.692,0.098,1.097,0.274
|
93
|
+
c0.137,0.061,0.444,0.516,0.548,0.547c0.874,0.276,1.913-0.055,2.74,0.548C17.521,21.03,18.107,21.539,19.238,21.506z"/>
|
94
|
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M38.148,21.231c2.61,2.289,4.865,6.283,4.386,10.963
|
95
|
+
c-0.329,3.209-2.169,5.378-3.563,7.399c-2.965,2.257-7.566,4.425-12.059,2.739c-0.258-0.096-0.501-0.42-0.822-0.547
|
96
|
+
c-1.63-0.641-3.345-1.98-4.659-3.289c-0.096-0.76-0.526-1.262-0.821-1.918c-0.13-0.287-0.1-0.7-0.274-1.096
|
97
|
+
c-0.213-0.489-0.706-1.191-0.82-2.467c-0.245-2.641,0.312-4.68,1.095-6.579c0.092-0.22,0.104-0.792,0.273-1.096
|
98
|
+
c0.353-0.631,1.092-0.975,1.643-1.644c0.245-0.294,0.288-0.799,0.55-1.096c0.721-0.821,2.238-1.63,3.562-2.193
|
99
|
+
c1.685-0.716,3.069-1.268,5.756-1.096C34.824,19.469,35.935,20.427,38.148,21.231z"/>
|
100
|
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M60.895,40.416c-1.266,0.077-1.479-0.897-1.918-1.645
|
101
|
+
c-2.147-2.136-5.859-3.548-10.141-3.288c-1.141,0.068-2.364,0.533-3.562,0.547c0.066-1.802-0.482-2.988-0.274-4.933
|
102
|
+
c2.793-1.357,6.563-2.457,10.688-1.37c1.746,0.46,3.818,0.786,4.659,1.37c1.164,0.809,1.526,2.201,2.192,3.289
|
103
|
+
C62.601,37.005,62.641,39.603,60.895,40.416z"/>
|
104
|
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M1.697,39.319c0.047-0.594-0.97-0.125-1.369-0.273
|
105
|
+
c-0.486-2.246-0.528-6.111,0.549-7.675c0.635-0.555,1.165,0.656,2.19,0.549c1.856,1.147,5.079,1.741,7.949,1.37
|
106
|
+
c1.899-0.245,3.249-1.227,4.659-1.37c0.94,0.888,1.333,2.319,1.645,3.837c-0.527,1.268-2.226,1.774-3.289,2.192
|
107
|
+
c-3.09,1.214-7.652,1.42-11.786,1.37C2.064,39.319,1.88,39.319,1.697,39.319z"/>
|
108
|
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M22.801,43.156c-0.227,3.337-1.678,5.448-2.467,8.222
|
109
|
+
c-0.869,0.912-1.552,2.077-2.469,3.289c-0.771,1.024-1.428,2.523-2.738,2.74c-2.155,0.358-4.827-2.103-5.756-3.562
|
110
|
+
C9.025,53.3,8.512,52.803,8.55,52.2c0.325-1.428,1.951-1.543,3.014-2.191c0.447-0.273,0.91-0.808,1.371-1.096
|
111
|
+
c0.52-0.328,1.025-0.686,1.644-0.824c0.524-0.754,1.163-1.395,1.919-1.918c0.737-1.729,1.638-3.295,2.74-4.658
|
112
|
+
c0.052-0.223,0.276-0.274,0.276-0.549C20.862,41.44,21.786,42.345,22.801,43.156z"/>
|
113
|
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M55.14,52.2c-0.974,2.772-3.081,4.41-5.755,5.481
|
114
|
+
c-1.414-4.25-3.629-7.7-6.578-10.415c-1.356-0.652-2.599-1.42-3.562-2.466c0.092-1.826,2.084-1.752,3.015-2.741
|
115
|
+
C48.218,43.772,52.772,46.896,55.14,52.2z"/>
|
116
|
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F5F5F5" d="M32.667,45.349c2.851,3.853,3.363,12.228,2.192,18.362
|
117
|
+
c-3.688,0.125-6.655-0.472-8.771-1.919c0.211-1.115,1.035-2.182,1.645-3.288c0.308-0.559,0.539-1.052,0.822-1.645
|
118
|
+
c0.466-0.978,1.382-2.825,1.372-4.659c-0.009-1.265-0.645-2.373-0.824-3.838c-0.27-0.216-1.044-1.287-0.548-1.369
|
119
|
+
C28.92,45.438,30.893,45.495,32.667,45.349z"/>
|
120
|
+
</g>
|
121
121
|
</symbol>
|
122
122
|
|
123
|
-
<symbol id="you">
|
124
|
-
<path d="M28.385,31.29c0,0-2.906-1.117-3.354-7.822c-0.446-6.705,1.677-3.8,1.677-3.8S25.479,6.929,29.949,3.576
|
125
|
-
C34.419,0.224,37.548,0,40.677,0s13.186,2.235,13.856,12.292s-1.341,19.892-1.341,19.892s-0.224,5.14-2.905,7.822
|
126
|
-
c0,0-3.353,2.011-1.564,4.023c0,0,3.13,4.47,6.929,5.141s8.046,1.117,11.175,5.364s6.706,8.27,13.634,24.138
|
127
|
-
s7.376,28.161,6.258,31.513s-2.459,3.799-5.812,3.799s-11.398,0.894-11.398,0.894s0.224,11.846,3.353,20.786
|
128
|
-
s6.034,22.35,6.034,22.35h-3.353c0,0,0.795,7.471,3.576,19.667c2.905,12.739,4.022,39.783,4.022,39.783s-1.118,16.09-2.905,26.371
|
129
|
-
s-2.682,57.887-2.682,64.145l-2.905,2.905l-0.224,2.682c0,0-4.246,2.458-2.905,4.693s1.563,1.342,5.811,2.683
|
130
|
-
s8.047,4.693,4.694,6.481s-13.41,0.446-13.41,0.446s-12.292-5.363-15.868-5.587s-6.705-1.787-6.929-4.693s0.67-7.599,0.894-11.398
|
131
|
-
s-1.341-12.07,0-15.869s4.47-9.834,4.47-16.092s-0.223-24.138-0.223-25.255s2.234-1.117,0.67-5.588
|
132
|
-
c-1.564-4.47-3.799-15.645-4.022-22.35s-0.447-12.963-0.447-12.963s-5.363,16.092-7.375,25.256
|
133
|
-
c-2.012,9.163-4.694,17.656-5.141,20.785c-0.447,3.129-3.354,29.277-3.354,34.865s0.001,15.422,0.672,18.104
|
134
|
-
c0.67,2.682,0.894,5.14-1.118,7.599s-3.353,5.364-3.353,6.705s1.117,9.388-2.905,9.164s-12.963,0.224-13.856-3.129
|
135
|
-
c-0.895-3.353-0.447-8.94,0-10.505c0.446-1.564,0.893-2.683,0.223-5.364s-0.67-8.27-0.67-8.27s-2.235-1.563-1.564-6.928
|
136
|
-
c0.67-5.364,3.129-16.539,3.129-19.892s-0.447-24.809,0.223-29.055c0.671-4.246,2.012-11.398,0.447-18.998
|
137
|
-
c-1.564-7.599-1.117-22.125-1.117-25.701s-2.012-18.773-3.8-26.82c-1.788-8.045-1.413-19.072,1.341-33.3
|
138
|
-
c2.683-13.856,2.683-24.361,0.225-31.29c0,0-9.164-25.926-9.164-32.184s2.014-23.019,14.082-29.5c0,0,3.799-0.67,5.141-2.905
|
139
|
-
c1.341-2.235,1.341-4.247,3.576-4.247c2.234,0,4.693,0,5.141-3.129C28.386,36.208,28.385,31.29,28.385,31.29z"/>
|
123
|
+
<symbol id="you">
|
124
|
+
<path d="M28.385,31.29c0,0-2.906-1.117-3.354-7.822c-0.446-6.705,1.677-3.8,1.677-3.8S25.479,6.929,29.949,3.576
|
125
|
+
C34.419,0.224,37.548,0,40.677,0s13.186,2.235,13.856,12.292s-1.341,19.892-1.341,19.892s-0.224,5.14-2.905,7.822
|
126
|
+
c0,0-3.353,2.011-1.564,4.023c0,0,3.13,4.47,6.929,5.141s8.046,1.117,11.175,5.364s6.706,8.27,13.634,24.138
|
127
|
+
s7.376,28.161,6.258,31.513s-2.459,3.799-5.812,3.799s-11.398,0.894-11.398,0.894s0.224,11.846,3.353,20.786
|
128
|
+
s6.034,22.35,6.034,22.35h-3.353c0,0,0.795,7.471,3.576,19.667c2.905,12.739,4.022,39.783,4.022,39.783s-1.118,16.09-2.905,26.371
|
129
|
+
s-2.682,57.887-2.682,64.145l-2.905,2.905l-0.224,2.682c0,0-4.246,2.458-2.905,4.693s1.563,1.342,5.811,2.683
|
130
|
+
s8.047,4.693,4.694,6.481s-13.41,0.446-13.41,0.446s-12.292-5.363-15.868-5.587s-6.705-1.787-6.929-4.693s0.67-7.599,0.894-11.398
|
131
|
+
s-1.341-12.07,0-15.869s4.47-9.834,4.47-16.092s-0.223-24.138-0.223-25.255s2.234-1.117,0.67-5.588
|
132
|
+
c-1.564-4.47-3.799-15.645-4.022-22.35s-0.447-12.963-0.447-12.963s-5.363,16.092-7.375,25.256
|
133
|
+
c-2.012,9.163-4.694,17.656-5.141,20.785c-0.447,3.129-3.354,29.277-3.354,34.865s0.001,15.422,0.672,18.104
|
134
|
+
c0.67,2.682,0.894,5.14-1.118,7.599s-3.353,5.364-3.353,6.705s1.117,9.388-2.905,9.164s-12.963,0.224-13.856-3.129
|
135
|
+
c-0.895-3.353-0.447-8.94,0-10.505c0.446-1.564,0.893-2.683,0.223-5.364s-0.67-8.27-0.67-8.27s-2.235-1.563-1.564-6.928
|
136
|
+
c0.67-5.364,3.129-16.539,3.129-19.892s-0.447-24.809,0.223-29.055c0.671-4.246,2.012-11.398,0.447-18.998
|
137
|
+
c-1.564-7.599-1.117-22.125-1.117-25.701s-2.012-18.773-3.8-26.82c-1.788-8.045-1.413-19.072,1.341-33.3
|
138
|
+
c2.683-13.856,2.683-24.361,0.225-31.29c0,0-9.164-25.926-9.164-32.184s2.014-23.019,14.082-29.5c0,0,3.799-0.67,5.141-2.905
|
139
|
+
c1.341-2.235,1.341-4.247,3.576-4.247c2.234,0,4.693,0,5.141-3.129C28.386,36.208,28.385,31.29,28.385,31.29z"/>
|
140
140
|
</symbol>
|
141
141
|
|
142
142
|
</defs></svg>
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: savagery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Micah Geisel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ember-rails-assets
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -24,6 +38,20 @@ dependencies:
|
|
24
38
|
- - "~>"
|
25
39
|
- !ruby/object:Gem::Version
|
26
40
|
version: '1.6'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: actionview
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
27
55
|
- !ruby/object:Gem::Dependency
|
28
56
|
name: rake
|
29
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -74,6 +102,7 @@ extensions: []
|
|
74
102
|
extra_rdoc_files: []
|
75
103
|
files:
|
76
104
|
- ".gitignore"
|
105
|
+
- ".rspec"
|
77
106
|
- Gemfile
|
78
107
|
- LICENSE.txt
|
79
108
|
- README.md
|
@@ -82,12 +111,17 @@ files:
|
|
82
111
|
- lib/savagery.rb
|
83
112
|
- lib/savagery/engine.rb
|
84
113
|
- lib/savagery/helpers.rb
|
114
|
+
- lib/savagery/helpers/rails.rb
|
85
115
|
- lib/savagery/middleware.rb
|
86
116
|
- lib/savagery/spriter.rb
|
87
117
|
- lib/savagery/spriter/image.rb
|
88
118
|
- lib/savagery/version.rb
|
89
119
|
- savagery.gemspec
|
120
|
+
- spec/helpers/rails_spec.rb
|
121
|
+
- spec/helpers_spec.rb
|
90
122
|
- spec/savagery_spec.rb
|
123
|
+
- spec/spec_helper.rb
|
124
|
+
- spec/spriter_spec.rb
|
91
125
|
- spec/support/svgs.svg
|
92
126
|
- spec/support/svgs/callout1.svg
|
93
127
|
- spec/support/svgs/callout2.svg
|
@@ -119,7 +153,11 @@ signing_key:
|
|
119
153
|
specification_version: 4
|
120
154
|
summary: Ruthlessly sprites SVGs
|
121
155
|
test_files:
|
156
|
+
- spec/helpers/rails_spec.rb
|
157
|
+
- spec/helpers_spec.rb
|
122
158
|
- spec/savagery_spec.rb
|
159
|
+
- spec/spec_helper.rb
|
160
|
+
- spec/spriter_spec.rb
|
123
161
|
- spec/support/svgs.svg
|
124
162
|
- spec/support/svgs/callout1.svg
|
125
163
|
- spec/support/svgs/callout2.svg
|