Module: Mural::Codec

Included in:
Asset, Asset::Headers, Chat, Mural::Chat::User, CreateMuralParams, Mural::CreateMuralParams::VisitorsSettings, CreateRoomParams, CreateTagParams, Mural::CreateTagParams::Widget, CurrentUser, DuplicateMuralParams, MuralBoard, MuralBoard::AccessInformation, MuralBoard::CreatedBy, MuralBoard::SharingSettings, MuralBoard::UpdatedBy, MuralBoard::VisitorsSettings, MuralExport, MuralInvitation, MuralInvitationParams, MuralUser, MuralUser::Permissions, PrivateMode, RemovedMuralUser, RemovedRoomUser, Room, Room::CreatedBy, Room::SharingSettings, Room::UpdatedBy, RoomFolder, RoomInvitation, RoomInvitationParams, RoomUser, SearchMuralResult, SearchRoomResult, SearchTemplateResult, StartVotingSessionParams, StartVotingSessionParams::Area, Tag, Template, Timer, UpdateMuralParams, UpdateRoomParams, UpdateRoomUserParams, UpdateTagParams, UpdateTimerParams, VotingSession, VotingSessionResult, Widget, Widget::Area, Widget::Area::Style, Widget::Arrow, Widget::Arrow::Label, Widget::Arrow::Label::Format, Widget::Arrow::Label::Label, Widget::Arrow::Point, Widget::Arrow::Style, Widget::Comment, Widget::Comment::Reply, Widget::Comment::Reply::User, Widget::Comment::ResolvedBy, Widget::ContentEditedBy, Widget::CreateAreaParams, Widget::CreateArrowParams, Widget::CreateCommentParams, Widget::CreateFileParams, Widget::CreateImageParams, Widget::CreateShapeParams, Widget::CreateStickyNoteParams, Widget::CreateTableCellParams, Widget::CreateTableParams, Widget::CreateTextBoxParams, Widget::CreateTitleParams, Widget::CreatedBy, Widget::File, Widget::Icon, Widget::Icon::Style, Widget::Image, Widget::Image::Mask, Widget::Shape, Widget::Shape::Style, Widget::StickyNote, Widget::StickyNote::Style, Widget::Table, Widget::Table::Column, Widget::Table::Row, Widget::Table::Style, Widget::TableCell, Widget::TableCell::Style, Widget::TableCell::TextContent, Widget::Text, Widget::Text::Style, Widget::UpdateAreaParams, Widget::UpdateArrowParams, Widget::UpdateCommentParams, Widget::UpdateFileParams, Widget::UpdateImageParams, Widget::UpdateShapeParams, Widget::UpdateStickyNoteParams, Widget::UpdateTextBoxParams, Widget::UpdateTitleParams, Widget::UpdatedBy, Workspace, Workspace::CreatedBy, Workspace::SharingSettings, WorkspaceInvitation
Defined in:
lib/mural/codec.rb

Overview

Utility module to convert from lowerCamelCase JSON to Ruby classes with proper accessors (using snake_case) and vice versa when building a payload to Mural.

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



40
41
42
# File 'lib/mural/codec.rb', line 40

def self.included(base)
  base.extend(ClassMethods)
end

Instance Method Details

#encodeObject



8
9
10
11
12
13
14
15
16
# File 'lib/mural/codec.rb', line 8

def encode
  {}.tap do |json|
    self.class.attrs.each do |attr, remote_attr|
      value = public_send(attr)

      json[remote_attr] = value unless value.nil?
    end
  end
end