class ApiDiff::Type
Attributes
fully_qualified_name[R]
functions[RW]
name[R]
parents[RW]
properties[RW]
Public Class Methods
new(name, fully_qualified_name)
click to toggle source
# File lib/api_diff/type.rb, line 10 def initialize(name, fully_qualified_name) @name = name @fully_qualified_name = fully_qualified_name @parents = [] @functions = [] @properties = [] end
type_name()
click to toggle source
# File lib/api_diff/type.rb, line 3 def self.type_name name.split('::').last.downcase end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/api_diff/type.rb, line 40 def <=>(other) name <=> other.name end
declaration(fully_qualified_name: false)
click to toggle source
# File lib/api_diff/type.rb, line 22 def declaration(fully_qualified_name: false) name = fully_qualified_name ? self.fully_qualified_name : self.name result = "#{self.class.type_name} #{name}" result += " : #{parents.join(", ")}" if has_parents? result end
has_parents?()
click to toggle source
# File lib/api_diff/type.rb, line 29 def has_parents? not @parents.empty? end
package()
click to toggle source
# File lib/api_diff/type.rb, line 18 def package fully_qualified_name.split(".")[0..-2].join(".") end
sections()
click to toggle source
# File lib/api_diff/type.rb, line 33 def sections [ properties.sort, functions.sort ] end
to_s(fully_qualified_name: true)
click to toggle source
# File lib/api_diff/type.rb, line 44 def to_s(fully_qualified_name: true) body = sections.map { |s| s.empty? ? nil : s }.compact # remove empty sections body.map! { |s| s.map { |entry| " #{entry}" } } # convert every entry in every section into a string and indent it body.map! { |s| s.join("\n") } # join all entries into a long string [ "#{declaration(fully_qualified_name: fully_qualified_name)} {", body.join("\n\n"), "}" ].join("\n") end