Class: SPQR::SchemaClass

Inherits:
Object
  • Object
show all
Defined in:
lib/spqr/codegen.rb

Defined Under Namespace

Classes: SchemaArg, SchemaBasic, SchemaMethod

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(nm = nil, pkg = nil) ⇒ SchemaClass

Returns a new instance of SchemaClass.



46
47
48
49
50
51
# File 'lib/spqr/codegen.rb', line 46

def initialize(nm=nil, pkg=nil)
  @name, @package = nm, pkg
  @properties = []
  @statistics = []
  @methods = []
end

Instance Attribute Details

#nameObject

Returns the value of attribute name.



22
23
24
# File 'lib/spqr/codegen.rb', line 22

def name
  @name
end

#packageObject

Returns the value of attribute package.



22
23
24
# File 'lib/spqr/codegen.rb', line 22

def package
  @package
end

Class Method Details

.declare(name, package) {|kl| ... } ⇒ Object

Yields:

  • (kl)


24
25
26
27
28
# File 'lib/spqr/codegen.rb', line 24

def self.declare(name, package)
  kl = SchemaClass.new(name, package)
  yield kl if block_given?
  kl
end

Instance Method Details

#declare_method(name, desc, options) {|result.args| ... } ⇒ Object

Yields:

  • (result.args)


38
39
40
41
42
43
44
# File 'lib/spqr/codegen.rb', line 38

def declare_method(name, desc, options)
  result = SchemaMethod.new name, desc, options.dup

  yield result.args if block_given?
  @methods << result
  @methods[-1]
end

#declare_property(name, kind, options) ⇒ Object



30
31
32
# File 'lib/spqr/codegen.rb', line 30

def declare_property(name, kind, options)
  declare_basic(:property, name, kind, options)
end

#declare_statistic(name, kind, options) ⇒ Object



34
35
36
# File 'lib/spqr/codegen.rb', line 34

def declare_statistic(name, kind, options)
  declare_basic(:statistic, name, kind, options)
end

#member_count(what) ⇒ Object



60
61
62
63
# File 'lib/spqr/codegen.rb', line 60

def member_count(what)
  source = self.instance_variable_get("@#{what}".to_sym) || []
  source.size
end

#with_each(what) ⇒ Object



53
54
55
56
57
58
# File 'lib/spqr/codegen.rb', line 53

def with_each(what)
  source = self.instance_variable_get("@#{what}".to_sym) || []
  source.each do |x|
    yield x if block_given?
  end
end