Sha256: 582c17b4be9674264f0eaf19d70d4f054a19fb8288cbc34252c50cbbbfee073d
Contents?: true
Size: 752 Bytes
Versions: 1
Compression:
Stored size: 752 Bytes
Contents
require "jsduck/tag/class_list_tag" module JsDuck::Tag class Mixins < ClassListTag def initialize @pattern = ["mixin", "mixins"] @tagname = :mixins @ext_define_pattern = "mixins" @ext_define_default = {:mixins => []} end # Override definition in parent class. In addition to Array # literal, mixins can be defined with an object literal. def parse_ext_define(cls, ast) cls[:mixins] = to_mixins_array(ast) end # converts AstNode, whether it's a string, array or hash into # array of strings (when possible). def to_mixins_array(ast) v = ast.to_value mixins = v.is_a?(Hash) ? v.values : Array(v) mixins.all? {|mx| mx.is_a? String } ? mixins : [] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jsduck-5.0.0.beta01 | lib/jsduck/tag/mixins.rb |