Module: Crystalline::MetadataFields
- Extended by:
- T::Sig
- Included in:
- DingSDK::Models::Errors::APIError, DingSDK::Models::Errors::ErrorResponse, DingSDK::Models::Operations::CheckResponse, DingSDK::Models::Operations::CreateAuthenticationResponse, DingSDK::Models::Operations::FeedbackResponse, DingSDK::Models::Operations::GetAuthenticationStatusRequest, DingSDK::Models::Operations::GetAuthenticationStatusResponse, DingSDK::Models::Operations::LookupRequest, DingSDK::Models::Operations::LookupResponse, DingSDK::Models::Operations::RetryResponse, DingSDK::Models::Shared::Attempt, DingSDK::Models::Shared::AuthenticationStatusResponse, DingSDK::Models::Shared::BalanceUpdate, DingSDK::Models::Shared::Check, DingSDK::Models::Shared::CreateAuthenticationRequest, DingSDK::Models::Shared::CreateAuthenticationResponse, DingSDK::Models::Shared::CreateCheckRequest, DingSDK::Models::Shared::CreateCheckResponse, DingSDK::Models::Shared::DeliveryStatus, DingSDK::Models::Shared::Events, DingSDK::Models::Shared::FeedbackRequest, DingSDK::Models::Shared::FeedbackResponse, DingSDK::Models::Shared::LookupResponse, DingSDK::Models::Shared::RetryAuthenticationRequest, DingSDK::Models::Shared::RetryAuthenticationResponse, DingSDK::Models::Shared::Security, DingSDK::Models::Shared::Signals, DingSDK::SDKConfiguration
- Defined in:
- lib/crystalline/metadata_fields.rb
Defined Under Namespace
Modules: ClassMethods
Classes: Field
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.included(base) ⇒ Object
145
146
147
|
# File 'lib/crystalline/metadata_fields.rb', line 145
def self.included(base)
base.extend(ClassMethods)
end
|
Instance Method Details
#field(field_name) ⇒ Object
153
154
155
156
157
|
# File 'lib/crystalline/metadata_fields.rb', line 153
def field(field_name)
fields.each do |f|
return f if f.name == field_name
end
end
|
#fields ⇒ Object
149
150
151
|
# File 'lib/crystalline/metadata_fields.rb', line 149
def fields
self.class.fields
end
|
#initialize ⇒ Object
139
140
141
142
143
|
# File 'lib/crystalline/metadata_fields.rb', line 139
def initialize
instance = allocate
fields.each { |mod| instance.singleton_class.include(mod) }
instance.send(:initialize)
end
|
#marshal_single(field) ⇒ Object
#to_dict ⇒ Object
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
|
# File 'lib/crystalline/metadata_fields.rb', line 167
def to_dict
result = {}
fields.sort_by(&:name).each do |field|
f = send(field.name)
next if f.nil?
format_json_meta = field.metadata[:format_json]
if !format_json_meta.nil? && format_json_meta.include?(:letter_case)
key = format_json_meta[:letter_case].call(field.name)
else
key = field.name
end
if f.is_a? Array
result[key] = f.map { |o| marshal_single(o) }
elsif f.is_a? Hash
result[key] = f.map { |k, v| [k, marshal_single(v)] }
else
result[key] = marshal_single(f)
end
end
result
end
|
#to_json(*args) ⇒ Object
190
191
192
|
# File 'lib/crystalline/metadata_fields.rb', line 190
def to_json(*args)
JSON.generate(to_dict, *args)
end
|