Class: Super::Display::SchemaTypes

Inherits:
Object
  • Object
show all
Defined in:
lib/super/display/schema_types.rb

Defined Under Namespace

Classes: Builder, Built

Constant Summary collapse

TYPES =
Useful::Enum.new(:column, :record, :none)

Instance Method Summary collapse

Constructor Details

#initialize(fields:) ⇒ SchemaTypes

Returns a new instance of SchemaTypes.



64
65
66
67
# File 'lib/super/display/schema_types.rb', line 64

def initialize(fields:)
  @actions_called = false
  @fields = fields
end

Instance Method Details

#actionsObject



102
103
104
105
106
107
# File 'lib/super/display/schema_types.rb', line 102

def actions
  @actions_called = true
  Builder.new.computed.none.transform do
    Partial.new("display_actions")
  end
end

#actions_called?Boolean

Returns:

  • (Boolean)


110
111
112
# File 'lib/super/display/schema_types.rb', line 110

def actions_called?
  @actions_called
end

#computed(type = :column, &transform_block) ⇒ Object



78
79
80
81
82
83
84
85
# File 'lib/super/display/schema_types.rb', line 78

def computed(type = :column, &transform_block)
  TYPES
    .case(type)
    .when(:column) { Builder.new.computed.ignore_nil.column.transform(&transform_block) }
    .when(:record) { Builder.new.computed.ignore_nil.record.transform(&transform_block) }
    .when(:none)   { Builder.new.computed.ignore_nil.none.transform(&transform_block) }
    .result
end

#manual(&transform_block) ⇒ Object



87
88
89
# File 'lib/super/display/schema_types.rb', line 87

def manual(&transform_block)
  real(:column, &transform_block)
end

#real(type = :column, &transform_block) ⇒ Object



69
70
71
72
73
74
75
76
# File 'lib/super/display/schema_types.rb', line 69

def real(type = :column, &transform_block)
  TYPES
    .case(type)
    .when(:column) { Builder.new.real.ignore_nil.column.transform(&transform_block) }
    .when(:record) { Builder.new.real.ignore_nil.record.transform(&transform_block) }
    .when(:none)   { Builder.new.real.ignore_nil.none.transform(&transform_block) }
    .result
end

#rich_textObject



96
97
98
99
100
# File 'lib/super/display/schema_types.rb', line 96

def rich_text
  real do |value|
    Partial.new("display_rich_text", locals: { rich_text: value })
  end
end

#stringObject Also known as: text



91
# File 'lib/super/display/schema_types.rb', line 91

def string; real(&:to_s); end

#timestampObject



94
# File 'lib/super/display/schema_types.rb', line 94

def timestamp; real(&:to_s); end