assignable_values 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +1 -1
- data/CHANGELOG.md +6 -0
- data/Gemfile.5.0.lock +1 -1
- data/Gemfile.5.1.lock +1 -1
- data/Gemfile.5.1.pg.lock +1 -1
- data/Gemfile.6.1.pg.lock +1 -1
- data/Gemfile.7.1.pg.lock +1 -1
- data/README.md +18 -2
- data/lib/assignable_values/active_record/restriction/scalar_attribute.rb +8 -8
- data/lib/assignable_values/active_record/restriction/store_accessor_attribute.rb +29 -0
- data/lib/assignable_values/active_record.rb +16 -1
- data/lib/assignable_values/version.rb +1 -1
- data/lib/assignable_values.rb +1 -0
- data/media/logo.dark.shapes.svg +169 -0
- data/media/logo.dark.text.svg +107 -0
- data/media/logo.light.shapes.svg +168 -0
- data/media/logo.light.text.svg +106 -0
- data/media/makandra-with-bottom-margin.dark.svg +180 -0
- data/media/makandra-with-bottom-margin.light.svg +180 -0
- data/spec/assignable_values/active_record_spec.rb +209 -2
- data/spec/support/database.rb +1 -0
- data/spec/support/i18n.yml +7 -0
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 50d91e6c4106d54f8633e3a77ccb71e8965e4c22201574980eaf15ffea0ed7ac
|
4
|
+
data.tar.gz: 57d2765dab9e0b60030c08822ee55e478b5c0acb6e7601047047219da2efcabc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a32ca256400f51a6d6fd9654cb745003608394aede06a92b58af2de81f1ac42147137c59de775f5d730e882c770fa1921e0f0c3272c7c2307091d08d7b25c9f2
|
7
|
+
data.tar.gz: 0a6fb7760c54e0ae6c162002d819d0cae6c39601c5e7851444a1e5773f547b9c5d2c76e15423def89e620f601b4686ad0fd7768c35bcd1534b09856251362f87
|
data/.github/workflows/test.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -12,6 +12,12 @@ This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html
|
|
12
12
|
|
13
13
|
-
|
14
14
|
|
15
|
+
## 1.1.0 - 2024-12-05
|
16
|
+
|
17
|
+
### Compatible changes
|
18
|
+
|
19
|
+
- Add complete support for attributes that are available through store accessors
|
20
|
+
|
15
21
|
## 1.0.1 - 2024-08-27
|
16
22
|
|
17
23
|
- Hook into railties correctly
|
data/Gemfile.5.0.lock
CHANGED
data/Gemfile.5.1.lock
CHANGED
data/Gemfile.5.1.pg.lock
CHANGED
data/Gemfile.6.1.pg.lock
CHANGED
data/Gemfile.7.1.pg.lock
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,21 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
<p>
|
2
|
+
<a href="https://makandra.de/">
|
3
|
+
<picture>
|
4
|
+
<source media="(prefers-color-scheme: light)" srcset="media/makandra-with-bottom-margin.light.svg">
|
5
|
+
<source media="(prefers-color-scheme: dark)" srcset="media/makandra-with-bottom-margin.dark.svg">
|
6
|
+
<img align="right" width="25%" alt="makandra" src="media/makandra-with-bottom-margin.light.svg">
|
7
|
+
</picture>
|
8
|
+
</a>
|
9
|
+
|
10
|
+
<picture>
|
11
|
+
<source media="(prefers-color-scheme: light)" srcset="media/logo.light.shapes.svg">
|
12
|
+
<source media="(prefers-color-scheme: dark)" srcset="media/logo.dark.shapes.svg">
|
13
|
+
<img width="400" alt="assignable_values" role="heading" aria-level="1" src="media/logo.light.shapes.svg">
|
14
|
+
</picture>
|
15
|
+
</p>
|
16
|
+
|
17
|
+
[![Tests](https://github.com/makandra/assignable_values/workflows/Tests/badge.svg)](https://github.com/makandra/assignable_values/actions)
|
18
|
+
|
3
19
|
|
4
20
|
`assignable_values` lets you restrict the values that can be assigned to attributes or associations of ActiveRecord models. You can think of it as enums where the list of allowed values is generated at runtime and the value is checked during validation.
|
5
21
|
|
@@ -107,10 +107,10 @@ module AssignableValues
|
|
107
107
|
end
|
108
108
|
|
109
109
|
def has_previously_saved_value?(record)
|
110
|
-
if record.respond_to?(:attribute_in_database)
|
111
|
-
!record.new_record?
|
112
|
-
else
|
113
|
-
!record.new_record? && record.respond_to?(value_was_method)
|
110
|
+
if record.respond_to?(:attribute_in_database) # Rails >= 5.1
|
111
|
+
!record.new_record?
|
112
|
+
else # Rails <= 5.0
|
113
|
+
!record.new_record? && record.respond_to?(value_was_method)
|
114
114
|
end
|
115
115
|
end
|
116
116
|
|
@@ -119,10 +119,10 @@ module AssignableValues
|
|
119
119
|
end
|
120
120
|
|
121
121
|
def value_was(record)
|
122
|
-
if record.respond_to?(:attribute_in_database)
|
123
|
-
record.attribute_in_database(:"#{property}")
|
124
|
-
else
|
125
|
-
record.send(value_was_method)
|
122
|
+
if record.respond_to?(:attribute_in_database) # Rails >= 5.1
|
123
|
+
record.attribute_in_database(:"#{property}")
|
124
|
+
else # Rails <= 5.0
|
125
|
+
record.send(value_was_method)
|
126
126
|
end
|
127
127
|
end
|
128
128
|
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module AssignableValues
|
2
|
+
module ActiveRecord
|
3
|
+
module Restriction
|
4
|
+
class StoreAccessorAttribute < ScalarAttribute
|
5
|
+
|
6
|
+
private
|
7
|
+
|
8
|
+
def store_identifier
|
9
|
+
@model.stored_attributes.find { |_, attrs| attrs.include?(property.to_sym) }&.first
|
10
|
+
end
|
11
|
+
|
12
|
+
def value_was_method
|
13
|
+
:"#{store_identifier}_was"
|
14
|
+
end
|
15
|
+
|
16
|
+
def value_was(record)
|
17
|
+
accessor = if record.respond_to?(:attribute_in_database) # Rails >= 5.1
|
18
|
+
record.attribute_in_database(:"#{store_identifier}")
|
19
|
+
else # Rails <= 5.0
|
20
|
+
record.send(value_was_method)
|
21
|
+
end
|
22
|
+
|
23
|
+
accessor.with_indifferent_access[property]
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -4,7 +4,14 @@ module AssignableValues
|
|
4
4
|
private
|
5
5
|
|
6
6
|
def assignable_values_for(property, options = {}, &values)
|
7
|
-
restriction_type = belongs_to_association?(property)
|
7
|
+
restriction_type = if belongs_to_association?(property)
|
8
|
+
Restriction::BelongsToAssociation
|
9
|
+
elsif store_accessor_attribute?(property)
|
10
|
+
Restriction::StoreAccessorAttribute
|
11
|
+
else
|
12
|
+
Restriction::ScalarAttribute
|
13
|
+
end
|
14
|
+
|
8
15
|
restriction_type.new(self, property, options, &values)
|
9
16
|
end
|
10
17
|
|
@@ -13,6 +20,14 @@ module AssignableValues
|
|
13
20
|
reflection && reflection.macro == :belongs_to
|
14
21
|
end
|
15
22
|
|
23
|
+
def store_accessor_attribute?(property)
|
24
|
+
store_identifier_of(property).present?
|
25
|
+
end
|
26
|
+
|
27
|
+
def store_identifier_of(property)
|
28
|
+
stored_attributes.find { |_, attrs| attrs.include?(property.to_sym) }&.first
|
29
|
+
end
|
30
|
+
|
16
31
|
end
|
17
32
|
end
|
18
33
|
|
data/lib/assignable_values.rb
CHANGED
@@ -5,5 +5,6 @@ require 'assignable_values/active_record'
|
|
5
5
|
require 'assignable_values/active_record/restriction/base'
|
6
6
|
require 'assignable_values/active_record/restriction/belongs_to_association'
|
7
7
|
require 'assignable_values/active_record/restriction/scalar_attribute'
|
8
|
+
require 'assignable_values/active_record/restriction/store_accessor_attribute'
|
8
9
|
require 'assignable_values/humanized_value'
|
9
10
|
require 'assignable_values/humanizable_string'
|
@@ -0,0 +1,169 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
7
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
8
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
10
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
11
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
12
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
13
|
+
width="101.85382mm"
|
14
|
+
height="14.056225mm"
|
15
|
+
viewBox="0 0 101.85382 14.056225"
|
16
|
+
version="1.1"
|
17
|
+
id="svg838"
|
18
|
+
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
|
19
|
+
sodipodi:docname="logo.dark.shapes.svg"
|
20
|
+
inkscape:export-filename="/home/henning/Projects/capybara-lockstep/media/capybara-lockstep.dark.png"
|
21
|
+
inkscape:export-xdpi="196"
|
22
|
+
inkscape:export-ydpi="196">
|
23
|
+
<defs
|
24
|
+
id="defs832">
|
25
|
+
<linearGradient
|
26
|
+
inkscape:collect="always"
|
27
|
+
id="linearGradient1406">
|
28
|
+
<stop
|
29
|
+
style="stop-color:#ff0844;stop-opacity:1"
|
30
|
+
offset="0"
|
31
|
+
id="stop1402" />
|
32
|
+
<stop
|
33
|
+
style="stop-color:#ffb199;stop-opacity:1"
|
34
|
+
offset="1"
|
35
|
+
id="stop1404" />
|
36
|
+
</linearGradient>
|
37
|
+
<linearGradient
|
38
|
+
inkscape:collect="always"
|
39
|
+
xlink:href="#linearGradient1406"
|
40
|
+
id="linearGradient1408"
|
41
|
+
x1="22.054907"
|
42
|
+
y1="91.071762"
|
43
|
+
x2="88.956696"
|
44
|
+
y2="91.071762"
|
45
|
+
gradientUnits="userSpaceOnUse"
|
46
|
+
gradientTransform="matrix(1.5174713,0,0,0.08820435,-33.467691,57.908781)" />
|
47
|
+
</defs>
|
48
|
+
<sodipodi:namedview
|
49
|
+
id="base"
|
50
|
+
pagecolor="#ffffff"
|
51
|
+
bordercolor="#666666"
|
52
|
+
borderopacity="1.0"
|
53
|
+
inkscape:pageopacity="0.0"
|
54
|
+
inkscape:pageshadow="2"
|
55
|
+
inkscape:zoom="5.6"
|
56
|
+
inkscape:cx="436.45379"
|
57
|
+
inkscape:cy="-41.725401"
|
58
|
+
inkscape:document-units="mm"
|
59
|
+
inkscape:current-layer="layer1"
|
60
|
+
showgrid="false"
|
61
|
+
fit-margin-top="0"
|
62
|
+
fit-margin-left="0"
|
63
|
+
fit-margin-right="0"
|
64
|
+
fit-margin-bottom="0"
|
65
|
+
inkscape:window-width="2560"
|
66
|
+
inkscape:window-height="1391"
|
67
|
+
inkscape:window-x="1920"
|
68
|
+
inkscape:window-y="0"
|
69
|
+
inkscape:window-maximized="1"
|
70
|
+
inkscape:pagecheckerboard="true" />
|
71
|
+
<metadata
|
72
|
+
id="metadata835">
|
73
|
+
<rdf:RDF>
|
74
|
+
<cc:Work
|
75
|
+
rdf:about="">
|
76
|
+
<dc:format>image/svg+xml</dc:format>
|
77
|
+
<dc:type
|
78
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
79
|
+
<dc:title></dc:title>
|
80
|
+
</cc:Work>
|
81
|
+
</rdf:RDF>
|
82
|
+
</metadata>
|
83
|
+
<g
|
84
|
+
inkscape:label="Layer 1"
|
85
|
+
inkscape:groupmode="layer"
|
86
|
+
id="layer1"
|
87
|
+
transform="translate(0.33337499,-52.518951)">
|
88
|
+
<g
|
89
|
+
aria-label="ASSIGNABLE_VALUES"
|
90
|
+
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:1.25;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
91
|
+
id="text1385">
|
92
|
+
<path
|
93
|
+
d="m 2.4288749,52.645951 h 1.571625 l 2.7569582,6.985 H 5.0694165 l -0.508,-1.402292 H 1.8732499 l -0.5132916,1.402292 h -1.69333329 z m -0.026458,4.196292 H 4.0375415 L 3.2279166,54.550951 h -0.015875 z"
|
94
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
95
|
+
id="path822" />
|
96
|
+
<path
|
97
|
+
d="m 9.8583639,52.518951 q 0.6508751,0 1.1377081,0.142875 0.486834,0.142875 0.783167,0.301625 0.296333,0.15875 0.359833,0.211667 l -0.762,1.275291 q -0.08467,-0.0635 -0.291041,-0.185208 -0.201084,-0.121708 -0.481542,-0.216958 -0.275167,-0.09525 -0.576792,-0.09525 -0.4074581,0 -0.661458,0.148166 -0.2487084,0.142875 -0.2487084,0.428625 0,0.195792 0.1322917,0.354542 0.1375833,0.153458 0.41275,0.296333 0.2804583,0.137584 0.7090837,0.301625 0.391583,0.142875 0.735541,0.338667 0.343959,0.195792 0.60325,0.465667 0.264584,0.264583 0.418042,0.613833 0.153458,0.34925 0.153458,0.79375 0,0.529167 -0.216958,0.92075 -0.216958,0.386292 -0.592667,0.640292 -0.370416,0.254 -0.846666,0.375708 -0.470959,0.127 -0.9789587,0.127 -0.7196667,0 -1.2911667,-0.164042 -0.5662083,-0.164041 -0.9154583,-0.354541 -0.3492499,-0.1905 -0.4180416,-0.254 L 7.810489,57.657159 q 0.0635,0.04762 0.2434167,0.153459 0.1852083,0.105833 0.4497916,0.22225 0.2645833,0.111125 0.5609167,0.1905 0.301625,0.07937 0.5926666,0.07937 0.4868334,0 0.7302504,-0.185209 0.243416,-0.1905 0.243416,-0.497416 0,-0.227542 -0.153458,-0.407459 Q 10.324031,57.032743 10.017114,56.873993 9.7101973,56.709951 9.2498223,56.530034 8.7894473,56.344826 8.3872806,56.080243 7.9904057,55.815659 7.7416973,55.418784 7.492989,55.021909 7.492989,54.434534 q 0,-0.587375 0.3280833,-1.016 0.333375,-0.433916 0.873125,-0.66675 0.5450417,-0.232833 1.1641666,-0.232833 z"
|
98
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
99
|
+
id="path824" />
|
100
|
+
<path
|
101
|
+
d="m 15.779735,52.518951 q 0.650875,0 1.137709,0.142875 0.486833,0.142875 0.783166,0.301625 0.296334,0.15875 0.359834,0.211667 l -0.762,1.275291 q -0.08467,-0.0635 -0.291042,-0.185208 -0.201083,-0.121708 -0.481542,-0.216958 -0.275166,-0.09525 -0.576791,-0.09525 -0.407459,0 -0.661459,0.148166 -0.248708,0.142875 -0.248708,0.428625 0,0.195792 0.132292,0.354542 0.137583,0.153458 0.41275,0.296333 0.280458,0.137584 0.709083,0.301625 0.391583,0.142875 0.735542,0.338667 0.343958,0.195792 0.60325,0.465667 0.264583,0.264583 0.418041,0.613833 0.153459,0.34925 0.153459,0.79375 0,0.529167 -0.216959,0.92075 -0.216958,0.386292 -0.592666,0.640292 -0.370417,0.254 -0.846667,0.375708 -0.470958,0.127 -0.978958,0.127 -0.719667,0 -1.291167,-0.164042 -0.566208,-0.164041 -0.915458,-0.354541 -0.34925,-0.1905 -0.418042,-0.254 l 0.788458,-1.328209 q 0.0635,0.04762 0.243417,0.153459 0.185208,0.105833 0.449792,0.22225 0.264583,0.111125 0.560916,0.1905 0.301625,0.07937 0.592667,0.07937 0.486833,0 0.73025,-0.185209 0.243417,-0.1905 0.243417,-0.497416 0,-0.227542 -0.153459,-0.407459 -0.153458,-0.179916 -0.460375,-0.338666 -0.306916,-0.164042 -0.767291,-0.343959 -0.460375,-0.185208 -0.862542,-0.449791 -0.396875,-0.264584 -0.645583,-0.661459 -0.248709,-0.396875 -0.248709,-0.98425 0,-0.587375 0.328084,-1.016 0.333375,-0.433916 0.873125,-0.66675 0.545041,-0.232833 1.164166,-0.232833 z"
|
102
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
103
|
+
id="path826" />
|
104
|
+
<path
|
105
|
+
d="m 19.214026,52.645951 h 1.582208 v 6.985 h -1.582208 z"
|
106
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
107
|
+
id="path828" />
|
108
|
+
<path
|
109
|
+
d="m 25.331172,55.725701 h 3.561292 v 0.4445 q 0,0.751417 -0.254,1.402292 -0.248708,0.650875 -0.714375,1.143 -0.465667,0.492125 -1.11125,0.767291 -0.645583,0.275167 -1.42875,0.275167 -0.809625,0 -1.471083,-0.275167 -0.656167,-0.280458 -1.132417,-0.777875 -0.47625,-0.497416 -0.73025,-1.153583 -0.254,-0.661458 -0.254,-1.418167 0,-0.751416 0.254,-1.407583 0.254,-0.661458 0.73025,-1.153583 0.47625,-0.497417 1.132417,-0.772584 0.661458,-0.280458 1.471083,-0.280458 0.661458,0 1.164167,0.142875 0.508,0.142875 0.873125,0.381 0.365125,0.238125 0.619125,0.523875 0.254,0.280458 0.423333,0.550333 l -1.502833,0.709084 q -0.216959,-0.333375 -0.592667,-0.582084 -0.370417,-0.248708 -0.98425,-0.248708 -0.428625,0 -0.788458,0.169333 -0.354542,0.169334 -0.613834,0.465667 -0.259291,0.291042 -0.402166,0.682625 -0.137584,0.386292 -0.137584,0.820208 0,0.439209 0.137584,0.8255 0.142875,0.386292 0.402166,0.682625 0.259292,0.296334 0.613834,0.465667 0.359833,0.164042 0.788458,0.164042 0.375708,0 0.682625,-0.09525 0.306917,-0.09525 0.529167,-0.275167 0.227541,-0.179917 0.354541,-0.423333 0.132292,-0.248709 0.15875,-0.545042 h -1.778 z"
|
110
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
111
|
+
id="path830" />
|
112
|
+
<path
|
113
|
+
d="m 31.263117,54.095868 0.116417,0.02117 v 5.513917 h -1.582209 v -6.985 h 2.159 l 2.831042,5.503333 -0.116417,0.02117 v -5.5245 h 1.582208 v 6.985 h -2.169583 z"
|
114
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
115
|
+
id="path832" />
|
116
|
+
<path
|
117
|
+
d="m 39.713905,52.645951 h 1.571625 l 2.756958,6.985 h -1.688041 l -0.508,-1.402292 H 39.15828 l -0.513291,1.402292 h -1.693334 z m -0.02646,4.196292 h 1.635125 l -0.809625,-2.291292 h -0.01587 z"
|
118
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
119
|
+
id="path834" />
|
120
|
+
<path
|
121
|
+
d="m 44.640434,52.645951 h 2.397125 q 0.597958,0 1.105958,0.164042 0.513292,0.164041 0.8255,0.53975 0.3175,0.370416 0.3175,1.005416 0,0.418042 -0.15875,0.746125 -0.153458,0.328084 -0.41275,0.53975 -0.254,0.206375 -0.555625,0.275167 0.264584,0.03175 0.513292,0.153458 0.254,0.116417 0.455083,0.328084 0.206375,0.206375 0.322792,0.518583 0.121708,0.306917 0.121708,0.73025 0,0.587375 -0.264583,1.037167 -0.259292,0.4445 -0.762,0.6985 -0.497417,0.248708 -1.222375,0.248708 h -2.682875 z m 1.582208,5.720292 h 0.719667 q 0.338667,0 0.550333,-0.100542 0.216959,-0.105833 0.3175,-0.296333 0.100542,-0.195792 0.100542,-0.465667 0,-0.423333 -0.264583,-0.619125 -0.259292,-0.201083 -0.73025,-0.201083 h -0.693209 z m 0,-2.921 h 0.640292 q 0.280458,0 0.465667,-0.100542 0.1905,-0.100542 0.28575,-0.280458 0.100541,-0.185209 0.100541,-0.423334 0,-0.428625 -0.243416,-0.576791 -0.243417,-0.153459 -0.66675,-0.153459 h -0.582084 z"
|
122
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
123
|
+
id="path836" />
|
124
|
+
<path
|
125
|
+
d="m 50.556499,52.645951 h 1.582209 v 5.598583 h 2.534708 v 1.386417 h -4.116917 z"
|
126
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
127
|
+
id="path838" />
|
128
|
+
<path
|
129
|
+
d="m 55.699995,52.645951 h 4.460875 v 1.386417 h -2.883958 v 1.423458 h 2.8575 v 1.344083 h -2.8575 v 1.444625 h 2.883958 v 1.386417 h -4.460875 z"
|
130
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
131
|
+
id="path840" />
|
132
|
+
<path
|
133
|
+
d="m 60.970476,60.668118 v -0.904875 h 4.323292 v 0.904875 z"
|
134
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
135
|
+
id="path842" />
|
136
|
+
<path
|
137
|
+
d="M 69.696424,59.630951 H 67.90784 l -2.487083,-6.985 h 1.783292 l 1.598083,4.968875 1.598083,-4.968875 h 1.783292 z"
|
138
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
139
|
+
id="path844" />
|
140
|
+
<path
|
141
|
+
d="m 74.278995,52.645951 h 1.571625 l 2.756959,6.985 h -1.688042 l -0.508,-1.402292 H 73.72337 l -0.513291,1.402292 h -1.693333 z m -0.02646,4.196292 h 1.635125 l -0.809625,-2.291292 h -0.01587 z"
|
142
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
143
|
+
id="path846" />
|
144
|
+
<path
|
145
|
+
d="m 79.205528,52.645951 h 1.582208 v 5.598583 h 2.534709 v 1.386417 h -4.116917 z"
|
146
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
147
|
+
id="path848" />
|
148
|
+
<path
|
149
|
+
d="m 88.196052,52.645951 h 1.582208 v 4.291542 q 0,0.862541 -0.338666,1.497541 -0.338667,0.629709 -0.968375,0.978959 -0.629709,0.343958 -1.502834,0.343958 -0.878416,0 -1.513416,-0.343958 -0.635,-0.34925 -0.973667,-0.978959 -0.333375,-0.635 -0.333375,-1.497541 v -4.291542 h 1.576917 v 4.206875 q 0,0.47625 0.148166,0.804333 0.153459,0.328084 0.433917,0.497417 0.280458,0.164042 0.661458,0.164042 0.375709,0 0.650875,-0.164042 0.275167,-0.169333 0.423334,-0.497417 0.153458,-0.328083 0.153458,-0.804333 z"
|
150
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
151
|
+
id="path850" />
|
152
|
+
<path
|
153
|
+
d="m 90.894793,52.645951 h 4.460875 v 1.386417 h -2.883959 v 1.423458 h 2.8575 v 1.344083 h -2.8575 v 1.444625 h 2.883959 v 1.386417 h -4.460875 z"
|
154
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
155
|
+
id="path852" />
|
156
|
+
<path
|
157
|
+
d="m 99.096861,52.518951 q 0.650875,0 1.137709,0.142875 0.48683,0.142875 0.78317,0.301625 0.29633,0.15875 0.35983,0.211667 l -0.762,1.275291 q -0.0847,-0.0635 -0.29104,-0.185208 -0.20109,-0.121708 -0.481544,-0.216958 -0.275167,-0.09525 -0.576792,-0.09525 -0.407458,0 -0.661458,0.148166 -0.248709,0.142875 -0.248709,0.428625 0,0.195792 0.132292,0.354542 0.137583,0.153458 0.41275,0.296333 0.280458,0.137584 0.709083,0.301625 0.391588,0.142875 0.735538,0.338667 0.34396,0.195792 0.60325,0.465667 0.26459,0.264583 0.41805,0.613833 0.15345,0.34925 0.15345,0.79375 0,0.529167 -0.21695,0.92075 -0.21696,0.386292 -0.59267,0.640292 -0.37042,0.254 -0.846668,0.375708 -0.470958,0.127 -0.978958,0.127 -0.719667,0 -1.291167,-0.164042 -0.566208,-0.164041 -0.915458,-0.354541 -0.34925,-0.1905 -0.418042,-0.254 l 0.788459,-1.328209 q 0.0635,0.04762 0.243416,0.153459 0.185209,0.105833 0.449792,0.22225 0.264583,0.111125 0.560917,0.1905 0.301625,0.07937 0.592666,0.07937 0.486834,0 0.73025,-0.185209 0.243417,-0.1905 0.243417,-0.497416 0,-0.227542 -0.153458,-0.407459 -0.153459,-0.179916 -0.460375,-0.338666 -0.306917,-0.164042 -0.767292,-0.343959 -0.460375,-0.185208 -0.862542,-0.449791 -0.396875,-0.264584 -0.645583,-0.661459 -0.248708,-0.396875 -0.248708,-0.98425 0,-0.587375 0.328083,-1.016 0.333375,-0.433916 0.873125,-0.66675 0.545042,-0.232833 1.164167,-0.232833 z"
|
158
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332"
|
159
|
+
id="path854" />
|
160
|
+
</g>
|
161
|
+
<rect
|
162
|
+
style="fill:url(#linearGradient1408);fill-opacity:1;stroke:none;stroke-width:0.03658517;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
163
|
+
id="rect1387"
|
164
|
+
width="101.52154"
|
165
|
+
height="1.2668874"
|
166
|
+
x="-3.5678506e-15"
|
167
|
+
y="65.308289" />
|
168
|
+
</g>
|
169
|
+
</svg>
|
@@ -0,0 +1,107 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
7
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
8
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
10
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
11
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
12
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
13
|
+
width="101.85382mm"
|
14
|
+
height="14.056225mm"
|
15
|
+
viewBox="0 0 101.85382 14.056225"
|
16
|
+
version="1.1"
|
17
|
+
id="svg838"
|
18
|
+
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
|
19
|
+
sodipodi:docname="logo.dark.text.svg"
|
20
|
+
inkscape:export-filename="/home/henning/Projects/capybara-lockstep/media/capybara-lockstep.dark.png"
|
21
|
+
inkscape:export-xdpi="196"
|
22
|
+
inkscape:export-ydpi="196">
|
23
|
+
<defs
|
24
|
+
id="defs832">
|
25
|
+
<linearGradient
|
26
|
+
inkscape:collect="always"
|
27
|
+
id="linearGradient1406">
|
28
|
+
<stop
|
29
|
+
style="stop-color:#ff0844;stop-opacity:1"
|
30
|
+
offset="0"
|
31
|
+
id="stop1402" />
|
32
|
+
<stop
|
33
|
+
style="stop-color:#ffb199;stop-opacity:1"
|
34
|
+
offset="1"
|
35
|
+
id="stop1404" />
|
36
|
+
</linearGradient>
|
37
|
+
<linearGradient
|
38
|
+
inkscape:collect="always"
|
39
|
+
xlink:href="#linearGradient1406"
|
40
|
+
id="linearGradient1408"
|
41
|
+
x1="22.054907"
|
42
|
+
y1="91.071762"
|
43
|
+
x2="88.956696"
|
44
|
+
y2="91.071762"
|
45
|
+
gradientUnits="userSpaceOnUse"
|
46
|
+
gradientTransform="matrix(1.5174713,0,0,0.08820435,-33.467691,57.908781)" />
|
47
|
+
</defs>
|
48
|
+
<sodipodi:namedview
|
49
|
+
id="base"
|
50
|
+
pagecolor="#ffffff"
|
51
|
+
bordercolor="#666666"
|
52
|
+
borderopacity="1.0"
|
53
|
+
inkscape:pageopacity="0.0"
|
54
|
+
inkscape:pageshadow="2"
|
55
|
+
inkscape:zoom="5.6"
|
56
|
+
inkscape:cx="436.45379"
|
57
|
+
inkscape:cy="-41.725401"
|
58
|
+
inkscape:document-units="mm"
|
59
|
+
inkscape:current-layer="layer1"
|
60
|
+
showgrid="false"
|
61
|
+
fit-margin-top="0"
|
62
|
+
fit-margin-left="0"
|
63
|
+
fit-margin-right="0"
|
64
|
+
fit-margin-bottom="0"
|
65
|
+
inkscape:window-width="2560"
|
66
|
+
inkscape:window-height="1391"
|
67
|
+
inkscape:window-x="1920"
|
68
|
+
inkscape:window-y="0"
|
69
|
+
inkscape:window-maximized="1"
|
70
|
+
inkscape:pagecheckerboard="true" />
|
71
|
+
<metadata
|
72
|
+
id="metadata835">
|
73
|
+
<rdf:RDF>
|
74
|
+
<cc:Work
|
75
|
+
rdf:about="">
|
76
|
+
<dc:format>image/svg+xml</dc:format>
|
77
|
+
<dc:type
|
78
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
79
|
+
<dc:title></dc:title>
|
80
|
+
</cc:Work>
|
81
|
+
</rdf:RDF>
|
82
|
+
</metadata>
|
83
|
+
<g
|
84
|
+
inkscape:label="Layer 1"
|
85
|
+
inkscape:groupmode="layer"
|
86
|
+
id="layer1"
|
87
|
+
transform="translate(0.33337499,-52.518951)">
|
88
|
+
<text
|
89
|
+
xml:space="preserve"
|
90
|
+
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:1.25;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
|
91
|
+
x="-0.27516666"
|
92
|
+
y="59.630951"
|
93
|
+
id="text1385"><tspan
|
94
|
+
sodipodi:role="line"
|
95
|
+
id="tspan1383"
|
96
|
+
x="-0.27516666"
|
97
|
+
y="59.630951"
|
98
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'League Spartan';-inkscape-font-specification:'League Spartan';fill:#ffffff;fill-opacity:1;stroke-width:0.26458332">ASSIGNABLE_VALUES</tspan></text>
|
99
|
+
<rect
|
100
|
+
style="fill:url(#linearGradient1408);fill-opacity:1;stroke:none;stroke-width:0.03658517;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
101
|
+
id="rect1387"
|
102
|
+
width="101.52154"
|
103
|
+
height="1.2668874"
|
104
|
+
x="-3.5678506e-15"
|
105
|
+
y="65.308289" />
|
106
|
+
</g>
|
107
|
+
</svg>
|