[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Emit YAML without leading hyphens?

bwv549

4/7/2009 9:12:00 PM

How to emit yaml without the leading hyphens?

[1,2,3].to_yaml
# ==>"--- \n- 1\n- 2\n- 3\n"

I realize that I can do the following to get the result I'm after, but
it seems sort of "after the fact"
[1,2,3].to_yaml[5..-1]
# ==>"- 1\n- 2\n- 3\n"

I know 'to_yaml' takes options, but I can't find acceptable options
anywhere.
[1,2,3].to_yaml({:??? => true})


Thanks!
8 Answers

Ryan Davis

4/7/2009 10:27:00 PM

0


On Apr 7, 2009, at 14:14 , bwv549 wrote:

> How to emit yaml without the leading hyphens?
>
> [1,2,3].to_yaml
> # ==>"--- \n- 1\n- 2\n- 3\n"
>
> I realize that I can do the following to get the result I'm after, but
> it seems sort of "after the fact"
> [1,2,3].to_yaml[5..-1]
> # ==>"- 1\n- 2\n- 3\n"
>
> I know 'to_yaml' takes options, but I can't find acceptable options
> anywhere.
> [1,2,3].to_yaml({:??? => true})


As I understand it, if you remove the hyphens, it is no longer yaml,
so don't do that.


Joel VanderWerf

4/7/2009 10:41:00 PM

0

Ryan Davis wrote:
>
> On Apr 7, 2009, at 14:14 , bwv549 wrote:
>
>> How to emit yaml without the leading hyphens?
>>
>> [1,2,3].to_yaml
>> # ==>"--- \n- 1\n- 2\n- 3\n"
>>
>> I realize that I can do the following to get the result I'm after, but
>> it seems sort of "after the fact"
>> [1,2,3].to_yaml[5..-1]
>> # ==>"- 1\n- 2\n- 3\n"
>>
>> I know 'to_yaml' takes options, but I can't find acceptable options
>> anywhere.
>> [1,2,3].to_yaml({:??? => true})
>
>
> As I understand it, if you remove the hyphens, it is no longer yaml, so
> don't do that.

Maybe so, but the yaml extension loads it anyway.

irb(main):001:0> [1,2,3].to_yaml[5..-1]
=> "- 1\n- 2\n- 3\n"
irb(main):002:0> YAML.load(_)
=> [1, 2, 3]

--
vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407

Henrik Hodne

4/8/2009 10:01:00 AM

0

Just a quick question: Why do you want to do this?

Regards,
Henrik Hodne

On 7 Apr 2009, at 23:14, bwv549 <jtprince@gmail.com> wrote:

> How to emit yaml without the leading hyphens?
>
> [1,2,3].to_yaml
> # ==>"--- \n- 1\n- 2\n- 3\n"
>
> I realize that I can do the following to get the result I'm after, but
> it seems sort of "after the fact"
> [1,2,3].to_yaml[5..-1]
> # ==>"- 1\n- 2\n- 3\n"
>
> I know 'to_yaml' takes options, but I can't find acceptable options
> anywhere.
> [1,2,3].to_yaml({:??? => true})
>
>
> Thanks!
>

Alex Young

4/8/2009 3:54:00 PM

0

Henrik Hodne wrote:
> Just a quick question: Why do you want to do this?
>

Can't speak for bwv549, but when I've wanted to do this in the past it's
so that I can emit part of an array to the end of an existing YAML file
such that it loads as a single YAML document at a later stage.

--
Alex
--
Posted via http://www.ruby-....

bwv549

4/9/2009 8:55:00 PM

0

> Can't speak for bwv549, but when I've wanted to do this in the past it's
> so that I can emit part of an array to the end of an existingYAMLfile
> such that it loads as a singleYAMLdocument at a later stage.

exactly the situation.

Andrew Timberlake

4/10/2009 6:39:00 AM

0

On Thu, Apr 9, 2009 at 11:00 PM, bwv549 <jtprince@gmail.com> wrote:
>> Can't speak for bwv549, but when I've wanted to do this in the past it's
>> so that I can emit part of an array to the end of an existingYAMLfile
>> such that it loads as a singleYAMLdocument at a later stage.
>
> exactly the situation.
>

I would stick with the "after the fact" changes to the YAML output as
tacking on YAML from one array onto the output of a different YAML
file is a very specific use-case.

Andrew Timberlake
http://ramblingso...
http://www.linkedin.com/in/andrew...

"I have never let my schooling interfere with my education" - Mark Twain

Marc Heiler

4/10/2009 10:59:00 AM

0

My problem with those hyphens is that a yaml file without hyphens is
perfectly valid yaml (ruby yaml loads it happily) - i simply dont
understand why those hyphens are created, when the yaml file _without_
hyphens works perfectly nice.
--
Posted via http://www.ruby-....

bahuvrihi

4/10/2009 2:42:00 PM

0


> perfectly valid yaml (ruby yaml loads it happily) - i simply dont
> understand why those hyphens are created, when the yaml file _without_
> hyphens works perfectly nice.

One reason for the hyphens is to allow multiple YAML documents (ie
separate objects) to be stored in a single file:

docs = [1,2,3].to_yaml + [4,5,6].to_yaml

results = []
YAML.load_documents(docs) do |doc|
results << doc
end
puts results.inspect # => "[[1,2,3], [4,5,6]]"

Notice each of the arrays is loaded separately. As for removing the
header, take a look at this post:

http://www.arkanis-development.de/weblog/2007/6/20/options-for-rubys-@to_ya...

The author was facing the same problem. The option is {:UseHeader =>
false} but the to_yaml options aren't currently used and don't work,
even though at some point they probably did. It's a deficiency in the
current release.