lib/pione/model/list.rb in pione-0.1.3 vs lib/pione/model/list.rb in pione-0.1.4
- old
+ new
@@ -1,11 +1,11 @@
module Pione::Model
# PioneList is a list that include same type elements.
class PioneList < BasicModel
extend Forwardable
- set_pione_model_type TypeList[TypeAny]
+ set_pione_model_type TypeList[TypeSequence]
attr_reader :values
def_delegators :@values, :[], :size, :empty?
# Creates a list with elements.
@@ -25,11 +25,11 @@
# Returns pione model type corresponding to the elements.
# @return [TypeList]
# the type
def pione_model_type
- type = @values.empty? ? TypeAny : @values.first.pione_model_type
+ type = @values.empty? ? TypeSequence : @values.first.pione_model_type
TypeList.new(type)
end
# Returns new list which appended the element.
# @param [BasicModel] elt
@@ -67,38 +67,42 @@
#
# pione method
#
- define_pione_method("==", [TypeList[TypeAny]], TypeBoolean) do |rec, other|
+ define_pione_method("==", [TypeList[TypeSequence]], TypeBoolean) do |rec, other|
PioneBoolean.new(rec.values == other.values)
end
- define_pione_method("!=", [TypeList[TypeAny]], TypeBoolean) do |rec, other|
+ define_pione_method("!=", [TypeList[TypeSequence]], TypeBoolean) do |rec, other|
PioneBoolean.not(rec.call_pione_method("==", other))
end
- define_pione_method("+", [TypeList[TypeAny]], TypeList[TypeAny]) do |rec, other|
+ define_pione_method("+", [TypeList[TypeSequence]], TypeList[TypeSequence]) do |rec, other|
PioneList.new(rec.values + other.values)
end
- define_pione_method("-", [TypeList[TypeAny]], TypeList[TypeAny]) do |rec, other|
+ define_pione_method("-", [TypeList[TypeSequence]], TypeList[TypeSequence]) do |rec, other|
PioneList.new(rec.values - other.values)
end
- define_pione_method("*", [TypeList[TypeAny]], TypeList[TypeAny]) do |rec, other|
+ define_pione_method("*", [TypeList[TypeSequence]], TypeList[TypeSequence]) do |rec, other|
PioneList.new(rec.values * other.values)
end
define_pione_method("empty?", [], TypeBoolean) do |rec|
PioneBoolean.new(rec.empty?)
end
- define_pione_method("[]", [TypeInteger], TypeAny) do |rec, i|
+ define_pione_method("[]", [TypeInteger], TypeSequence) do |rec, i|
rec.values[i.value]
end
define_pione_method("as_string", [], TypeString) do |rec|
PioneString.new(rec.values.to_s)
+ end
+
+ define_pione_method("str", [], TypeString) do |rec|
+ rec.call_pione_method("as_string")
end
end
end