aboutsummaryrefslogtreecommitdiffstats
path: root/actionservice/lib/action_service/struct.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-02-18 23:43:09 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-02-18 23:43:09 +0000
commit7a67d0f617db7d2962b6c3b80466e21570b244bf (patch)
tree56fa640e31f4f7f22d34a246bc1b197706a07e3a /actionservice/lib/action_service/struct.rb
parentfdecb6843ba8c5b0f718225f343017e11fa7f711 (diff)
downloadrails-7a67d0f617db7d2962b6c3b80466e21570b244bf.tar.gz
rails-7a67d0f617db7d2962b6c3b80466e21570b244bf.tar.bz2
rails-7a67d0f617db7d2962b6c3b80466e21570b244bf.zip
Renamed Action Service to Action Web Service
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@669 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionservice/lib/action_service/struct.rb')
-rw-r--r--actionservice/lib/action_service/struct.rb55
1 files changed, 0 insertions, 55 deletions
diff --git a/actionservice/lib/action_service/struct.rb b/actionservice/lib/action_service/struct.rb
deleted file mode 100644
index 142127b052..0000000000
--- a/actionservice/lib/action_service/struct.rb
+++ /dev/null
@@ -1,55 +0,0 @@
-module ActionService
- # To send structured types across the wire, derive from ActionService::Struct,
- # and use +member+ to declare structure members.
- #
- # ActionService::Struct should be used in method signatures when you want to accept or return
- # structured types that have no Active Record model class representations, or you don't
- # want to expose your entire Active Record model to remote callers.
- #
- # === Example
- #
- # class Person < ActionService::Struct
- # member :id, :int
- # member :firstnames, [:string]
- # member :lastname, :string
- # member :email, :string
- # end
- # person = Person.new(:id => 5, :firstname => 'john', :lastname => 'doe')
- #
- # Active Record model classes are already implicitly supported for method
- # return signatures. A structure containing its columns as members will be
- # automatically generated if its present in a signature.
- class Struct
-
- # If a Hash is given as argument to an ActionService::Struct constructor,
- # it can contain initial values for the structure member.
- def initialize(values={})
- if values.is_a?(Hash)
- values.map{|k,v| send('%s=' % k.to_s, v)}
- end
- end
-
- # The member with the given name
- def [](name)
- send(name.to_s)
- end
-
- class << self
- include ActionService::Signature
-
- # Creates a structure member with the specified +name+ and +type+. Generates
- # accessor methods for reading and writing the member value.
- def member(name, type)
- write_inheritable_hash("struct_members", name => signature_parameter_class(type))
- class_eval <<-END
- def #{name}; @#{name}; end
- def #{name}=(value); @#{name} = value; end
- END
- end
-
- def members # :nodoc:
- read_inheritable_attribute("struct_members") || {}
- end
- end
- end
-end