class SirTrevorRails::BlockArray

Public Class Methods

from_json(blocks, parent = nil) click to toggle source
# File lib/sir_trevor_rails/block_array.rb, line 4
def self.from_json(blocks, parent = nil)
  if blocks.is_a?(String)
    blocks = MultiJson.load(blocks, symbolize_keys: true)
  end

  if blocks.is_a?(Hash)
    blocks = blocks[:data] || blocks['data'] or
      raise IndexError, "No block data found"
  end

  new blocks.map { |obj|
    SirTrevorRails::Block.from_hash(obj.deep_symbolize_keys, parent)
  }
end

Public Instance Methods

first_block_of_type(type) click to toggle source
# File lib/sir_trevor_rails/block_array.rb, line 28
def first_block_of_type(type)
  klass = Block.block_class(type)
  detect { |b| b.is_a? klass }
end
get_blocks_of_types(types) click to toggle source
# File lib/sir_trevor_rails/block_array.rb, line 33
def get_blocks_of_types(types)
  types = [types] unless types.is_a? Array
  select { |b| types.include?(b.type) }
end
has_block_of_type?(type) click to toggle source
# File lib/sir_trevor_rails/block_array.rb, line 23
def has_block_of_type?(type)
  klass = Block.block_class(type)
  any? { |b| b.is_a? klass }
end
to_s() click to toggle source
# File lib/sir_trevor_rails/block_array.rb, line 19
def to_s
  {data: as_json}.to_json
end