Creating an object from a pp string?


#1

When I use pp on an object in rails, it prints out a nice string
representation of the object. I am trying to pass objects from one
server to another and I am wondering if I can just pass this string and
create an object on the other server. Any libraries/functions out there
that can do this? Or any other way to do this (not necessarily using
pp).

Thanks!


#2

When I use pp on an object in rails, it prints out a nice string
representation of the object. I am trying to pass objects from one
server to another and I am wondering if I can just pass this string
and
create an object on the other server. Any libraries/functions out
there
that can do this? Or any other way to do this (not necessarily using
pp).

If you really want to go that route you might look at converting it to
YAML… but I’d also suggest looking at JSON, XML, XML-RPC, REST,
active resource, etc…

-philip


#3

Philip H. wrote:

If you really want to go that route you might look at converting it to
YAML… but I’d also suggest looking at JSON, XML, XML-RPC, REST,
active resource, etc…

-philip

Thanks for the quick reply!

Right now I am just creating a pipe-delimited string of the object
attributes. Then the other server takes that string, splits it on | and
populates a new object. Really I am just wondering if there is a one
liner from a library where I can do this. JSON, etc… would be
overkill, since I can easily do it with a pipe-delimited string. I
might just code a utility to do this with the pp string unless someone
has some code that already does this. let me know… thanks


#4

Right now I am just creating a pipe-delimited string of the object
attributes. Then the other server takes that string, splits it on |
and
populates a new object. Really I am just wondering if there is a one
liner from a library where I can do this. JSON, etc… would be
overkill, since I can easily do it with a pipe-delimited string. I
might just code a utility to do this with the pp string unless someone
has some code that already does this. let me know… thank

http://www.ruby-doc.org/stdlib/libdoc/yaml/rdoc/classes/YAML.html#M010508
http://www.ruby-doc.org/stdlib/libdoc/yaml/rdoc/classes/YAML.html#M010509


#5

Philip H. wrote:

Right now I am just creating a pipe-delimited string of the object
attributes. Then the other server takes that string, splits it on |
and
populates a new object. Really I am just wondering if there is a one
liner from a library where I can do this. JSON, etc… would be
overkill, since I can easily do it with a pipe-delimited string. I
might just code a utility to do this with the pp string unless someone
has some code that already does this. let me know… thank

http://www.ruby-doc.org/stdlib/libdoc/yaml/rdoc/classes/YAML.html#M010508
http://www.ruby-doc.org/stdlib/libdoc/yaml/rdoc/classes/YAML.html#M010509

Ah… you da man. Thanks, I guess I overlooked that :wink: That does
exactly what I need it to.


#6

Here is the full implementation in case anyone is interested.

Server 2 needs to get a widget object from server 1

Server 1 code

WidgetController
def show_widget_yaml
@widget = Widget.find(params[:id])
render :layout => false
end

show_widget_yaml.rhtml
<%=YAML.dump(@product)%>

Server 2 code

def show
client = HTTPClient.new
response =
client.get('http://www.server1/widgets/show_widget_yaml’+params[:id])
yaml_string = response.body.content
@product = Product.new
@product = YAML.load(yaml_string)
end


#7

Yanni M. wrote:

Here is the full implementation in case anyone is interested.

Server 2 needs to get a widget object from server 1

Server 1 code

WidgetController
def show_widget_yaml
@widget = Widget.find(params[:id])
render :layout => false
end

show_widget_yaml.rhtml
<%=YAML.dump(@product)%>

Server 2 code

def show
client = HTTPClient.new
response =
client.get('http://www.server1/widgets/show_widget_yaml’+params[:id])
yaml_string = response.body.content
@product = Product.new
@product = YAML.load(yaml_string)
end

Correction… I forgot to replace some variable names from my own code

Server 1 code

WidgetController
def show_widget_yaml
@widget = Widget.find(params[:id])
render :layout => false
end

show_widget_yaml.rhtml
<%=YAML.dump(@widget)%>

Server 2 code

def show
client = HTTPClient.new
response =
client.get('http://www.server1/widgets/show_widget_yaml’+params[:id])
yaml_string = response.body.content
@widget = Widget.new
@widget = YAML.load(yaml_string)
end