circuitdata 0.6.2 → 0.6.3
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 611504e3b618906c3034b1d9eea7c4e863a6e48b
|
4
|
+
data.tar.gz: 333947547beab6d85a82d1fe6ea38bbacff79915
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1c44352aa96d8180a1d8edfe6d5357ce440be331c981866b7ec53d8d5fdd2ec07fc33301338d34c0c554c60eedfeda79c1c22018506b32f2925395390b0121b
|
7
|
+
data.tar.gz: 1d7ba1fa15a0d14f24ff9fb4e120b8f794127c0b5bdfdfc789b881ba60be08f32db73b2c19d0ec1c70724345cf6051c98f4ccbf8c940b13b3ee8a986f52011d6
|
data/lib/circuitdata.rb
CHANGED
@@ -41,7 +41,7 @@
|
|
41
41
|
}
|
42
42
|
},
|
43
43
|
"aliases": "",
|
44
|
-
"
|
44
|
+
"descriptive_name": "Soldermasks",
|
45
45
|
"description": "Materials used as soldermask"
|
46
46
|
},
|
47
47
|
"dielectrics": {
|
@@ -146,7 +146,7 @@
|
|
146
146
|
}
|
147
147
|
},
|
148
148
|
"aliases": "",
|
149
|
-
"
|
149
|
+
"descriptive_name": "Dielectrics",
|
150
150
|
"description": "Materials used as dielectrics/laminates"
|
151
151
|
},
|
152
152
|
"stiffeners": {
|
@@ -154,7 +154,7 @@
|
|
154
154
|
"additionalProperties": false,
|
155
155
|
"required": ["name"],
|
156
156
|
"properties": {
|
157
|
-
"
|
157
|
+
"descriptive_name": {
|
158
158
|
"type": "string",
|
159
159
|
"uom": null,
|
160
160
|
"description": "The name of the Soldermask. Use the official name or some name as close to it as possible"
|
@@ -171,7 +171,7 @@
|
|
171
171
|
}
|
172
172
|
},
|
173
173
|
"aliases": "",
|
174
|
-
"
|
174
|
+
"descriptive_name": "Stiffener",
|
175
175
|
"uom": null,
|
176
176
|
"description": "The materials to be used as stiffener"
|
177
177
|
}
|
@@ -275,6 +275,106 @@
|
|
275
275
|
"description": "The average copper coverage of the board"
|
276
276
|
}
|
277
277
|
},
|
278
|
+
"dielectric": {
|
279
|
+
"name": {
|
280
|
+
"type": "string",
|
281
|
+
"uom": null,
|
282
|
+
"description": "The name of the Laminate. Use the official name or some name as close to it as possible."
|
283
|
+
},
|
284
|
+
"manufacturer": {
|
285
|
+
"type": "string",
|
286
|
+
"uom": null,
|
287
|
+
"description": "The name of the manufacturer"
|
288
|
+
},
|
289
|
+
"ipc_4101_sheet": {
|
290
|
+
"type": "integer",
|
291
|
+
"uom": null,
|
292
|
+
"description": "The reference sheet number of the IPC 4101 Standard."
|
293
|
+
},
|
294
|
+
"ipc_4103_sheet": {
|
295
|
+
"type": "integer",
|
296
|
+
"uom": null,
|
297
|
+
"description": "The reference sheet number of the IPC 4103 Standard."
|
298
|
+
},
|
299
|
+
"ipc_4204_sheet": {
|
300
|
+
"type": "integer",
|
301
|
+
"uom": null,
|
302
|
+
"description": "The reference sheet number of the IPC 4204 Standard."
|
303
|
+
},
|
304
|
+
"tg_min": {
|
305
|
+
"type": "integer",
|
306
|
+
"uom": null,
|
307
|
+
"description": "The minimum Glass Transition Temperature (Tg) required."
|
308
|
+
},
|
309
|
+
"tg_range_from": {
|
310
|
+
"type": "integer",
|
311
|
+
"uom": null,
|
312
|
+
"description": "The Glass Transition Temperature (Tg) range starts at."
|
313
|
+
},
|
314
|
+
"tg_range_to": {
|
315
|
+
"type": "integer",
|
316
|
+
"uom": null,
|
317
|
+
"description": "The Glass Transition Temperature (Tg) range ands at."
|
318
|
+
},
|
319
|
+
"td_min": {
|
320
|
+
"type": "integer",
|
321
|
+
"uom": null,
|
322
|
+
"description": "The minimum required temperature at which a base laminate material experiences an established percentage of weight loss using Thermograv imetric Analysis (TGA)."
|
323
|
+
},
|
324
|
+
"td_range_from": {
|
325
|
+
"type": "integer",
|
326
|
+
"uom": null,
|
327
|
+
"description": "The Td range starts at."
|
328
|
+
},
|
329
|
+
"td_range_to": {
|
330
|
+
"type": "integer",
|
331
|
+
"uom": null,
|
332
|
+
"description": "The Td range stops at."
|
333
|
+
},
|
334
|
+
"halogen_free": {
|
335
|
+
"type": "boolean",
|
336
|
+
"uom": null,
|
337
|
+
"description": "Indicates the material is material free or is required to be"
|
338
|
+
},
|
339
|
+
"rw_en45545_2_2013": {
|
340
|
+
"type": "boolean",
|
341
|
+
"uom": null,
|
342
|
+
"description": "Railway Europe EN45545-2:2013 compatible"
|
343
|
+
},
|
344
|
+
"rw_nf_f_16_101": {
|
345
|
+
"type": "boolean",
|
346
|
+
"uom": null,
|
347
|
+
"description": "Railway France NF F 16-101 compatible"
|
348
|
+
},
|
349
|
+
"rw_uni_cei_11170_3": {
|
350
|
+
"type": "boolean",
|
351
|
+
"uom": null,
|
352
|
+
"description": "Railway Italy UNI CEI 11170-3 compatible."
|
353
|
+
},
|
354
|
+
"rw_nfpa_130": {
|
355
|
+
"type": "boolean",
|
356
|
+
"uom": null,
|
357
|
+
"description": "Railway USA NFPA 130 compatible."
|
358
|
+
},
|
359
|
+
"ul": {
|
360
|
+
"type": "boolean",
|
361
|
+
"uom": null,
|
362
|
+
"description": "UL compatible."
|
363
|
+
},
|
364
|
+
"link": {
|
365
|
+
"type": "string",
|
366
|
+
"uom": null,
|
367
|
+
"description": "The link to some url that gives more information or a reference to the product."
|
368
|
+
},
|
369
|
+
"accept_equivalent": {
|
370
|
+
"type": "boolean",
|
371
|
+
"uom": null,
|
372
|
+
"description": "Equivalent material to the one specified is OK to use as a replacement if true."
|
373
|
+
},
|
374
|
+
"aliases": "",
|
375
|
+
"descriptive_name": "Dielectrics",
|
376
|
+
"description": "Materials used as dielectrics/laminates"
|
377
|
+
},
|
278
378
|
"final_finish": {
|
279
379
|
"finish": {
|
280
380
|
"type": "string",
|
data/lib/circuitdata/tools.rb
CHANGED
@@ -8,24 +8,29 @@ class Circuitdata::Tools
|
|
8
8
|
|
9
9
|
def update_ra(type, key, value)
|
10
10
|
parsed_elements = Circuitdata.read_json(@definitions_path)[2]
|
11
|
-
unless @ra[:structured].has_key? key
|
12
|
-
@ra[:structured][key] = {
|
11
|
+
unless @ra[:structured][:elements].has_key? key
|
12
|
+
@ra[:structured][:elements][key] = {
|
13
13
|
:type => value[:type],
|
14
14
|
:elements => {},
|
15
15
|
:name => nil,
|
16
16
|
:description => nil,
|
17
17
|
:aliases => nil
|
18
18
|
}
|
19
|
-
@ra[:structured][key][:name] = value[:
|
20
|
-
@ra[:structured][key][:description] = value[:
|
19
|
+
@ra[:structured][:elements][key][:name] = value[:descriptive_name] if value.has_key? :descriptive_name
|
20
|
+
@ra[:structured][:elements][key][:description] = value[:description] if value.has_key? :description
|
21
21
|
if value.has_key? :aliases
|
22
|
-
@ra[:structured][key][:aliases] = value[:aliases] unless value[:aliases] == ""
|
22
|
+
@ra[:structured][:elements][key][:aliases] = value[:aliases] unless value[:aliases] == ""
|
23
23
|
end
|
24
24
|
end
|
25
|
-
if value
|
26
|
-
value[:
|
27
|
-
|
28
|
-
|
25
|
+
if value[:type] == "array"
|
26
|
+
subelement = value[:items]
|
27
|
+
else
|
28
|
+
subelement = value
|
29
|
+
end
|
30
|
+
if subelement.has_key? :properties
|
31
|
+
subelement[:properties].each do |skey, svalue|
|
32
|
+
unless @ra[:structured][:elements][key][:elements].has_key? skey
|
33
|
+
@ra[:structured][:elements][key][:elements][skey] = {
|
29
34
|
:in_product_generic => false,
|
30
35
|
:in_product_stackup => false,
|
31
36
|
:in_profile_default => false,
|
@@ -38,9 +43,7 @@ class Circuitdata::Tools
|
|
38
43
|
:description => nil,
|
39
44
|
:uom => nil,
|
40
45
|
:minimum => nil,
|
41
|
-
:maximum => nil
|
42
|
-
:in_profile_restricted_regex => nil,
|
43
|
-
:in_capabilities_regex => nil
|
46
|
+
:maximum => nil
|
44
47
|
}
|
45
48
|
if svalue.has_key? :$ref
|
46
49
|
elements = svalue[:$ref].split('/')
|
@@ -58,43 +61,43 @@ class Circuitdata::Tools
|
|
58
61
|
end
|
59
62
|
unless element.nil?
|
60
63
|
if element.has_key? :type
|
61
|
-
@ra[:structured][key][:elements][skey][:type] = element[:type]
|
64
|
+
@ra[:structured][:elements][key][:elements][skey][:type] = element[:type]
|
62
65
|
if element[:type] == "array"
|
63
66
|
if element.has_key? :items and element[:items].has_key? :type
|
64
|
-
@ra[:structured][key][:elements][skey][:arrayitems] == element[:items][:type]
|
67
|
+
@ra[:structured][:elements][key][:elements][skey][:arrayitems] == element[:items][:type]
|
65
68
|
end
|
66
69
|
end
|
67
70
|
end
|
68
|
-
@ra[:structured][key][:elements][skey][:enum] = element[:enum] if element.has_key? :enum
|
69
|
-
@ra[:structured][key][:elements][skey][:description] = element[:description] if element.has_key? :description
|
70
|
-
@ra[:structured][key][:elements][skey][:uom] = element[:uom] if element.has_key? :uom
|
71
|
-
@ra[:structured][key][:elements][skey][:minimum] = element[:minimum] if element.has_key? :minimum
|
72
|
-
@ra[:structured][key][:elements][skey][:maximum] = element[:maximum] if element.has_key? :maximum
|
71
|
+
@ra[:structured][:elements][key][:elements][skey][:enum] = element[:enum] if element.has_key? :enum
|
72
|
+
@ra[:structured][:elements][key][:elements][skey][:description] = element[:description] if element.has_key? :description
|
73
|
+
@ra[:structured][:elements][key][:elements][skey][:uom] = element[:uom] if element.has_key? :uom
|
74
|
+
@ra[:structured][:elements][key][:elements][skey][:minimum] = element[:minimum] if element.has_key? :minimum
|
75
|
+
@ra[:structured][:elements][key][:elements][skey][:maximum] = element[:maximum] if element.has_key? :maximum
|
73
76
|
end
|
74
77
|
else
|
75
78
|
if [:in_profile_restricted, :in_capabilities].include? type
|
76
|
-
case @ra[:structured][key][:elements][skey][:type]
|
79
|
+
case @ra[:structured][:elements][key][:elements][skey][:type]
|
77
80
|
when *["number", "integer", "boolean", "string"]
|
78
|
-
@ra[:structured][key][:elements][skey][:type] = "number" if @ra[:structured][key][:elements][skey][:type] == "integer"
|
79
|
-
unless ( svalue.has_key? :type and svalue[:type] == "array" ) and ( svalue.has_key? :items and svalue[:items].has_key? :type and svalue[:items][:type] == @ra[:structured][key][:elements][skey][:type])
|
80
|
-
(@ra[:errors][type][key] ||= {})[skey] = "Type is #{@ra[:structured][key][:elements][skey][:type]}, wrong check"
|
81
|
+
@ra[:structured][:elements][key][:elements][skey][:type] = "number" if @ra[:structured][:elements][key][:elements][skey][:type] == "integer"
|
82
|
+
unless ( svalue.has_key? :type and svalue[:type] == "array" ) and ( svalue.has_key? :items and svalue[:items].has_key? :type and svalue[:items][:type] == @ra[:structured][:elements][key][:elements][skey][:type])
|
83
|
+
(@ra[:errors][type][key] ||= {})[skey] = "Type is #{@ra[:structured][:elements][key][:elements][skey][:type]}, wrong check"
|
81
84
|
end
|
82
85
|
when "array"
|
83
86
|
unless svalue.has_key? :type and svalue[:type] == "array"
|
84
|
-
(@ra[:errors][type][key] ||= {})[skey] = "Type is #{@ra[:structured][key][:elements][skey][:type]}, wrong check"
|
87
|
+
(@ra[:errors][type][key] ||= {})[skey] = "Type is #{@ra[:structured][:elements][key][:elements][skey][:type]}, wrong check"
|
85
88
|
end
|
86
89
|
else
|
87
|
-
puts "unknown type #{@ra[:structured][key][:elements][skey][:type]} in #{key}, #{skey}"
|
90
|
+
puts "unknown type #{@ra[:structured][:elements][key][:elements][skey][:type]} in #{key}, #{skey} when doing #{type}"
|
88
91
|
end
|
89
92
|
end
|
90
93
|
end
|
91
|
-
@ra[:structured][key][:elements][skey][type] = true
|
94
|
+
@ra[:structured][:elements][key][:elements][skey][type] = true
|
92
95
|
end
|
93
96
|
end
|
94
97
|
end
|
95
98
|
|
96
99
|
def create_structure
|
97
|
-
@ra[:structured] = {}
|
100
|
+
@ra[:structured] = {:elements => {}, :custom => {}}
|
98
101
|
@ra[:errors] = {:in_profile_restricted => {}, :in_capabilities => {}}
|
99
102
|
parsed_schema = Circuitdata.read_json(@schema_path)[2]
|
100
103
|
parsed_schema[:properties][:open_trade_transfer_package][:properties][:products][:patternProperties]["^(?!generic$).*".to_sym][:properties][:printed_circuits_fabrication_data][:properties].each do |key, value|
|
@@ -116,57 +119,52 @@ class Circuitdata::Tools
|
|
116
119
|
parsed_schema[:properties][:open_trade_transfer_package][:properties][:capabilities][:properties][:printed_circuits_fabrication_data][:properties].each do |key, value|
|
117
120
|
self.update_ra(:in_capabilities, key, value)
|
118
121
|
end
|
119
|
-
@ra[:structured].sort.to_h
|
120
|
-
@ra[:structured].delete(:version)
|
122
|
+
@ra[:structured][:elements].sort.to_h
|
123
|
+
@ra[:structured][:elements].delete(:version)
|
124
|
+
|
121
125
|
return @ra
|
122
126
|
end
|
123
127
|
|
124
128
|
def create_documentation(ra)
|
125
|
-
ra[:documentation] = "## Elements and tags\n"
|
126
|
-
ra[:structured].each do |element_key, element_value|
|
127
|
-
ra[:documentation] += "
|
129
|
+
ra[:documentation] = "## Elements and tags\n====================\n\n"
|
130
|
+
ra[:structured][:elements].each do |element_key, element_value|
|
131
|
+
ra[:documentation] += "### #{element_key} [link](##{element_key.to_s.downcase.tr(" ", "-")})\n"
|
128
132
|
element_value[:elements].each do |e_key, e_value|
|
129
133
|
ra[:documentation] += "* #{e_key}\n"
|
130
134
|
end
|
131
135
|
ra[:documentation] += "\n"
|
132
136
|
end
|
133
|
-
ra[:structured].each do |element_key, element_value|
|
137
|
+
ra[:structured][:elements].each do |element_key, element_value|
|
134
138
|
ra[:documentation] += "### #{element_key}\n"
|
135
|
-
ra[:documentation] += "Name: #{element_value[:
|
136
|
-
ra[:documentation] += "Aliases: #{element_value[:aliases]}\n" unless element_value[:aliases].nil?
|
139
|
+
ra[:documentation] += "Name: #{element_value[:descriptive_name]}\n\n" unless element_value[:descriptive_name].nil?
|
140
|
+
ra[:documentation] += "Aliases: #{element_value[:aliases]}\n\n" unless element_value[:aliases].nil?
|
137
141
|
ra[:documentation] += "#{element_value[:description]}\n" unless element_value[:description].nil?
|
138
142
|
ra[:documentation] += "\n"
|
143
|
+
if element_value[:type] == "array"
|
144
|
+
ra[:documentation] += "**You must specify this as en array when used in a generic product description or a stackup, but as a single object when used in any of the other parts.**\n\n"
|
145
|
+
end
|
139
146
|
element_value[:elements].each do |e_key, e_value|
|
140
147
|
ra[:documentation] += "#### #{e_key}\n"
|
141
|
-
ra[:documentation] += "Aliases: #{e_value[:aliases]}\n" unless e_value[:aliases].nil?
|
142
|
-
ra[:documentation] += "#{e_value[:description]}\n" unless e_value[:description].nil?
|
143
|
-
ra[:documentation] += "Unit of Measure: #{e_value[:uom][0]}\n" unless e_value[:uom].nil?
|
144
|
-
unless e_value[:type].nil?
|
145
|
-
if e_value[:type] == "array"
|
146
|
-
if e_value[:arrayitems].nil?
|
147
|
-
ra[:documentation] += "Type: #{e_value[:type].capitalize} of unknown type\n"
|
148
|
-
else
|
149
|
-
ra[:documentation] += "Type: #{e_value[:type].capitalize} of #{e_value[:arrayitems].capitalize}\n"
|
150
|
-
end
|
151
|
-
else
|
152
|
-
ra[:documentation] += "Type: #{e_value[:type].capitalize}\n"
|
153
|
-
end
|
154
|
-
end
|
148
|
+
ra[:documentation] += "Aliases: #{e_value[:aliases]}\n\n" unless e_value[:aliases].nil?
|
149
|
+
ra[:documentation] += "#{e_value[:description]}\n\n" unless e_value[:description].nil?
|
150
|
+
ra[:documentation] += "Unit of Measure: #{e_value[:uom][0]}\n\n" unless e_value[:uom].nil?
|
155
151
|
if e_value.has_key? :enum and not e_value[:enum].nil?
|
156
152
|
ra[:documentation] += "Use one of these values:\n"
|
157
153
|
e_value[:enum].each do |ev|
|
158
154
|
ra[:documentation] += "* #{ev}\n"
|
159
155
|
end
|
156
|
+
ra[:documentation] += "\n"
|
157
|
+
end
|
158
|
+
ra[:documentation] += "| | Generic product | Stackup | Profile defaults | Profile enforced | Profile restricted | Capabilities |\n"
|
159
|
+
ra[:documentation] += "|-:|:---------------:|:-------:|:----------------:|:----------------:|:------------------:|:------------:|\n| **Use in:** | "
|
160
|
+
[e_value[:in_product_generic], e_value[:in_product_stackup], e_value[:in_profile_default], e_value[:in_profile_enforced], e_value[:in_profile_restricted], e_value[:in_capabilities]].each do |part|
|
161
|
+
part.nil? ? ra[:documentation] += "Disallowed | " : ra[:documentation] += "Allowed | "
|
162
|
+
end
|
163
|
+
ra[:documentation] += "\n|**Format:** | #{e_value[:type]} | #{e_value[:type]} | #{e_value[:type]} | #{e_value[:type]} | Array of #{e_value[:type]}s | Array of #{e_value[:type]}s |\n"
|
164
|
+
if e_value[:enum].nil? and e_value[:type] == "number"
|
165
|
+
ra[:documentation] += "|**Min value:** | #{e_value[:minimum]} | #{e_value[:minimum]} | #{e_value[:minimum]} | #{e_value[:minimum]} | Each item: #{e_value[:minimum]} | Each item: #{e_value[:minimum]} |\n" unless e_value[:minimum].nil?
|
166
|
+
ra[:documentation] += "|**Max value:** | #{e_value[:maximum]} | #{e_value[:maximum]} | #{e_value[:maximum]} | #{e_value[:maximum]} | Each item : #{e_value[:maximum]} | Each item: #{e_value[:maximum]} |\n" unless e_value[:maximum].nil?
|
160
167
|
end
|
161
|
-
ra[:documentation] += "Use in:\n"
|
162
|
-
e_value[:in_product_generic] ? ra[:documentation] += "* *Generic product section: Allowed*\n" : ra[:documentation] += "* *Generic product section: Disallowed*\n"
|
163
|
-
e_value[:in_product_stackup] ? ra[:documentation] += "* *Stackup product section: Allowed*\n" : ra[:documentation] += "* *Gtackup product section: Disallowed*\n"
|
164
|
-
e_value[:in_profile_default] ? ra[:documentation] += "* *Profile defaults section: Allowed*\n" : ra[:documentation] += "* *Profile defaults section: Disallowed*\n"
|
165
|
-
e_value[:in_profile_enforced] ? ra[:documentation] += "* *Profile enforced section: Allowed*\n" : ra[:documentation] += "* *Profile enforced section: Disallowed*\n"
|
166
|
-
e_value[:in_profile_restricted] ? ra[:documentation] += "* *Profile restricted section: Allowed*\n" : ra[:documentation] += "* *Profile restricted section: Disallowed*\n"
|
167
|
-
ra[:documentation] += "* - Value in restricted section must match regex #{e_value[:in_profile_restricted_regex]}\n" unless e_value[:in_profile_restricted_regex].nil?
|
168
|
-
e_value[:in_capabilities] ? ra[:documentation] += "* *Capabilites section: Allowed*\n" : ra[:documentation] += "* *Capabilities section: Disallowed*\n"
|
169
|
-
ra[:documentation] += "* - Value in capabilites section must match regex #{e_value[:in_capabilities_regex]}\n" unless e_value[:in_capabilities_regex].nil?
|
170
168
|
ra[:documentation] += "\n"
|
171
169
|
end
|
172
170
|
end
|
data/lib/circuitdata/version.rb
CHANGED