Class: Striuct
Abstract
- Inherits:
-
Object
show all
- Defined in:
- lib/striuct.rb,
lib/striuct/structs.rb,
lib/striuct/singleton_class.rb,
lib/striuct/classmethods/fix.rb,
lib/striuct/classmethods/copy.rb,
lib/striuct/classmethods/enum.rb,
lib/striuct/classmethods/inner.rb,
lib/striuct/classmethods/macro.rb,
lib/striuct/classmethods/names.rb,
lib/striuct/classmethods/length.rb,
lib/striuct/classmethods/default.rb,
lib/striuct/instancemethods/cast.rb,
lib/striuct/instancemethods/enum.rb,
lib/striuct/instancemethods/lock.rb,
lib/striuct/instancemethods/to_s.rb,
lib/striuct/instancemethods/hashy.rb,
lib/striuct/classmethods/predicate.rb,
lib/striuct/classmethods/to_struct.rb,
lib/striuct/instancemethods/assign.rb,
lib/striuct/instancemethods/getter.rb,
lib/striuct/instancemethods/object.rb,
lib/striuct/instancemethods/safety.rb,
lib/striuct/instancemethods/setter.rb,
lib/striuct/instancemethods/values.rb,
lib/striuct/classmethods/adjustment.rb,
lib/striuct/classmethods/validation.rb,
lib/striuct/instancemethods/compare.rb,
lib/striuct/instancemethods/default.rb,
lib/striuct/classmethods/constructor.rb,
lib/striuct/instancemethods/validation.rb,
lib/striuct/instancemethods/requirements.rb,
lib/striuct/instancemethods/keyvalidatable.rb,
lib/striuct/classmethods/conflict_management.rb,
lib/striuct/instancemethods/delegate_class_methods.rb
Overview
Defined Under Namespace
Modules: ClassMethods, InstanceMethods, Structs
Classes: Error, InvalidOperationError
Constructors for Subclassies
collapse
Class Method Summary
collapse
Class Method Details
.define(&block) ⇒ void
This method returns an undefined value.
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/striuct/singleton_class.rb', line 33
def define(&block)
raise ArgumentError, 'block not supplied' unless block_given?
new(&block).tap {|subclass|
subclass.class_eval {
raise 'not yet finished' if @autonyms.empty?
close
}
}
end
|
.inherited(subclass) ⇒ Object
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/striuct/singleton_class.rb', line 48
def inherited(subclass)
ret = super subclass
subclass.class_eval {
extend ClassMethods
include Enumerable
include Validation
include InstanceMethods
_init
}
ret
end
|
.new(*autonyms, &block) ⇒ Class
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/striuct/singleton_class.rb', line 15
def new(*autonyms, &block)
first = autonyms.first
if first.instance_of?(String) and /\A[A-Z]/ =~ first
warn "no define constant first-arg(#{first}), the Struct behavior is not supported in Striuct"
end
Class.new(self) {
autonyms.each do |autonym|
add_member autonym
end
class_eval(&block) if block_given?
}
end
|
.new_instance ⇒ Object
7
|
# File 'lib/striuct/singleton_class.rb', line 7
alias_method :new_instance, :new
|