Skip to content

Upgrading 0.1.x to 0.2.x

Robert Gauld edited this page Feb 20, 2013 · 1 revision

Background

This group of changes which break how you use the gem are designed to give greater consistency accross the API which you use. This page only contains the main gothas, please refer to the changelog for a full list of changes.

What you need to do

Flexi Records

Getting structure

# Was
Osm::FlexiRecord.get_fields(api, section_id, fr_id)

# Now
flexi_record = Osm::FlexiRecord.new(:id => fr_id, :section_id => section_id)
flexi_record.get_columns(api)

Adding a column

# Was
Osm::FlexiRecord.add_Field(api, section_id, fr_id, name)

# Now
flexi_record = Osm::FlexiRecord.new(:id => fr_id, :section_id => section_id)
flexi_record.add_column(api, name)

Renaming a column

# Was
Osm::FlexiRecord.update_field(api, section_id, fr_id, field_id, new_name)

# Now
flexi_record = Osm::FlexiRecord.new(:id => fr_id, :section_id => section_id)
columns = flexi_record.get_columns(api)
column = columns[0]
column.name = new_name
column.update(api)

Deleting a column

# Was
Osm::FlexiRecord.delete_column(api, section_id, fr_id, field_id)

# Now
flexi_record = Osm::FlexiRecord.new(:id => fr_id, :section_id => section_id)
columns = flexi_record.get_columns(api)
column = columns[0]
column.delete

Getting data

# Was
Osm::FlexiRecord.get_data(api, section_id, fr_id, term=nil)

# Now
flexi_record = Osm::FlexiRecord.new(:id => fr_id, :section_id => section_id)
flexi_record.get_data(api, term=nil)

Updating data

# Was
Osm::FlexiRecord.update_data(api, section_id, fr_id, member_id, column_id, value)

# Now
flexi_record = Osm::FlexiRecord.new(:id => fr_id, :section_id => section_id)
datas = flexi_record.get_data(api)
data = datas[0]
data.fields[column_id] = value
data.update(api)

Evening (renamed to Meeting)

Getting the programme for a section

# Was
Osm::Evening.get_programme(api, section_id, term_id=nil)
# Returned an Array of Osm::Evening

# Now
Osm::Meeting.get_for_section(api, section_id, term_id=nil)
# Returns an Array of Osm::Meeting

Getting the date of the meeting

# Was
evenings = Osm::Evening.get_programme(api, section_id, term_id=nil)
evenings[0].meeting_date # Returns a Date

# Now
evenings = Osm::Evening.get_for_section(api, section_id, term_id=nil)
evenings[0].date # Returns a Date

Getting a Section's subscription

# Was
section = Osm::Section.get(api, section_id)
section.subscription_level # Returned either :bronze, :silver or :gold

# Now
section = Osm::Section.get(api, section_id)
section.subscription_level      # Returns either 1, 2 or 3
section.subscription_level_name # Returns either "Bronze", "Silver" or "Gold"

Event

Getting fields/columns

# Was
event = Osm::Event.get(api, section_id, event_id)
event.fields  # Returned a Hash of field IDs to field names

# Now
event = Osm::Event.get(api, section_id, event_id)
event.columns # Returns an Array of Osm::Event::Column (with attributes id, name, label and event)

Adding a field/columns

# Was
event = Osm::Event.get(api, section_id, event_id)
event.add_field(api, label)

# Now
event = Osm::Event.get(api, section_id, event_id)
event.add_column(api, name, label_for_myscout="")