Class: VORuby::VOTables::VOTable::SDSSVOTable
- Inherits:
-
VORuby::VOTables::VOTable
- Object
- VORuby::VOTables::VOTable
- VORuby::VOTables::VOTable::SDSSVOTable
- Defined in:
- lib/voruby/votables/sdss.rb
Instance Method Summary collapse
- #create_add_to_cart_link(link_ref, columns) ⇒ Object
-
#create_body(res, tbl, infer_add_to_cart_ref, add_to_cart_link_value, add_to_cart_link_ref, infer_access_ref, access_ref_link_value, access_ref_col, body_class, row_classes) ⇒ Object
Create body for HTML table [res:] The resource from which to extract the table in question.
-
#create_headers(res, tbl, infer_add_to_cart_ref, add_to_cart_header_value, infer_access_ref, access_ref_header_value, access_ref_col, header_class, id = nil) ⇒ Object
Create headers for HTML table [res:] The resource from which to extract the table in question.
-
#find_field_in_conf_file(key) ⇒ Object
Find a field in SDSS configuration file given a key.
-
#image_access_reference_columns ⇒ Object
Find the column number(s) associated with the VOX:imageAccessReference UCD.
- #image_date_obs_columns ⇒ Object
- #image_dec_columns ⇒ Object
- #image_depth_columns ⇒ Object
- #image_exptime_columns ⇒ Object
- #image_filter_columns ⇒ Object
- #image_instrument_columns ⇒ Object
- #image_ra_columns ⇒ Object
- #image_seeing_columns ⇒ Object
- #image_sky_columns ⇒ Object
- #image_survey_columns ⇒ Object
- #image_telescope_columns ⇒ Object
- #image_zeropoint_columns ⇒ Object
-
#initialize(votable) ⇒ SDSSVOTable
constructor
Our object’s contructor [votable:] The VOTable object.
-
#to_html(id = nil, add_to_cart_link_ref = nil, res = 0, tbl = 0, infer_add_to_cart_ref = true, add_to_cart_header_value = 'Add to Cart', add_to_cart_link_value = 'Add', infer_access_ref = true, access_ref_header_value = 'URL', access_ref_link_value = 'Retrieve', show_border = false, table_class = 'votable', header_class = 'header', body_class = 'body', row_classes = ['row1', 'row2']) ⇒ Object
Convert the specified table in the specified resource into an HTML table.
Constructor Details
#initialize(votable) ⇒ SDSSVOTable
Our object’s contructor
- votable:
-
The VOTable object
16 17 18 19 20 |
# File 'lib/voruby/votables/sdss.rb', line 16 def initialize(votable) super(votable.id, votable.version, votable.description, votable.definitions, votable.coosys, votable.params, votable.info, votable.resources) end |
Instance Method Details
#create_add_to_cart_link(link_ref, columns) ⇒ Object
216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 |
# File 'lib/voruby/votables/sdss.rb', line 216 def create_add_to_cart_link(link_ref, columns) access_ref_col = image_access_reference_columns() link_ref << '&resource=' + CGI.escape(columns[access_ref_col].value).to_s if access_ref_col ra_col = image_ra_columns() link_ref << '&rac=' + columns[ra_col].value.to_s if ra_col dec_col = image_dec_columns() link_ref << '&decc=' + columns[dec_col].value.to_s if dec_col filter_col = image_filter_columns() link_ref << '&filter=' + columns[filter_col].value.to_s if filter_col date_obs_col = image_date_obs_columns() link_ref << '&date_obs=' + columns[date_obs_col].value.to_s if date_obs_col teles_col = image_telescope_columns() link_ref << '&telescop=' + columns[teles_col].value.to_s if teles_col survey_col = image_survey_columns() link_ref << '&survey=' + columns[survey_col].value.to_s if survey_col instrum_col = image_instrument_columns() link_ref << '&instrument=' + columns[instrum_col].value.to_s if instrum_col sky_col = image_sky_columns() link_ref << '&sky=' + columns[sky_col].value.to_s if sky_col zerop_col = image_zeropoint_columns() link_ref << '&zeropoint=' + columns[zerop_col].value.to_s if zerop_col seeing_col = image_seeing_columns() link_ref << '&seeing=' + columns[seeing_col].value.to_s if seeing_col depth_col = image_depth_columns() link_ref << '&depth=' + columns[depth_col].value.to_s if depth_col exptime_col = image_exptime_columns() link_ref << '&exptime=' + columns[exptime_col].value.to_s if exptime_col return link_ref end |
#create_body(res, tbl, infer_add_to_cart_ref, add_to_cart_link_value, add_to_cart_link_ref, infer_access_ref, access_ref_link_value, access_ref_col, body_class, row_classes) ⇒ Object
Create body for HTML table
- res:
-
The resource from which to extract the table in question.
- tbl:
-
The table inside the resource from which to extract the rows in question.
- infer_add_to_cart_ref:
- add_to_cart_link_value:
- add_to_cart_link_ref:
- infer_access_ref:
- add_to_cart_link_value:
-
Link the access reference URL associated with a row.
- access_ref_link_value:
-
For the access reference column, link this word.
- access_ref_col:
-
A valid SIA VOTable will only ever have one VOX:Image_AccessReference.
- body_class:
-
The class to assign the body of the HTML table.
- row_classes:
-
The class to assign the HTML table body rows.
268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 |
# File 'lib/voruby/votables/sdss.rb', line 268 def create_body(res, tbl, infer_add_to_cart_ref, add_to_cart_link_value, add_to_cart_link_ref, infer_access_ref, access_ref_link_value, access_ref_col, body_class, row_classes) tbody = "<tbody class=\"#{body_class}\">\n" row_count = 0 rows(res, tbl).each do |tr| tbody << "<tr class=\"#{row_classes[row_count % 2]}\">\n" # Specially mark up the first column to link to the image. columns = tr.tds() if infer_add_to_cart_ref archive = add_to_cart_link_ref.slice(add_to_cart_link_ref.index('&archive='), add_to_cart_link_ref.length) archive = archive.slice('&archive='.length, archive.length) archive = archive.slice(0, archive.index('&')) if archive.index('&') link_id = 'add_' + archive.to_s + '_' + row_count.to_s url = create_add_to_cart_link(add_to_cart_link_ref, columns) js = "new Ajax.Request('#{url}', " + " {method: 'post', " + " onComplete: function(request){Element.hide('#{link_id}');}});" tbody << "<td><a id=\"#{link_id}\" href=\"javascript:void(0);\" " + "onclick=\"#{js};return false;\"" + ">#{add_to_cart_link_value}</a></td>\n" end if infer_access_ref link_ref = columns[access_ref_col].value tbody << "<td><a href=\"#{link_ref}\">#{access_ref_link_value}</a></td>\n" end col_count = 0 columns.each do |td| tbody << "<td>#{td.value}</td>\n" if infer_access_ref and col_count != access_ref_col col_count += 1 end tbody << "</tr>\n" row_count += 1 end tbody << "</tbody>" return tbody end |
#create_headers(res, tbl, infer_add_to_cart_ref, add_to_cart_header_value, infer_access_ref, access_ref_header_value, access_ref_col, header_class, id = nil) ⇒ Object
Create headers for HTML table
- res:
-
The resource from which to extract the table in question.
- tbl:
-
The table inside the resource from which to extract the rows in question.
- infer_add_to_cart_ref:
- add_to_cart_header_value:
- infer_access_ref:
- add_to_cart_header_value:
-
Link the access reference URL associated with a row.
- access_ref_header_value:
-
For the access reference column, place this value in the header.
- access_ref_col:
-
A valid SIA VOTable will only ever have one VOX:Image_AccessReference.
- header_class:
-
The class to assign the header of the HTML table.
170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 |
# File 'lib/voruby/votables/sdss.rb', line 170 def create_headers(res, tbl, infer_add_to_cart_ref, add_to_cart_header_value, infer_access_ref, access_ref_header_value, access_ref_col, header_class, id=nil) headers = Array.new thead = "<thead class=\"#{header_class}\">\n" thead << "<tr>\n" if infer_add_to_cart_ref thead << "<th>#{add_to_cart_header_value}</th>\n" headers.push("<a href=\"javascript:void(0);\" onclick=\"siap.addAllRowsToCart('#{id}');\">*</a>") end if infer_access_ref thead << "<th>#{access_ref_header_value}</th>\n" headers.push(' ') end col_count = 0 fields(res, tbl).each do |field| field_archive = find_field_in_conf_file(field.ucd.value()) field_ucd = field_archive['ucd'] if infer_access_ref and col_count == access_ref_col headers[1] = field_ucd if field_ucd != 'nil' else thead << "<th>#{field_archive['id']}</th>\n" if field_ucd != 'nil' headers.push(field_ucd) else headers.push(' ') end end col_count += 1 end thead << " </tr>\n" thead << "<tr>\n" headers.each do |h| thead << "<th>#{h}</th>\n" end thead << "</tr>\n" thead << "</thead>" return thead end |
#find_field_in_conf_file(key) ⇒ Object
Find a field in SDSS configuration file given a key. Returns a hash with the field’s attributes
- key:
-
The key indexing on field’s attribute. This key is the same UCD, because I guess that SDSS always uses the UCDs on its fields
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/voruby/votables/sdss.rb', line 28 def find_field_in_conf_file(key) sdss_field = {'id'=> nil, 'name'=> nil, 'ucd'=> nil} if key != nil SDSS_ARCHIVE_CONFIG.each do |archive| archive['votable_fields'].each do |field| if field['key'] == key sdss_field['id'] = field['id'] if field['id'] != 'nil' sdss_field['name'] = field['name'] if field['name'] != 'nil' sdss_field['ucd'] = field['ucd'] if field['ucd'] != 'nil' break end end end end return sdss_field end |
#image_access_reference_columns ⇒ Object
Find the column number(s) associated with the VOX:imageAccessReference UCD. Returns a list of column positions.
49 50 51 52 53 54 55 |
# File 'lib/voruby/votables/sdss.rb', line 49 def image_access_reference_columns() sdss_ucd_access = find_field_in_conf_file('VOX:Image_AccessReference')['ucd'] if find_columns(sdss_ucd_access).first != nil find_columns(sdss_ucd_access).first end end |
#image_date_obs_columns ⇒ Object
81 82 83 84 85 86 87 |
# File 'lib/voruby/votables/sdss.rb', line 81 def image_date_obs_columns #ucd_date_obs = find_field_in_conf_file('')['ucd'] #if find_columns(ucd_date_obs).first != nil # find_columns(ucd_date_obs).first #end end |
#image_dec_columns ⇒ Object
65 66 67 68 69 70 71 |
# File 'lib/voruby/votables/sdss.rb', line 65 def image_dec_columns ucd_dec = find_field_in_conf_file('POS_EQ_DEC_MAIN')['ucd'] if find_columns(ucd_dec).first != nil find_columns(ucd_dec).first end end |
#image_depth_columns ⇒ Object
137 138 139 140 141 142 143 |
# File 'lib/voruby/votables/sdss.rb', line 137 def image_depth_columns #ucd_depth = find_field_in_conf_file('')['ucd'] #if find_columns(ucd_depth).first != nil # find_columns(ucd_depth).first #end end |
#image_exptime_columns ⇒ Object
145 146 147 148 149 150 151 |
# File 'lib/voruby/votables/sdss.rb', line 145 def image_exptime_columns #ucd_exptime = find_field_in_conf_file('')['ucd'] #if find_columns(ucd_exptime).first != nil # find_columns(ucd_exptime).first #end end |
#image_filter_columns ⇒ Object
73 74 75 76 77 78 79 |
# File 'lib/voruby/votables/sdss.rb', line 73 def image_filter_columns #ucd_filter = find_field_in_conf_file('')['ucd'] #if find_columns(ucd_filter).first != nil # find_columns(ucd_filter).first #end end |
#image_instrument_columns ⇒ Object
105 106 107 108 109 110 111 |
# File 'lib/voruby/votables/sdss.rb', line 105 def image_instrument_columns #ucd_instrument = find_field_in_conf_file('')['ucd'] #if find_columns(ucd_instrument).first != nil # find_columns(ucd_instrument).first #end end |
#image_ra_columns ⇒ Object
57 58 59 60 61 62 63 |
# File 'lib/voruby/votables/sdss.rb', line 57 def image_ra_columns ucd_ra = find_field_in_conf_file('POS_EQ_RA_MAIN')['ucd'] if find_columns(ucd_ra).first != nil find_columns(ucd_ra).first end end |
#image_seeing_columns ⇒ Object
129 130 131 132 133 134 135 |
# File 'lib/voruby/votables/sdss.rb', line 129 def image_seeing_columns #ucd_seeing = find_field_in_conf_file('')['ucd'] #if find_columns(ucd_seeing).first != nil # find_columns(ucd_seeing).first #end end |
#image_sky_columns ⇒ Object
113 114 115 116 117 118 119 |
# File 'lib/voruby/votables/sdss.rb', line 113 def image_sky_columns #ucd_sky = find_field_in_conf_file('')['ucd'] #if find_columns(ucd_sky).first != nil # find_columns(ucd_sky).first #end end |
#image_survey_columns ⇒ Object
97 98 99 100 101 102 103 |
# File 'lib/voruby/votables/sdss.rb', line 97 def image_survey_columns ucd_survey = find_field_in_conf_file('VOX:Image_Title')['ucd'] if find_columns(ucd_survey).first != nil find_columns(ucd_survey).first end end |
#image_telescope_columns ⇒ Object
89 90 91 92 93 94 95 |
# File 'lib/voruby/votables/sdss.rb', line 89 def image_telescope_columns #ucd_telescope = find_field_in_conf_file('')['ucd'] #if find_columns(ucd_telescope).first != nil # find_columns(ucd_telescope).first #end end |
#image_zeropoint_columns ⇒ Object
121 122 123 124 125 126 127 |
# File 'lib/voruby/votables/sdss.rb', line 121 def image_zeropoint_columns #ucd_zeropoint = find_field_in_conf_file('')['ucd'] #if find_columns(ucd_zeropoint).first != nil # find_columns(ucd_zeropoint).first #end end |
#to_html(id = nil, add_to_cart_link_ref = nil, res = 0, tbl = 0, infer_add_to_cart_ref = true, add_to_cart_header_value = 'Add to Cart', add_to_cart_link_value = 'Add', infer_access_ref = true, access_ref_header_value = 'URL', access_ref_link_value = 'Retrieve', show_border = false, table_class = 'votable', header_class = 'header', body_class = 'body', row_classes = ['row1', 'row2']) ⇒ Object
Convert the specified table in the specified resource into an HTML table.
- id:
-
The ID to assign to the HTML table as a whole.
- add_to_cart_link_ref:
- res:
-
The resource from which to extract the table in question.
- tbl:
-
The table inside the resource from which to extract the rows in question.
- infer_add_to_cart_ref:
- add_to_cart_header_value:
- add_to_cart_link_value:
- infer_access_ref:
- add_to_cart_header_value:
-
Link the access reference URL associated with a row.
- access_ref_header_value:
-
For the access reference column, place this value in the header.
- access_ref_link_value:
-
For the access reference column, link this word.
- show_border:
-
The boolean value to show HTML table border
- table_class:
-
The class to assign the HTML table as a whole.
- header_class:
-
The class to assign the header of the HTML table.
- body_class:
-
The class to assign the body of the HTML table.
- row_classes:
-
The class to assign the HTML table body rows.
344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 |
# File 'lib/voruby/votables/sdss.rb', line 344 def to_html(id=nil, add_to_cart_link_ref=nil, res=0, tbl=0, infer_add_to_cart_ref=true, add_to_cart_header_value='Add to Cart', add_to_cart_link_value='Add', infer_access_ref=true, access_ref_header_value='URL', access_ref_link_value='Retrieve', show_border=false, table_class='votable', header_class='header', body_class='body', row_classes=['row1', 'row2']) begin # A valid SIA VOTable will only ever have one VOX:Image_AccessReference. access_ref_col = image_access_reference_columns() if access_ref_col # Create headers thead = create_headers(res, tbl, infer_add_to_cart_ref, add_to_cart_header_value, infer_access_ref, access_ref_header_value, access_ref_col, header_class, id) # Create body tbody = create_body(res, tbl, infer_add_to_cart_ref, add_to_cart_link_value, add_to_cart_link_ref, infer_access_ref, access_ref_link_value, access_ref_col, body_class, row_classes) return create_table(id, show_border, table_class, thead, tbody) else title = 'No Data' = 'VOTable not contains data.' return (table_class, header_class, body_class, row_classes, title, ) end rescue Exception => e title = 'Error' = @resources[0].info[0].text().to_s() table = (table_class, header_class, body_class, row_classes, title, ) end end |