graff 0.0.1

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.
Files changed (2) hide show
  1. data/lib/graff.rb +221 -0
  2. metadata +56 -0
data/lib/graff.rb ADDED
@@ -0,0 +1,221 @@
1
+ require 'plist'
2
+
3
+ class Stencil
4
+
5
+ def initialize(file)
6
+ @stencil = Plist::parse_xml(file)
7
+ end
8
+
9
+ # MAPPINGS
10
+
11
+ def active_layer_index
12
+ @stencil['ActiveLayerIndex']
13
+ end
14
+
15
+ def application_version
16
+ @stencil['ApplicationVersion']
17
+ end
18
+
19
+ def auto_adjust
20
+ @stencil['AutoAdjust']
21
+ end
22
+
23
+ def background_graphic
24
+ @stencil['BackgroundGraphic']
25
+ end
26
+
27
+ def base_zoom
28
+ @stencil['BaseZoom']
29
+ end
30
+
31
+ def canvas_origin
32
+ @stencil['CanvasOrigin']
33
+ end
34
+
35
+ def column_align
36
+ @stencil['ColumnAlign']
37
+ end
38
+
39
+ def column_spacing
40
+ @stencil['ColumnSpacing']
41
+ end
42
+
43
+ def creation_date
44
+ @stencil['CreationDate']
45
+ end
46
+
47
+ def creator
48
+ @stencil['Creator']
49
+ end
50
+
51
+ def display_scale
52
+ @stencil['DisplayScale']
53
+ end
54
+
55
+ def graph_document_version
56
+ @stencil['GraphDocumentVersion']
57
+ end
58
+
59
+ def graphics_list
60
+ @stencil['GraphicsList']
61
+ end
62
+
63
+ def grid_info
64
+ @stencil['GridInfo']
65
+ end
66
+
67
+ def guides_locked
68
+ @stencil['GuidesLocked']
69
+ end
70
+
71
+ def guides_visible
72
+ @stencil['GuidesVisible']
73
+ end
74
+
75
+ def h_pages
76
+ @stencil['HPages']
77
+ end
78
+
79
+ def image_counter
80
+ @stencil['ImageCounter']
81
+ end
82
+
83
+ def keep_to_scale
84
+ @stencil['KeepToScale']
85
+ end
86
+
87
+ def layers
88
+ @stencil['Layers']
89
+ end
90
+
91
+ def layout_info
92
+ @stencil['LayoutInfo']
93
+ end
94
+
95
+ def links_visible
96
+ @stencil['LinksVisible']
97
+ end
98
+
99
+ def magnets_visible
100
+ @stencil['MagnetsVisible']
101
+ end
102
+
103
+ def master_sheets
104
+ @stencil['MasterSheets']
105
+ end
106
+
107
+ def modification_date
108
+ @stencil['ModificationDate']
109
+ end
110
+
111
+ def modifier
112
+ @stencil['Modifier']
113
+ end
114
+
115
+ def notes_visible
116
+ @stencil['NotesVisible']
117
+ end
118
+
119
+ def orientation
120
+ @stencil['Orientation']
121
+ end
122
+
123
+ def origin_visible
124
+ @stencil['OriginVisible']
125
+ end
126
+
127
+ def page_breaks
128
+ @stencil['PageBreaks']
129
+ end
130
+
131
+ def print_info
132
+ @stencil['PrintInfo']
133
+ end
134
+
135
+ def print_one_page
136
+ @stencil['PrintOnePage']
137
+ end
138
+
139
+ def read_only
140
+ @stencil['ReadOnly']
141
+ end
142
+
143
+ def row_align
144
+ @stencil['RowAlign']
145
+ end
146
+
147
+ def row_spacing
148
+ @stencil['RowSpacing']
149
+ end
150
+
151
+ def sheet_title
152
+ @stencil['SheetTitle']
153
+ end
154
+
155
+ def sheets
156
+ @stencil['Sheets']
157
+ end
158
+
159
+ def smart_aligment_guides_active
160
+ @stencil['SmartAlignmentGuidesActive']
161
+ end
162
+
163
+ def smart_distance_guides_active
164
+ @stencil['SmartDistanceGuidesActive']
165
+ end
166
+
167
+ def unique_id
168
+ @stencil['UniqueID']
169
+ end
170
+
171
+ def unique_id
172
+ @stencil['UniqueID']
173
+ end
174
+
175
+ def use_entire_page
176
+ @stencil['UseEntirePage']
177
+ end
178
+
179
+ def v_pages
180
+ @stencil['VPages']
181
+ end
182
+
183
+ def window_info
184
+ @stencil['WindowInfo']
185
+ end
186
+
187
+ # CONVENIENCE METHODS
188
+
189
+ def number_of_graphics
190
+ if self.sheets
191
+ graphics = 0
192
+ self.sheets.each do |sheet|
193
+ graphics = graphics + sheet['GraphicsList'].count
194
+ end
195
+ graphics
196
+ else
197
+ self.graphics_list.count
198
+ end
199
+ end
200
+
201
+ def number_of_canvases
202
+ self.sheets ? self.sheets.count : 1
203
+ end
204
+
205
+ def number_of_layers
206
+ if self.sheets
207
+ layers = 0
208
+ self.sheets.each do |sheet|
209
+ layers = layers + sheet['Layers'].count
210
+ end
211
+ layers
212
+ else
213
+ self.layers.count || 0
214
+ end
215
+ end
216
+
217
+ def version
218
+ self.graph_document_version
219
+ end
220
+
221
+ end
metadata ADDED
@@ -0,0 +1,56 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: graff
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Patrick Crowley
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-06-12 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: plist
16
+ requirement: &70167979108340 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70167979108340
25
+ description: Parse OmniGraffle documents
26
+ email: patrick@mokolabs.com
27
+ executables: []
28
+ extensions: []
29
+ extra_rdoc_files: []
30
+ files:
31
+ - lib/graff.rb
32
+ homepage: http://rubygems.org/gems/graff
33
+ licenses: []
34
+ post_install_message:
35
+ rdoc_options: []
36
+ require_paths:
37
+ - lib
38
+ required_ruby_version: !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ required_rubygems_version: !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ requirements: []
51
+ rubyforge_project:
52
+ rubygems_version: 1.8.10
53
+ signing_key:
54
+ specification_version: 3
55
+ summary: graff
56
+ test_files: []