Class: Alula::Dcp::ObjectField
- Inherits:
-
Object
- Object
- Alula::Dcp::ObjectField
- Extended by:
- ResourceAttributes
- Defined in:
- lib/alula/dcp/resource_attributes.rb
Direct Known Subclasses
Instance Method Summary collapse
- #as_json ⇒ Object
-
#initialize(parent_field, properties = nil) ⇒ ObjectField
constructor
Assume properties is camel case.
Methods included from ResourceAttributes
date_fields, extended, field, field_names, filterable_fields, get_fields, get_http_methods, get_resource_path, get_type, http_methods, param_key, resource_path, sortable_fields, type
Constructor Details
#initialize(parent_field, properties = nil) ⇒ ObjectField
Assume properties is camel case
148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
# File 'lib/alula/dcp/resource_attributes.rb', line 148 def initialize(parent_field, properties = nil) @parent_field = parent_field return unless properties valid_fields = self.class.get_fields properties.dup.each do |key, value| ruby_key = Alula::Util.underscore(key.to_s) next unless valid_fields.key?(ruby_key.to_sym) instance_variable_set("@#{ruby_key}", value) define_singleton_method(ruby_key) { instance_variable_get("@#{ruby_key}") } define_singleton_method("#{ruby_key}=") { |val| instance_variable_set("@#{ruby_key}", val) } end end |
Instance Method Details
#as_json ⇒ Object
163 164 165 166 167 168 169 170 171 |
# File 'lib/alula/dcp/resource_attributes.rb', line 163 def as_json field_names.each_with_object({}) do |ruby_key, obj| key = Util.camelize(ruby_key) val = respond_to?(ruby_key) ? send(ruby_key) : nil next if val.nil? obj[key] = parse_value(val, ruby_key) end end |