[#407841] Making PKCS12 Stores in Ruby (& where's PKCS8)? — "Carlo M." <lists@...>
I'm fairly new to Ruby, but very comfortable with OpenSSL. I thought it
[#407865] Is it a bug(about constant reference on dynamic class). — jin chizhong <lists@...>
When I use a dynamic class, It can not reference constants.
[#407882] Ruby extremely slow compared to PHP — Mick Jagger <lists@...>
Hello there, how are you? Hope you are fine. I am a PHP programmer
You sure you want this:
[#407897] 'require' is not loading files — "Elliot M." <lists@...>
I am new to ruby and have been teaching it to myself for the past so I
[#407907] Cannot access constants from included modules in a submodule — "Bram S." <lists@...>
Hi there,
[#407908] TCPServer/Socket and Marshal problem — Panagiotis Atmatzidis <atma@...>
Hello,
On 06/03/2013 11:47 AM, Panagiotis Atmatzidis wrote:
On Mon, Jun 3, 2013 at 8:47 PM, Panagiotis Atmatzidis
Hello Robert,
On Wed, Jun 5, 2013 at 10:54 AM, Panagiotis Atmatzidis
[#407914] Problems after upgraded from 1.9.1 to 1.9.3 — "J. V." <lists@...>
We have a production server with a running web application and just
[#407915] Where does Ruby look to load files? — "J. V." <lists@...>
Can someone explain what changed from 1.9.1 to 1.9.2 with regards to
[#407931] Longer user input? — Zeil Era <lists@...>
I think the maximum number of characters in user input ('gets') is 254.
[#407946] Is rubyquiz.com dead? — Alphonse 23 <lists@...>
Thread title says everything.
This sucks. I was planning on uses those for practice.. Does anyone know
On Wed, Jun 5, 2013 at 12:24 PM, Alphonse 23 <lists@ruby-forum.com> wrote:
archive.org has a fairly complete archive of the website from eairler this
In no way shape or form am I saying that I have the time to manage or
[#407949] Need help to start with Ruby — "Shubhada S." <lists@...>
Hi,
[#407955] Create a nested structure from a CSV — Oli Sanders <lists@...>
Hello,
You have attributes like "is supervisor". Maybe a Hash isn't the best
[#407968] Compiling or building an application with green shoes — Ruby Student <ruby.student@...>
I am learning ruby and shoes and started to building a simple
[#408000] My car is "falling" off the screen green shoes — Ruby Student <ruby.student@...>
Team,
[#408010] RubyTk - tkimg fails to import? — Ryan Braun <lists@...>
Hi,
[#408012] Need help understanding recursion. — pedro oliva <lists@...>
Ive been reading Chris Pine's book 'Learn to Program' and its been going
Subject: Need help understanding recursion.
[#408021] Playing with method_missing -- argument list — Tamara Temple <tamouse.lists@...>
[#408043] What do I need to write a web-based application invoked from a browser — Ruby Student <ruby.student@...>
Hello Team,
[#408046] Use of capybara outside of any application — tamouse mailing lists <tamouse.lists@...>
I'm trying to set up a cucumber/capybara test suite that I can use
[#408055] How do I write a method, which returns whether the letters in a word occur in alphabetical order — "Tario C." <lists@...>
How do I write a method, which returns whether the letters in a word
Tario C. wrote in post #1111683:
[#408058] Write a method intersection that takes two ranges — "Tario C." <lists@...>
How do I write a method intersection(range1, range2) that takes two
[#408090] "Unable to require openssl" is driving me crazy gem 2.0.3 might be broken — Ruby Student <ruby.student@...>
Hello Team,
On 06/09/2013 03:17 PM, Ruby Student wrote:
I already have the openssl development package. I recompiled and got the
[#408099] extract from output (regular expressions) — Thomas Cale <lists@...>
Hi guys,
[#408101] buffer overflow detected while doing gem install savon in Ruby 1.8.6 on Fedora11 — Khudadad Kazi <lists@...>
Hi,
Hello
[#408102] Class or method to convert hash keys to enable either string or symbol access? — Tamara Temple <tamouse.lists@...>
[#408117] Issues compiling Ruby 1.9.33-p429 under AIX version 7 — Ruby Student <ruby.student@...>
While trying to build Ruby 1.9.33-p429 under AIX version 7, the *./configure
[#408121] How to install a gem without using gem command online — Ruby Student <ruby.student@...>
Team,
[#408129] Getting Started With Development — Chamila Wijayarathna <cdwijayarathna@...>
I'm new to Ruby Development. I downloaded source from Github, but couldn't
Ruby is often installed on linux, or can be easily installed with the
Per-erik Martin wrote in post #1112021:
Subject: Re: Getting Started With Development
Carlo E. Prelz wrote in post #1112089:
Subject: Re: Getting Started With Development
Carlo E. Prelz wrote in post #1112183:
[#408138] Loop with range question — "Scott H." <lists@...>
Hi All, working through understanding loops. Would someone explain why
[#408142] Building Ruby — Chamila Wijayarathna <cdwijayarathna@...>
How can I install Ruby at http://www.ruby-lang.org/en/download on Ubuntu?
On Tue, Jun 11, 2013 at 11:59 AM, Chamila Wijayarathna <
When I try to make, it says "executable host Ruby is required"
Building ruby requires a working ruby installation. Either you get a
[#408148] How would I refactor these four `unless` statements? — "Rafal C." <lists@...>
Let's say I have the following four `unless` statements in a row. At
[#408189] Error trying to download Ruby Gems on Windows — "Tyler Z." <lists@...>
I'm trying to download gems and every time I do I get this error:
On Wed, Jun 12, 2013 at 3:05 PM, Tyler Z. <lists@ruby-forum.com> wrote:
[#408192] Timsort in Ruby — Alphonse 23 <lists@...>
I just learned about Tim sort for the first time:
[#408198] NokoGiri XML Parser — "Devender P." <lists@...>
Hi,
[#408201] trying to load a .rb file in irb — "Eric D." <lists@...>
I am trying to load a ruby program into irb and it will not load.
[#408205] Can I use Sinatra to render dynamic pages? — Ruby Student <ruby.student@...>
Hell Team,
Dynamicly updating content on a page falls under Ajax (
You should be able to do this without JavaScript by using streaming.
Well, I got some good suggestions from everyone here. I thank you all for
Sinatra is as lightweight and simple a framework you can choose for doing a
Nick and everyone else,
Hi,
Nick,
in thin project, there a a async exemple which
[#408207] Unexpected output piping to ruby -pe '' — Greg Ferguson <lists@...>
How come Ruby outputs the incoming piped text when there is no code to
[#408227] Complete eLearning Course on Ruby using Screen-Casts — Navin Dhanuka <email@...007.com>
Hi,
[#408234] Set up local tcpserver that conencts to socket — "Rs N." <lists@...>
How can we do this?PLease we really need help.
[#408261] Issue in reading data from yaml file — Rochit Sen <lists@...>
Hi All,
On Sun, Jun 16, 2013 at 11:43 AM, Rochit Sen <lists@ruby-forum.com> wrote:
[#408275] Compare and sort one array according to another. — masta Blasta <lists@...>
I have two arrays of objects that look something like this:
On Mon, Jun 17, 2013 at 10:39 PM, Jes=FAs Gabriel y Gal=E1n
You have said that the size of your two arrays is small, so the fact that
On Mon, Jun 17, 2013 at 11:35 PM, Douglas Seifert <doug@dseifert.net> wrote:
Robert Klemme wrote in post #1112735:
If the items within each array belong to each other, how about a
Joel Pearson wrote in post #1112665:
[#408276] Comparing objects — "Thom T." <lists@...>
How do I compare two objects in Ruby, considering only attributes
On Mon, Jun 17, 2013 at 10:52 AM, Thom T. <lists@ruby-forum.com> wrote:
[#408307] getting the most out of Ruby — robin wood <lists@...>
I write a lot of scripts in Ruby, most are small simple things but some
The biggest jumping point for me is when I stopped trying to program Ruby
On Tue, Jun 18, 2013 at 9:59 PM, Brandon Weaver <keystonelemur@gmail.com>wrote:
[#408309] Creating ruby script exe — Rochit Sen <lists@...>
Hi All,
That's a side-effect of using the command --no-dep-run
[#408347] Long conditionals/ multiple conditionals — "Matthew T." <lists@...>
Hi everyone! I am new to Ruby so I need help. Much appreciated!
[#408348] Mime — Brandon Weaver <keystonelemur@...>
Hey Ruby-Talk,
[#408353] Why the `#new_ostruct_member` not being able to add the `:email` ? — Love U Ruby <lists@...>
require 'ostruct'
[#408357] Beginners problem with database and datamapper — cristian cristian <lists@...>
Hi all!
[#408371] require 'rspec' and Ruby 1.8.7 — Mary-Anne Wolf <lists@...>
I am new to Ruby but not to Software Engineering.
[#408384] Licensing terms for "linking" with Ruby — "Muhammad Ali S." <lists@...>
Hi,
[#408388] Cometd client for Ruby — Peter Hickman <peterhickman386@...>
I am going to have to connect to a comet server using Ruby. What I need is
[#408408] Load error - Std lib class Dir — Love U Ruby <lists@...>
I am required to use the class -
[#408427] Confusin with Hash default — Love U Ruby <lists@...>
I was doing some practice and play with Hash default value as written in
[#408437] How do I input a variable floating point number into Ruby Programs — "Michael P F." <lists@...>
I want to evaluate the following interactively:
I want to input the variable, which changes, from the console and
[#408450] Running wordlist.rb code from "why's (poignant) Guide to Ruby" — Arslan Farooq <lists@...>
Hi,
Okay I got it working now:
On 6/24/2013 12:02 AM, Arslan Farooq wrote:
[#408457] A working memory profiling solution? — Andras Horvath <lists@...>
Dear All,
On Mon, Jun 24, 2013 at 6:59 PM, Andras Horvath <lists@ruby-forum.com>wrote:
Robert Klemme wrote in post #1113449:
[#408459] Need help adding formatting while using "WriteExcel" for spreadsheet — Ruby Student <ruby.student@...>
Hello Team,
[#408466] Sum method through while loops or iteration — "Eric D." <lists@...>
I am trying to create a sum method for an empty array, that will return
On Tue, Jun 25, 2013 at 1:33 AM, Eric D. <lists@ruby-forum.com> wrote:
[#408475] Ruby docs in pdf format? — David Croche <lists@...>
I've searched Google for a while and cannot find the official docs in
[#408498] exec iterate through array — Micah Seattle <lists@...>
Hello all, I am looking for a little insight on how to by pass this
[#408517] Faster primality testing and factorization methods in Ruby — "Jabari Z." <lists@...>
I have created various implementations of methods to replace prime? and
I get the following, on an Ubuntu 64-bit VM (edited to fit the page
ah yeah, on 32-bit it's really-really slow.. (trying on my more powerful PC
[#408518] #!/usr/bin/env: No such file or directory — Todd Sterben <lists@...>
I am new to both linux and ruby. I am using Ubuntu and Ruby 1.9
[#408528] Designing a Cabinet class — Mike Vezzani <lists@...>
Hello all,
[#408543] muack 0.7.0 released — "Lin Jen-Shin (godfat)" <godfat@...>
## Muack <https://github.com/godfat/muack>
[#408547] Where's this ruby feature documented? ...and the case of an accidentally discovered feature. — Kendall Gifford <zettabyte@...>
So, while doing some random testing in an IRB session, I accidentally
[#408561] Find elment in array of hashes — Rodrigo Lueneberg <lists@...>
array = {:id=>1, :price =>0.25} # index[0]
"3" is not the same as 3
On Fri, Jun 28, 2013 at 7:21 PM, Rodrigo Lueneberg <lists@ruby-forum.com>wrote:
I am sorry, I did not understand what you tried to convey. To me it is
On 6/28/2013 5:58 PM, Rodrigo Lueneberg wrote:
Walton,
It's worrying that so many people who put their code problems on here
[#408571] Best practice to use Enumerable#Sort and Enumerable#Sort_by — Love U Ruby <lists@...>
While below is perfect :
The #sort_by block tells the engine which field to use when sorting an item.
[#408605] variable names not allowed "?" and "!" but method name does - why? — Love U Ruby <lists@...>
We can write a method name as foo! or foo?; but not the same with
Am 30.06.2013 21:29, schrieb Love U Ruby:
"Matthias W=C3=A4chter" <matthias@waechter.wiz.at> wrote in post #1114002=
Am 30.06.2013 22:07, schrieb Love U Ruby:
Nokogiri::XML::Node methods examples.
I faced too many obstructions to understand the
Nokogiri::XML::Node#methods.Thus I shared some of my practice
examples,so that future people don't need fall in same trouble.
#=================================================================================
#Here I will discuss several Nokogiri::XML::Node#methods as in the
documentation
#=================================================================================
#===================================================================================
# Day - I :
# Methods wil be covered:
# #keys,#values,#content=,#set_attribute,#attributes,#content,#delete
#===================================================================================
require "nokogiri"
doc = Nokogiri::XML('<foo><bar /><foo>', nil, 'EUC-JP')
node = Nokogiri::XML::Node.new('a',doc) # =>
#<Nokogiri::XML::Element:0x41c8dac name="a">
node.content = "click here"
node.class # => Nokogiri::XML::Element
att = {'href' => "www.example.com","id"=>1425,:class => "dummy"}
att.each {|k,v| node.set_attribute(k,v)}
node.keys # => ["href", "id", "class"]
node.values # => ["www.example.com", "1425", "dummy"]
node.attributes
# => {"href"=>#(Attr:0x41c026a { name = "href", value =
"www.example.com" }),
# "id"=>#(Attr:0x41c01c0 { name = "id", value = "1425" }),
# "class"=>#(Attr:0x41c01b6 { name = "class", value = "dummy" })}
node.attributes.map{|k,v| [k,v.class,v.content]}
# => [["href", Nokogiri::XML::Attr, "www.example.com"],
# ["id", Nokogiri::XML::Attr, "1425"],
# ["class", Nokogiri::XML::Attr, "dummy"]]
Hash[node.keys.zip(node.values)]
# => {"href"=>"www.example.com", "id"=>"1425", "class"=>"dummy"}
node.content # => "click here"
node.delete "class" # => #<Nokogiri::XML::Attr:0x41c01b6 name="class"
value="dummy">
node.delete("class").class # => NilClass
node.attributes
# => {"href"=>#(Attr:0x41c026a { name = "href", value =
"www.example.com" }),
# "id"=>#(Attr:0x41c01c0 { name = "id", value = "1425" })}
#===================================================================================
# Day - II :
# Methods wil be covered:
# #to_s,#to_str,#text,#text?
#===================================================================================
doc = Nokogiri::XML('<foo><bar /><foo>', nil, 'EUC-JP')
node = Nokogiri::XML::Node.new('a',doc) # =>
#<Nokogiri::XML::Element:0x41d09bc name="a">
node.content = "click here"
node.to_str # => "click here"
node.to_s # => "<a>click here</a>"
node.text # => "click here"
node.children # => [#<Nokogiri::XML::Text:0x41aa69a "click here">]
node.children.class # => Nokogiri::XML::NodeSet
node.children.map(&:text?) # => [true]
node.children.map(&:class) # => [Nokogiri::XML::Text]
node = Nokogiri::XML::Node.new('title',doc)
node.content = "survey page"
node.to_str # => "survey page"
node.to_s # => "<title>survey page</title>"
node.text # => "survey page"
node.children # => [#<Nokogiri::XML::Text:0x4180ae8 "survey page">]
node.children.class # => Nokogiri::XML::NodeSet
node.children.map(&:class) # => [Nokogiri::XML::Text]
#===================================================================================
# Day - III :
# Methods wil be covered:
# #next,#next_element,#next_sibling,#node_name,#node_name[],#node_type,#
parent
# # parent=
#===================================================================================
require 'nokogiri'
doc = Nokogiri::XML(<<-eohl)
<Stock>
<Code>7052</Code>
<Name>PADINI</Name>
<StockDailyRecords>
<PriceOpen>1.2</PriceOpen>
<PriceChange>1.1</PriceChange>
<PriceClose>10.0</PriceClose>
<Volume>3000000L</Volume>
</StockDailyRecords>
<StockDailyRecords>
<PriceOpen>1.3</PriceOpen>
<PriceChange>1.2</PriceChange>
<PriceClose>11.0</PriceClose>
<Volume>5000000L</Volume>
</StockDailyRecords>
</Stock>
eohl
doc
# => #(Document:0x417f634 {
# name = "document",
# children = [
# #(Element:0x417b570 {
# name = "Stock",
# children = [
# #(Text "\n "),
# #(Element:0x4179a72 {
# name = "Code",
# children = [ #(Text "7052")]
# }),
# #(Text "\n "),
# #(Element:0x41786cc {
# name = "Name",
# children = [ #(Text "PADINI")]
# }),
# #(Text "\n "),
# #(Element:0x4175d00 {
# name = "StockDailyRecords",
# children = [
# #(Text "\n "),
# #(Element:0x41752c4 {
# name = "PriceOpen",
# children = [ #(Text "1.2")]
# }),
# #(Text "\n "),
# #(Element:0x417434c {
# name = "PriceChange",
# children = [ #(Text "1.1")]
# }),
# #(Text "\n "),
# #(Element:0x4170fee {
# name = "PriceClose",
# children = [ #(Text "10.0")]
# }),
# #(Text "\n "),
# #(Element:0x41702b0 {
# name = "Volume",
# children = [ #(Text "3000000L")]
# }),
# #(Text "\n ")]
# }),
# #(Text "\n "),
# #(Element:0x416a5b8 {
# name = "StockDailyRecords",
# children = [
# #(Text "\n "),
# #(Element:0x4158ec6 {
# name = "PriceOpen",
# children = [ #(Text "1.3")]
# }),
# #(Text "\n "),
# #(Element:0x414dddc {
# name = "PriceChange",
# children = [ #(Text "1.2")]
# }),
# #(Text "\n "),
# #(Element:0x415e812 {
# name = "PriceClose",
# children = [ #(Text "11.0")]
# }),
# #(Text "\n "),
# #(Element:0x40dfaa8 {
# name = "Volume",
# children = [ #(Text "5000000L")]
# }),
# #(Text "\n ")]
# }),
# #(Text "\n")]
# })]
# })
doc.class # => Nokogiri::XML::Document
doc.css("StockDailyRecords").count # => 2
doc.css("StockDailyRecords").class # => Nokogiri::XML::NodeSet
doc.css("StockDailyRecords").map(&:next)
# => [#(Text "\n "), #(Text "\n")]
doc.css("StockDailyRecords").map(&:name)
# => ["StockDailyRecords", "StockDailyRecords"]
doc.css("StockDailyRecords").map(&:next_element)
# => [#(Element:0x416a5b8 {
# name = "StockDailyRecords",
# children = [
# #(Text "\n "),
# #(Element:0x4158ec6 {
# name = "PriceOpen",
# children = [ #(Text "1.3")]
# }),
# #(Text "\n "),
# #(Element:0x414dddc {
# name = "PriceChange",
# children = [ #(Text "1.2")]
# }),
# #(Text "\n "),
# #(Element:0x415e812 {
# name = "PriceClose",
# children = [ #(Text "11.0")]
# }),
# #(Text "\n "),
# #(Element:0x40dfaa8 {
# name = "Volume",
# children = [ #(Text "5000000L")]
# }),
# #(Text "\n ")]
# }),
# nil]
doc.at_css("StockDailyRecords").children.map{|el| el.text.strip unless
el.text? }.compact
# => ["1.2", "1.1", "10.0", "3000000L"]
doc.at_css("StockDailyRecords").children.map{|el| el.text.strip if
el.text.strip != "" }.compact
# => ["1.2", "1.1", "10.0", "3000000L"]
doc.at_css("StockDailyRecords").next_sibling # =>
#<Nokogiri::XML::Text:0x416a9fa "\n ">
doc.at_css("StockDailyRecords").next_sibling.node_name # => "text"
Hash[doc.at_css("StockDailyRecords").children.map {|n|
[n.name,n.node_type]}]
# => {"text"=>3,
# "PriceOpen"=>1,
# "PriceChange"=>1,
# "PriceClose"=>1,
# "Volume"=>1}
Hash[doc.css("StockDailyRecords").map {|n| [n.name,n.node_type]}]
# => {"StockDailyRecords"=>1}
doc.at_css("StockDailyRecords").children.map {|n|
[n.parent.name,n.name]}
# => [["StockDailyRecords", "text"],
# ["StockDailyRecords", "PriceOpen"],
# ["StockDailyRecords", "text"],
# ["StockDailyRecords", "PriceChange"],
# ["StockDailyRecords", "text"],
# ["StockDailyRecords", "PriceClose"],
# ["StockDailyRecords", "text"],
# ["StockDailyRecords", "Volume"],
# ["StockDailyRecords", "text"]]
doc.at_css("StockDailyRecords").children.count
# => 9
doc.root.name # => "Stock"
doc.root.children.map(&:name)
# => ["text",
# "Code",
# "text",
# "Name",
# "text",
# "StockDailyRecords",
# "text",
# "StockDailyRecords",
# "text"]
doc.root.children.map{|n| n.name if n.elem? }.compact
# => ["Code", "Name", "StockDailyRecords", "StockDailyRecords"]
doc.root.children.map{|n| n.name if n.elem? && !n.children.empty?
}.compact
# => ["Code", "Name", "StockDailyRecords", "StockDailyRecords"]
#===================================================================================
# Day - IV :
# Methods wil be covered:
# #path,#previous,#previous_element,#pointer_id,#line,#xml?
#===================================================================================
doc = Nokogiri::XML(<<-eohl)
<Stock>
<Code>7052</Code>
<Name>PADINI</Name>
<StockDailyRecords>
<PriceOpen>1.2</PriceOpen>
<PriceChange>1.1</PriceChange>
<PriceClose>10.0</PriceClose>
<Volume>3000000L</Volume>
</StockDailyRecords>
<StockDailyRecords>
<PriceOpen>1.3</PriceOpen>
<PriceChange>1.2</PriceChange>
<PriceClose>11.0</PriceClose>
<Volume>5000000L</Volume>
</StockDailyRecords>
</Stock>
eohl
doc.at_css('StockDailyRecords').path
# => "/Stock/StockDailyRecords[1]"
doc.at_css('StockDailyRecords').pointer_id
# => 139602384
doc.at_css('StockDailyRecords').previous.previous
# => #(Element:0x40dd190 { name = "Name", children = [ #(Text "PADINI")]
})
doc.at_css('StockDailyRecords').previous_element
# => #(Element:0x40dd190 { name = "Name", children = [ #(Text "PADINI")]
})
doc.at_css('StockDailyRecords').children[1].path
# => "/Stock/StockDailyRecords[1]/PriceOpen"
doc.at_css('StockDailyRecords').previous_sibling.previous_sibling
# => #(Element:0x40dd190 { name = "Name", children = [ #(Text "PADINI")]
})
doc.at_css('StockDailyRecords').line
# => 4
doc.css('StockDailyRecords').map(&:line)
# => [4, 10]
doc.xml? # => true
#===================================================================================
# Day - V :
# Methods wil be covered:
# #replace,#unlink,#remove
#===================================================================================
doc = Nokogiri::HTML(<<-eohl)
<div>
<dt>
Test 1
</dt>
<dd>
</dd>
<dt>
Test 2
</dt>
<dd>
foo
</dd>
</div>
eohl
doc.search('div').children.map(&:name)
# => ["text", "dt", "text", "dd", "text", "dt", "text", "dd", "text"]
doc.at('dt').unlink
doc.search('div').children.map(&:name)
# => ["text", "text", "dd", "text", "dt", "text", "dd", "text"]
node = Nokogiri::XML::Node.new('p',doc)
# => #(Element:0x4d5f3c8 { name = "p" })
doc.at('dt').replace node
doc.search('div').children.map(&:name)
# => ["text", "text", "dd", "text", "p", "text", "dd", "text"]
#===================================================================================
# Day - VI :
# Methods wil be covered:
# #matches?,#css_path,#swap
#===================================================================================
doc = Nokogiri::HTML(<<-eohl)
<div>
<dt>
Test 1
</dt>
<dd>
</dd>
<dt>
Test 2
</dt>
<dd>
foo
</dd>
</div>
eohl
doc.search("dt,dd").map{|n| n.name unless n.to_str.strip.empty?
}.compact
# => ["dt", "dt", "dd"]
doc.search("dt,dd").map{|n| n.css_path }
# => ["html > body > div > dt:nth-of-type(1)",
# "html > body > div > dt:nth-of-type(2)",
# "html > body > div > dd:nth-of-type(1)",
# "html > body > div > dd:nth-of-type(2)"]
doc.search("dt,dd").first.matches? "dt:nth-of-type(1)"
# => true
f = Nokogiri::XML.fragment( "<div class='section'><span
class='greeting'></span></div>" )
f.css( 'div' ).each do | node |
node.swap( '<h1>hi</h1>' )
end
f
# => #(DocumentFragment:0x43aa42c {
# name = "#document-fragment",
# children = [
# #(Element:0x43a3992 { name = "h1", children = [ #(Text "hi")]
})]
# })
#===================================================================================
# Day - VII :
# Methods wil be covered:
# #traverse
#===================================================================================
doc = Nokogiri::HTML(<<-eofl)
<div id="international-map">
<div id='a'>
<a> link a1 </a>
<a> link a2 </a>
<a> link a3 </a>
</div>
<div id='b'>
<a> link b1 </a>
<a> link b2 </a>
</div>
</div>
eofl
a = []
doc.at('div#a').traverse do |i|
a << i.text.strip unless i.elem?
end
a.reject(&:empty?) # => ["link a1", "link a2", "link a3"]
doc.at('div#a').traverse do |i|
p i.text unless i.elem?
end
# >> "\n "
# >> " link a1 "
# >> "\n "
# >> " link a2 "
# >> "\n "
# >> " link a3 "
# >> "\n "
#===================================================================================
# Day - VIII :
# Methods wil be covered:
# #traverse,#before,#after,#add_previous_sibling,#add_next_sibling
#===================================================================================
doc = Nokogiri::HTML(<<-eofl)
<div id="international-map">
<div id='a'>
<a> link a1 </a>
<a> link a2 </a>
<a> link a3 </a>
</div>
<div id='b'>
<a> link b1 </a>
<a> link b2 </a>
</div>
</div>
eofl
doc.at('div#a').inner_html
# => "\n <a> link a1 </a>\n <a> link a2 </a>\n <a> link a3
</a>\n "
doc.at('div#a').inner_text
# => "\n link a1 \n link a2 \n link a3 \n "
doc.at('div#a').internal_subset
# => #(DTD:0x43efa5e { name = "html" })
doc = Nokogiri::HTML::Document.new
doc # => #<Nokogiri::HTML::Document:0x48d2e40 name="document"
children=[#<Nokogiri::XML::DTD:0x48d2c88 name="html">]>
pnode = Nokogiri::XML::Node.new("div",doc)
pnode # => #<Nokogiri::XML::Element:0x48d29a4 name="div">
cnode = pnode.add_child("<p> Welcome </p>")
pnode
# => #(Element:0x48d29a4 {
# name = "div",
# children = [
# #(Element:0x48d26c0 {
# name = "p",
# children = [ #(Text " Welcome ")]
# })]
# })
#cnode.add_next_sibling("<p> Please come in! </p>")
cnode.class
# => Nokogiri::XML::NodeSet
cnode
# => [#<Nokogiri::XML::Element:0x48d26c0 name="p"
children=[#<Nokogiri::XML::Text:0x48858fc " Welcome ">]>]
cnode[0]
# => #(Element:0x48d26c0 { name = "p", children = [ #(Text " Welcome ")]
})
pnode << cnode[0].add_next_sibling("<p> Please come in! </p>")
pnode
# => #(Element:0x48d29a4 {
# name = "div",
# children = [
# #(Element:0x48d26c0 {
# name = "p",
# children = [ #(Text " Welcome ")]
# }),
# #(Element:0x4873350 {
# name = "p",
# children = [ #(Text " Please come in! ")]
# })]
# })
pnode.children.count
# => 2
pnode.children[1].add_previous_sibling("<p> Good morning!!Dear Arjun
</p>")
pnode
# => #(Element:0x48d29a4 {
# name = "div",
# children = [
# #(Element:0x48d26c0 {
# name = "p",
# children = [ #(Text " Welcome ")]
# }),
# #(Element:0x48700c4 {
# name = "p",
# children = [ #(Text " Good morning!!Dear Arjun ")]
# }),
# #(Element:0x4873350 {
# name = "p",
# children = [ #(Text " Please come in! ")]
# })]
# })
pnode.children.count
# => 3
pnode.fragment("<li> Foo </li> <li> bar >/li>")
# => #(DocumentFragment:0x48e73a4 {
# name = "#document-fragment",
# children = [
# #(Element:0x48e72f0 { name = "li", children = [ #(Text " Foo
")] }),
# #(Text " "),
# #(Element:0x48e726e {
# name = "li",
# children = [ #(Text " bar >/li>")]
# })]
# })
pnode.class # => Nokogiri::XML::Element
pnode.child.after("<li> Foo </li> <li> bar >/li>")
# => #(Element:0x48d26c0 { name = "p", children = [ #(Text " Welcome ")]
})
pnode
# => #(Element:0x48d29a4 {
# name = "div",
# children = [
# #(Element:0x48d26c0 {
# name = "p",
# children = [ #(Text " Welcome ")]
# }),
# #(Element:0x48db180 { name = "li", children = [ #(Text " Foo
")] }),
# #(Text " "),
# #(Element:0x48db086 {
# name = "li",
# children = [ #(Text " bar >/li>")]
# }),
# #(Element:0x48700c4 {
# name = "p",
# children = [ #(Text " Good morning!!Dear Arjun ")]
# }),
# #(Element:0x4873350 {
# name = "p",
# children = [ #(Text " Please come in! ")]
# })]
# })
pnode.child.before("<li> Foo </li> <li> bar >/li>")
# => #(Element:0x48d26c0 { name = "p", children = [ #(Text " Welcome ")]
})
pnode
# => #(Element:0x48d29a4 {
# name = "div",
# children = [
# #(Element:0x48a8e2e { name = "li", children = [ #(Text " Foo
")] }),
# #(Text " "),
# #(Element:0x48a8c26 {
# name = "li",
# children = [ #(Text " bar >/li>")]
# }),
# #(Element:0x48d26c0 {
# name = "p",
# children = [ #(Text " Welcome ")]
# }),
# #(Element:0x48db180 { name = "li", children = [ #(Text " Foo
")] }),
# #(Text " "),
# #(Element:0x48db086 {
# name = "li",
# children = [ #(Text " bar >/li>")]
# }),
# #(Element:0x48700c4 {
# name = "p",
# children = [ #(Text " Good morning!!Dear Arjun ")]
# }),
# #(Element:0x4873350 {
# name = "p",
# children = [ #(Text " Please come in! ")]
# })]
# })
--
Posted via http://www.ruby-forum.com/.