Module: Etna::JsonSerializableStruct
- Included in:
- Clients::Janus::AddProjectRequest, Clients::Janus::AddUserRequest, Clients::Janus::GetProjectRequest, Clients::Janus::UpdatePermissionRequest, Clients::Magma::AddAttributeAction, Clients::Magma::AddLinkAction, Clients::Magma::AddLinkDefinition, Clients::Magma::AddModelAction, Clients::Magma::AddProjectAction, Clients::Magma::AttributeValidation, Clients::Magma::QueryRequest, Clients::Magma::RenameAttributeAction, Clients::Magma::RetrievalRequest, Clients::Magma::SetDateShiftRootAction, Clients::Magma::UpdateAttributeAction, Clients::Magma::UpdateModelRequest, Clients::Magma::UpdateRequest, Clients::Metis::AuthorizeUploadRequest, Clients::Metis::CopyFilesRequest, Clients::Metis::CopyRevision, Clients::Metis::CreateFolderRequest, Clients::Metis::DeleteFileRequest, Clients::Metis::DeleteFolderRequest, Clients::Metis::FindParam, Clients::Metis::FindRequest, Clients::Metis::ListFolderByIdRequest, Clients::Metis::ListFolderRequest, Clients::Metis::ListFoldersRequest, Clients::Metis::RenameFileRequest, Clients::Metis::RenameFolderRequest, Clients::Metis::TouchFileRequest, Clients::Metis::TouchFolderRequest, Clients::Metis::UploadStartRequest, Clients::Polyphemus::RedcapJobRequest
- Defined in:
- lib/etna/json_serializable_struct.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(cls) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/etna/json_serializable_struct.rb', line 3 def self.included(cls) cls.instance_eval do def self.as_json(v) if v.respond_to? :as_json return v.as_json end if v.is_a? Hash return v.map { |k, v| [k, as_json(v)] }.to_h end if v.class.include? Enumerable return v.map { |v| as_json(v) } end v end end end |
Instance Method Details
#as_json(keep_nils: false) ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/etna/json_serializable_struct.rb', line 23 def as_json(keep_nils: false) inner_json = members.map do |k| v = self.class.as_json(send(k)) [k, v] end.to_h return inner_json if keep_nils inner_json.delete_if { |k, v| v.nil? } end |
#to_json ⇒ Object
33 34 35 |
# File 'lib/etna/json_serializable_struct.rb', line 33 def to_json as_json.to_json end |