psd-enginedata 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. data/.gitignore +18 -0
  2. data/.rspec +2 -0
  3. data/Gemfile +2 -0
  4. data/Guardfile +9 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +112 -0
  7. data/Rakefile +1 -0
  8. data/lib/psd/enginedata.rb +93 -0
  9. data/lib/psd/enginedata/document_helpers.rb +46 -0
  10. data/lib/psd/enginedata/errors.rb +6 -0
  11. data/lib/psd/enginedata/export.rb +8 -0
  12. data/lib/psd/enginedata/exporters/css.rb +65 -0
  13. data/lib/psd/enginedata/instruction.rb +39 -0
  14. data/lib/psd/enginedata/instructions/boolean.rb +14 -0
  15. data/lib/psd/enginedata/instructions/hash_end.rb +18 -0
  16. data/lib/psd/enginedata/instructions/hash_start.rb +16 -0
  17. data/lib/psd/enginedata/instructions/multi_line_array_end.rb +16 -0
  18. data/lib/psd/enginedata/instructions/multi_line_array_start.rb +16 -0
  19. data/lib/psd/enginedata/instructions/noop.rb +10 -0
  20. data/lib/psd/enginedata/instructions/number.rb +14 -0
  21. data/lib/psd/enginedata/instructions/number_with_decimal.rb +14 -0
  22. data/lib/psd/enginedata/instructions/property.rb +14 -0
  23. data/lib/psd/enginedata/instructions/property_with_data.rb +21 -0
  24. data/lib/psd/enginedata/instructions/single_line_array.rb +21 -0
  25. data/lib/psd/enginedata/instructions/string.rb +14 -0
  26. data/lib/psd/enginedata/node.rb +11 -0
  27. data/lib/psd/enginedata/text.rb +49 -0
  28. data/lib/psd/enginedata/version.rb +6 -0
  29. data/psd-enginedata.gemspec +29 -0
  30. data/spec/files/enginedata +1622 -0
  31. data/spec/files/enginedata_simple +26 -0
  32. data/spec/integration/export_spec.rb +35 -0
  33. data/spec/integration/parser_spec.rb +24 -0
  34. data/spec/spec_helper.rb +17 -0
  35. metadata +198 -0
