Class: PlanMyStuff::BaseMetadata

Inherits:
Object
  • Object
show all
Defined in:
lib/plan_my_stuff/base_metadata.rb

Direct Known Subclasses

CommentMetadata, IssueMetadata

Constant Summary collapse

SCHEMA_VERSION =
'1'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBaseMetadata

Returns a new instance of BaseMetadata.



93
94
95
# File 'lib/plan_my_stuff/base_metadata.rb', line 93

def initialize
  @visibility = 'internal'
end

Instance Attribute Details

#app_nameString?

Returns consuming app name from config.

Returns:

  • (String, nil)

    consuming app name from config



17
18
19
# File 'lib/plan_my_stuff/base_metadata.rb', line 17

def app_name
  @app_name
end

#created_atTime?

Returns timestamp of creation.

Returns:

  • (Time, nil)

    timestamp of creation



19
20
21
# File 'lib/plan_my_stuff/base_metadata.rb', line 19

def created_at
  @created_at
end

#created_byInteger?

Returns consuming app’s user ID of the creator.

Returns:

  • (Integer, nil)

    consuming app’s user ID of the creator



23
24
25
# File 'lib/plan_my_stuff/base_metadata.rb', line 23

def created_by
  @created_by
end

#custom_fieldsPlanMyStuff::CustomFields?

Returns app-defined custom field values.

Returns:



27
28
29
# File 'lib/plan_my_stuff/base_metadata.rb', line 27

def custom_fields
  @custom_fields
end

#gem_versionString

Returns gem version that created this metadata.

Returns:

  • (String)

    gem version that created this metadata



13
14
15
# File 'lib/plan_my_stuff/base_metadata.rb', line 13

def gem_version
  @gem_version
end

#rails_envString?

Returns Rails environment.

Returns:

  • (String, nil)

    Rails environment



15
16
17
# File 'lib/plan_my_stuff/base_metadata.rb', line 15

def rails_env
  @rails_env
end

#schema_versionString

Returns schema version for forward compatibility (starts at “1”).

Returns:

  • (String)

    schema version for forward compatibility (starts at “1”)



11
12
13
# File 'lib/plan_my_stuff/base_metadata.rb', line 11

def schema_version
  @schema_version
end

#updated_atTime?

Returns timestamp of last update.

Returns:

  • (Time, nil)

    timestamp of last update



21
22
23
# File 'lib/plan_my_stuff/base_metadata.rb', line 21

def updated_at
  @updated_at
end

#visibilityString

Returns “public” or “internal”.

Returns:

  • (String)

    “public” or “internal”



25
26
27
# File 'lib/plan_my_stuff/base_metadata.rb', line 25

def visibility
  @visibility
end

Instance Method Details

#internal?Boolean

Returns:

  • (Boolean)


113
114
115
# File 'lib/plan_my_stuff/base_metadata.rb', line 113

def internal?
  visibility == 'internal'
end

#public?Boolean

Returns:

  • (Boolean)


118
119
120
# File 'lib/plan_my_stuff/base_metadata.rb', line 118

def public?
  visibility == 'public'
end

#to_hHash

Returns:

  • (Hash)


98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/plan_my_stuff/base_metadata.rb', line 98

def to_h
  {
    schema_version: schema_version,
    gem_version: gem_version,
    rails_env: rails_env,
    app_name: app_name,
    created_at: format_time(created_at),
    updated_at: format_time(updated_at),
    created_by: created_by,
    visibility: visibility,
    custom_fields: custom_fields.to_h,
  }
end

#to_jsonString

Returns:

  • (String)


123
124
125
# File 'lib/plan_my_stuff/base_metadata.rb', line 123

def to_json(...)
  to_h.to_json(...)
end