Sha256: 7367cf316aadd2012f91d3f8e3a1764ea6dc361f599c4f4aadfe228a97894457
Contents?: true
Size: 892 Bytes
Versions: 1
Compression:
Stored size: 892 Bytes
Contents
module SoberSwag class Blueprint class View def self.define(name, base_fields, &block) self.new(name, base_fields).tap do |view| view.instance_eval(&block) end end class NestingError < Error; end; include FieldSyntax def initialize(name, base_fields = []) @name = name @fields = base_fields.dup end attr_reader :name, :fields def except!(name) @fields.select! { |f| f.name != name } end def view(*) raise NestingError, 'no views in views' end def add_field!(field) @fields << field end ## # Get the serializer defined by this view. # WARNING: Don't add more fields after you call this. def serializer @serializer ||= SoberSwag::Serializer::FieldList.new(fields) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sober_swag-0.1.0 | lib/sober_swag/blueprint/view.rb |