psd-enginedata 0.2.3 → 1.0.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.
- checksums.yaml +7 -0
- data/lib/psd/enginedata.rb +0 -1
- data/lib/psd/enginedata/version.rb +1 -1
- data/spec/integration/parser_spec.rb +6 -5
- metadata +15 -36
- data/lib/psd/enginedata/export.rb +0 -8
- data/lib/psd/enginedata/exporters/css.rb +0 -65
- data/spec/integration/export_spec.rb +0 -35
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 1957969e897d576400ab12b55602144ed46d35cf
|
|
4
|
+
data.tar.gz: 62f0f5c777a3abdd50090ebfeb5a94b4a01a2dff
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 425deaa7d82ddce71ce370648481a1414c34b5ca80610598591240f023690df82a0f415c2c6725d128ed207e0cac73e3010039272b983adc0b278428c0320428
|
|
7
|
+
data.tar.gz: 32b3e197b45ce9b132cb4555be9e9a160800abe6e44ea44ef4e15159b09f57c16bcd89d8a6263c1303104472acc033f631e5bc64de37da59246c9c191dd40e32
|
data/lib/psd/enginedata.rb
CHANGED
|
@@ -7,18 +7,19 @@ describe 'Parser' do
|
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
it "is ready to parse" do
|
|
10
|
-
@parser.text.
|
|
11
|
-
@parser.
|
|
10
|
+
expect(@parser.text).to_not be_nil
|
|
11
|
+
expect(@parser).to_not be_parsed
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
it "does not error when parsing" do
|
|
15
15
|
@parser.parse!
|
|
16
|
-
@parser.
|
|
16
|
+
expect(@parser).to be_parsed
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
it "contains the proper data" do
|
|
20
20
|
@parser.parse!
|
|
21
|
-
|
|
22
|
-
@parser.result.
|
|
21
|
+
|
|
22
|
+
expect(@parser.result.EngineDict.Editor.Text).to eq("Make a change and save.")
|
|
23
|
+
expect(@parser.result.ResourceDict.FontSet.first.Name).to eq("HelveticaNeue-Light")
|
|
23
24
|
end
|
|
24
25
|
end
|
metadata
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: psd-enginedata
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 1.0.0
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Ryan LeFevre
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date: 2013-
|
|
11
|
+
date: 2013-08-25 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: hashie
|
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
16
|
requirements:
|
|
19
17
|
- - ~>
|
|
20
18
|
- !ruby/object:Gem::Version
|
|
@@ -22,7 +20,6 @@ dependencies:
|
|
|
22
20
|
type: :runtime
|
|
23
21
|
prerelease: false
|
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
23
|
requirements:
|
|
27
24
|
- - ~>
|
|
28
25
|
- !ruby/object:Gem::Version
|
|
@@ -30,7 +27,6 @@ dependencies:
|
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
|
31
28
|
name: bundler
|
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
-
none: false
|
|
34
30
|
requirements:
|
|
35
31
|
- - ~>
|
|
36
32
|
- !ruby/object:Gem::Version
|
|
@@ -38,7 +34,6 @@ dependencies:
|
|
|
38
34
|
type: :development
|
|
39
35
|
prerelease: false
|
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
none: false
|
|
42
37
|
requirements:
|
|
43
38
|
- - ~>
|
|
44
39
|
- !ruby/object:Gem::Version
|
|
@@ -46,71 +41,62 @@ dependencies:
|
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
|
47
42
|
name: rake
|
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
44
|
requirements:
|
|
51
|
-
- -
|
|
45
|
+
- - '>='
|
|
52
46
|
- !ruby/object:Gem::Version
|
|
53
47
|
version: '0'
|
|
54
48
|
type: :development
|
|
55
49
|
prerelease: false
|
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
none: false
|
|
58
51
|
requirements:
|
|
59
|
-
- -
|
|
52
|
+
- - '>='
|
|
60
53
|
- !ruby/object:Gem::Version
|
|
61
54
|
version: '0'
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
|
63
56
|
name: rspec
|
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
|
65
|
-
none: false
|
|
66
58
|
requirements:
|
|
67
|
-
- -
|
|
59
|
+
- - '>='
|
|
68
60
|
- !ruby/object:Gem::Version
|
|
69
61
|
version: '0'
|
|
70
62
|
type: :development
|
|
71
63
|
prerelease: false
|
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
-
none: false
|
|
74
65
|
requirements:
|
|
75
|
-
- -
|
|
66
|
+
- - '>='
|
|
76
67
|
- !ruby/object:Gem::Version
|
|
77
68
|
version: '0'
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
|
79
70
|
name: guard
|
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
|
81
|
-
none: false
|
|
82
72
|
requirements:
|
|
83
|
-
- -
|
|
73
|
+
- - '>='
|
|
84
74
|
- !ruby/object:Gem::Version
|
|
85
75
|
version: '0'
|
|
86
76
|
type: :development
|
|
87
77
|
prerelease: false
|
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
-
none: false
|
|
90
79
|
requirements:
|
|
91
|
-
- -
|
|
80
|
+
- - '>='
|
|
92
81
|
- !ruby/object:Gem::Version
|
|
93
82
|
version: '0'
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
|
95
84
|
name: guard-rspec
|
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
|
97
|
-
none: false
|
|
98
86
|
requirements:
|
|
99
|
-
- -
|
|
87
|
+
- - '>='
|
|
100
88
|
- !ruby/object:Gem::Version
|
|
101
89
|
version: '0'
|
|
102
90
|
type: :development
|
|
103
91
|
prerelease: false
|
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
-
none: false
|
|
106
93
|
requirements:
|
|
107
|
-
- -
|
|
94
|
+
- - '>='
|
|
108
95
|
- !ruby/object:Gem::Version
|
|
109
96
|
version: '0'
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
|
111
98
|
name: rb-fsevent
|
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
|
113
|
-
none: false
|
|
114
100
|
requirements:
|
|
115
101
|
- - ~>
|
|
116
102
|
- !ruby/object:Gem::Version
|
|
@@ -118,7 +104,6 @@ dependencies:
|
|
|
118
104
|
type: :development
|
|
119
105
|
prerelease: false
|
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
none: false
|
|
122
107
|
requirements:
|
|
123
108
|
- - ~>
|
|
124
109
|
- !ruby/object:Gem::Version
|
|
@@ -140,8 +125,6 @@ files:
|
|
|
140
125
|
- lib/psd/enginedata.rb
|
|
141
126
|
- lib/psd/enginedata/document_helpers.rb
|
|
142
127
|
- lib/psd/enginedata/errors.rb
|
|
143
|
-
- lib/psd/enginedata/export.rb
|
|
144
|
-
- lib/psd/enginedata/exporters/css.rb
|
|
145
128
|
- lib/psd/enginedata/instruction.rb
|
|
146
129
|
- lib/psd/enginedata/instructions/boolean.rb
|
|
147
130
|
- lib/psd/enginedata/instructions/hash_end.rb
|
|
@@ -161,38 +144,34 @@ files:
|
|
|
161
144
|
- psd-enginedata.gemspec
|
|
162
145
|
- spec/files/enginedata
|
|
163
146
|
- spec/files/enginedata_simple
|
|
164
|
-
- spec/integration/export_spec.rb
|
|
165
147
|
- spec/integration/parser_spec.rb
|
|
166
148
|
- spec/spec_helper.rb
|
|
167
149
|
homepage: http://cosmos.layervault.com/psdrb.html
|
|
168
150
|
licenses:
|
|
169
151
|
- MIT
|
|
152
|
+
metadata: {}
|
|
170
153
|
post_install_message:
|
|
171
154
|
rdoc_options: []
|
|
172
155
|
require_paths:
|
|
173
156
|
- lib
|
|
174
157
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
175
|
-
none: false
|
|
176
158
|
requirements:
|
|
177
|
-
- -
|
|
159
|
+
- - '>='
|
|
178
160
|
- !ruby/object:Gem::Version
|
|
179
161
|
version: '0'
|
|
180
162
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
|
-
none: false
|
|
182
163
|
requirements:
|
|
183
|
-
- -
|
|
164
|
+
- - '>='
|
|
184
165
|
- !ruby/object:Gem::Version
|
|
185
166
|
version: '0'
|
|
186
167
|
requirements: []
|
|
187
168
|
rubyforge_project:
|
|
188
|
-
rubygems_version:
|
|
169
|
+
rubygems_version: 2.0.3
|
|
189
170
|
signing_key:
|
|
190
|
-
specification_version:
|
|
171
|
+
specification_version: 4
|
|
191
172
|
summary: Parser for the markup format used in the PSD file format
|
|
192
173
|
test_files:
|
|
193
174
|
- spec/files/enginedata
|
|
194
175
|
- spec/files/enginedata_simple
|
|
195
|
-
- spec/integration/export_spec.rb
|
|
196
176
|
- spec/integration/parser_spec.rb
|
|
197
177
|
- spec/spec_helper.rb
|
|
198
|
-
has_rdoc:
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
|
2
|
-
class PSD
|
|
3
|
-
class EngineData
|
|
4
|
-
module Export
|
|
5
|
-
# Exports the document to a CSS string.
|
|
6
|
-
module CSS
|
|
7
|
-
# Creates the CSS string and returns it. Each property is newline separated
|
|
8
|
-
# and not all properties may be present depending on the document.
|
|
9
|
-
#
|
|
10
|
-
# Colors are returned in rgba() format and fonts may include some internal
|
|
11
|
-
# Photoshop fonts.
|
|
12
|
-
def to_css
|
|
13
|
-
parse! unless parsed?
|
|
14
|
-
|
|
15
|
-
definition = {}
|
|
16
|
-
definition.merge! font_family
|
|
17
|
-
definition.merge! font_size
|
|
18
|
-
definition.merge! font_color
|
|
19
|
-
|
|
20
|
-
css = []
|
|
21
|
-
definition.each do |k, v|
|
|
22
|
-
css << "#{k}: #{v};"
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
css.join("\n")
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
private
|
|
29
|
-
|
|
30
|
-
def font_family
|
|
31
|
-
font = result.ResourceDict.FontSet.map { |f| %{"#{f.Name}"} }.join(', ')
|
|
32
|
-
|
|
33
|
-
{
|
|
34
|
-
'font-family' => font
|
|
35
|
-
}
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def font_size
|
|
39
|
-
{
|
|
40
|
-
'font-size' => "#{styles.FontSize}pt"
|
|
41
|
-
}
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def font_color
|
|
45
|
-
return {} unless styles.key?('FillColor')
|
|
46
|
-
|
|
47
|
-
color = styles.FillColor.Values.map { |c| (c * 255).round }
|
|
48
|
-
if color.length == 3
|
|
49
|
-
alpha = 255
|
|
50
|
-
else
|
|
51
|
-
alpha = color.shift
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
{
|
|
55
|
-
'color' => "rgba(#{color.join(', ')}, #{alpha})"
|
|
56
|
-
}
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def styles
|
|
60
|
-
result.EngineDict.StyleRun.RunArray[0].StyleSheet.StyleSheetData
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
end
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
|
2
|
-
require 'spec_helper'
|
|
3
|
-
|
|
4
|
-
describe 'Exporting' do
|
|
5
|
-
before(:each) do
|
|
6
|
-
@parser = PSD::EngineData.load('spec/files/enginedata')
|
|
7
|
-
@parser.parse!
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
describe 'to css' do
|
|
11
|
-
it "is possible" do
|
|
12
|
-
@parser.respond_to?(:to_css)
|
|
13
|
-
@parser.to_css
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
it "includes all customization values" do
|
|
17
|
-
css = @parser.to_css
|
|
18
|
-
|
|
19
|
-
css.should include "font-family"
|
|
20
|
-
css.should include "font-size"
|
|
21
|
-
css.should include "color"
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
it "produces valid code" do
|
|
25
|
-
css = @parser.to_css
|
|
26
|
-
|
|
27
|
-
# All lines end with semicolons
|
|
28
|
-
css.split("\n").each { |l| l[-1].should == ";" }
|
|
29
|
-
|
|
30
|
-
# Produces the correct and valid RGBA value
|
|
31
|
-
match = /rgba\((\d+), (\d+), (\d+), (\d+)\)/i.match(css)
|
|
32
|
-
match[1..-1].should == ['19', '120', '98', '255']
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|