Class: Mural::Widget

Inherits:
Object
  • Object
show all
Includes:
Codec
Defined in:
lib/mural/widget.rb,
lib/mural/widget/area.rb,
lib/mural/widget/file.rb,
lib/mural/widget/icon.rb,
lib/mural/widget/text.rb,
lib/mural/widget/arrow.rb,
lib/mural/widget/image.rb,
lib/mural/widget/shape.rb,
lib/mural/widget/table.rb,
lib/mural/widget/comment.rb,
lib/mural/widget/table_cell.rb,
lib/mural/widget/sticky_note.rb,
lib/mural/widget/create_area_params.rb,
lib/mural/widget/create_file_params.rb,
lib/mural/widget/update_area_params.rb,
lib/mural/widget/update_file_params.rb,
lib/mural/widget/create_arrow_params.rb,
lib/mural/widget/create_image_params.rb,
lib/mural/widget/create_shape_params.rb,
lib/mural/widget/create_table_params.rb,
lib/mural/widget/create_title_params.rb,
lib/mural/widget/update_arrow_params.rb,
lib/mural/widget/update_image_params.rb,
lib/mural/widget/update_shape_params.rb,
lib/mural/widget/update_title_params.rb,
lib/mural/widget/create_comment_params.rb,
lib/mural/widget/update_comment_params.rb,
lib/mural/widget/create_text_box_params.rb,
lib/mural/widget/update_text_box_params.rb,
lib/mural/widget/create_table_cell_params.rb,
lib/mural/widget/create_sticky_note_params.rb,
lib/mural/widget/update_sticky_note_params.rb

Defined Under Namespace

Classes: Area, Arrow, Comment, ContentEditedBy, CreateAreaParams, CreateArrowParams, CreateCommentParams, CreateFileParams, CreateImageParams, CreateShapeParams, CreateStickyNoteParams, CreateTableCellParams, CreateTableParams, CreateTextBoxParams, CreateTitleParams, CreatedBy, File, Icon, Image, Shape, StickyNote, Table, TableCell, Text, UpdateAreaParams, UpdateArrowParams, UpdateCommentParams, UpdateFileParams, UpdateImageParams, UpdateShapeParams, UpdateStickyNoteParams, UpdateTextBoxParams, UpdateTitleParams, UpdatedBy

Constant Summary collapse

SPECIALIZED =
{
  'area' => 'Mural::Widget::Area',
  'arrow' => 'Mural::Widget::Arrow',
  'comment' => 'Mural::Widget::Comment',
  'file' => 'Mural::Widget::File',
  'icon' => 'Mural::Widget::Icon',
  'image' => 'Mural::Widget::Image',
  'shape' => 'Mural::Widget::Shape',
  'sticky note' => 'Mural::Widget::StickyNote',
  'table cell' => 'Mural::Widget::TableCell',
  'table' => 'Mural::Widget::Table',
  'text' => 'Mural::Widget::Text'
}.freeze

Class Method Summary collapse

Methods included from Codec

#encode, included

Class Method Details

.decode(json) ⇒ Object



102
103
104
105
106
107
108
109
110
111
# File 'lib/mural/widget.rb', line 102

def self.decode(json)
  specialized = SPECIALIZED[json['type']]
  widget = specialized ? Object.const_get(specialized).decode(json) : super

  widget.tap do |f|
    f.content_edited_by = ContentEditedBy.decode(f.content_edited_by)
    f.created_by = CreatedBy.decode(f.created_by)
    f.updated_by = UpdatedBy.decode(f.updated_by)
  end
end