Class: Parse::Schema::SchemaInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/parse/schema.rb

Overview

Represents schema information for a Parse class.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ SchemaInfo

Returns a new instance of SchemaInfo.



153
154
155
156
157
158
159
# File 'lib/parse/schema.rb', line 153

def initialize(data)
  @class_name = data["className"]
  @fields = parse_fields(data["fields"] || {})
  @indexes = data["indexes"] || {}
  @class_level_permissions = data["classLevelPermissions"] || {}
  @raw = data
end

Instance Attribute Details

#class_level_permissionsObject (readonly)

Returns the value of attribute class_level_permissions.



151
152
153
# File 'lib/parse/schema.rb', line 151

def class_level_permissions
  @class_level_permissions
end

#class_nameObject (readonly)

Returns the value of attribute class_name.



151
152
153
# File 'lib/parse/schema.rb', line 151

def class_name
  @class_name
end

#fieldsObject (readonly)

Returns the value of attribute fields.



151
152
153
# File 'lib/parse/schema.rb', line 151

def fields
  @fields
end

#indexesObject (readonly)

Returns the value of attribute indexes.



151
152
153
# File 'lib/parse/schema.rb', line 151

def indexes
  @indexes
end

Instance Method Details

#builtin?Boolean

Check if this is a built-in Parse class.

Returns:

  • (Boolean)


190
191
192
# File 'lib/parse/schema.rb', line 190

def builtin?
  @class_name.start_with?("_")
end

#field_namesArray<String>

Get field names.

Returns:



163
164
165
# File 'lib/parse/schema.rb', line 163

def field_names
  @fields.keys
end

#field_type(field_name) ⇒ Symbol?

Get field type for a specific field.

Parameters:

Returns:

  • (Symbol, nil)

    the Ruby type symbol or nil



170
171
172
# File 'lib/parse/schema.rb', line 170

def field_type(field_name)
  @fields[field_name.to_s]&.dig(:type)
end

#has_field?(field_name) ⇒ Boolean

Check if a field exists.

Parameters:

Returns:

  • (Boolean)


184
185
186
# File 'lib/parse/schema.rb', line 184

def has_field?(field_name)
  @fields.key?(field_name.to_s)
end

#pointer_target(field_name) ⇒ String?

Get pointer target class for a field.

Parameters:

Returns:

  • (String, nil)

    the target class name or nil



177
178
179
# File 'lib/parse/schema.rb', line 177

def pointer_target(field_name)
  @fields[field_name.to_s]&.dig(:target_class)
end

#to_hHash

Get raw schema data.

Returns:



196
197
198
# File 'lib/parse/schema.rb', line 196

def to_h
  @raw
end