@@ -0,0 +1,26 @@
1
+ <<
2
+ /EngineDict
3
+ <<
4
+ /Editor
5
+ <<
6
+ /Text (˛ˇMake a change and save.)
7
+ >>
8
+ >>
9
+ /Font
10
+ <<
11
+ /Name (˛ˇHelveticaNeue-Light)
12
+ /Script 0
13
+ /FontType 1
14
+ /Synthetic 0
15
+ /FillColor
16
+ <<
17
+ /Type 1
18
+ /Values [ 1.0 0.0 0.0 0.0 ]
19
+ >>
20
+ /StyleSheetSet [
21
+ <<
22
+ /Name (˛ˇNormal RGB)
23
+ >>
24
+ ]
25
+ >>
26
+ >>
@@ -0,0 +1,35 @@
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
@@ -0,0 +1,24 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'spec_helper'
3
+
4
+ describe 'Parser' do
5
+ before(:each) do
6
+ @parser = PSD::EngineData.load('spec/files/enginedata')
7
+ end
8
+
9
+ it "is ready to parse" do
10
+ @parser.text.should_not be_nil
11
+ @parser.parsed?.should be_false
12
+ end
13
+
14
+ it "does not error when parsing" do
15
+ @parser.parse!
16
+ @parser.parsed?.should be_true
17
+ end
18
+
19
+ it "contains the proper data" do
20
+ @parser.parse!
21
+ @parser.result.EngineDict.Editor.Text.should == "Make a change and save."
22
+ @parser.result.ResourceDict.FontSet.first.Name.should == "HelveticaNeue-Light"
23
+ end
24
+ end
@@ -0,0 +1,17 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require './lib/psd/enginedata'
3
+
4
+ RSpec.configure do |config|
5
+ unless ENV['CIRCLECI']
6
+ config.filter_run focus: true
7
+ end
8
+
9
+ config.treat_symbols_as_metadata_keys_with_true_values = true
10
+ config.run_all_when_everything_filtered = true
11
+
12
+ # Run specs in random order to surface order dependencies. If you find an
13
+ # order dependency and want to debug it, you can fix the order by providing
14
+ # the seed, which is printed after each run.
15
+ # --seed 1234
16
+ config.order = 'random'
17
+ end
metadata ADDED
@@ -0,0 +1,198 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: psd-enginedata
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ryan LeFevre
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-07-30 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: hashie
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '2.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '2.0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: bundler
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '1.3'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '1.3'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: guard
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: guard-rspec
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rb-fsevent
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '0.9'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: '0.9'
126
+ description: Parser for the markup format used in the PSD file format
127
+ email:
128
+ - meltingice8917@gmail.com
129
+ executables: []
130
+ extensions: []
131
+ extra_rdoc_files: []
132
+ files:
133
+ - .gitignore
134
+ - .rspec
135
+ - Gemfile
136
+ - Guardfile
137
+ - LICENSE.txt
138
+ - README.md
139
+ - Rakefile
140
+ - lib/psd/enginedata.rb
141
+ - lib/psd/enginedata/document_helpers.rb
142
+ - lib/psd/enginedata/errors.rb
143
+ - lib/psd/enginedata/export.rb
144
+ - lib/psd/enginedata/exporters/css.rb
145
+ - lib/psd/enginedata/instruction.rb
146
+ - lib/psd/enginedata/instructions/boolean.rb
147
+ - lib/psd/enginedata/instructions/hash_end.rb
148
+ - lib/psd/enginedata/instructions/hash_start.rb
149
+ - lib/psd/enginedata/instructions/multi_line_array_end.rb
150
+ - lib/psd/enginedata/instructions/multi_line_array_start.rb
151
+ - lib/psd/enginedata/instructions/noop.rb
152
+ - lib/psd/enginedata/instructions/number.rb
153
+ - lib/psd/enginedata/instructions/number_with_decimal.rb
154
+ - lib/psd/enginedata/instructions/property.rb
155
+ - lib/psd/enginedata/instructions/property_with_data.rb
156
+ - lib/psd/enginedata/instructions/single_line_array.rb
157
+ - lib/psd/enginedata/instructions/string.rb
158
+ - lib/psd/enginedata/node.rb
159
+ - lib/psd/enginedata/text.rb
160
+ - lib/psd/enginedata/version.rb
161
+ - psd-enginedata.gemspec
162
+ - spec/files/enginedata
163
+ - spec/files/enginedata_simple
164
+ - spec/integration/export_spec.rb
165
+ - spec/integration/parser_spec.rb
166
+ - spec/spec_helper.rb
167
+ homepage: http://cosmos.layervault.com/psdrb.html
168
+ licenses:
169
+ - MIT
170
+ post_install_message:
171
+ rdoc_options: []
172
+ require_paths:
173
+ - lib
174
+ required_ruby_version: !ruby/object:Gem::Requirement
175
+ none: false
176
+ requirements:
177
+ - - ! '>='
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ required_rubygems_version: !ruby/object:Gem::Requirement
181
+ none: false
182
+ requirements:
183
+ - - ! '>='
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ requirements: []
187
+ rubyforge_project:
188
+ rubygems_version: 1.8.23
189
+ signing_key:
190
+ specification_version: 3
191
+ summary: Parser for the markup format used in the PSD file format
192
+ test_files:
193
+ - spec/files/enginedata
194
+ - spec/files/enginedata_simple
195
+ - spec/integration/export_spec.rb
196
+ - spec/integration/parser_spec.rb
197
+ - spec/spec_helper.rb
198
+ has_rdoc: