Rosetta Code/Count examples: Difference between revisions
Content added Content deleted
(add Ruby) |
|||
Line 282: | Line 282: | ||
=={{header|Ruby}}== |
=={{header|Ruby}}== |
||
{{libheader|REXML}} |
{{libheader|REXML}} |
||
First, a RosettaCode module, saved as <tt>rosettacode.rb</tt>: |
|||
<lang ruby>require 'open-uri' |
<lang ruby>require 'open-uri' |
||
require 'rexml/document' |
require 'rexml/document' |
||
module RosettaCode |
|||
def rc_url(page, query) |
|||
⚫ | |||
⚫ | |||
⚫ | |||
def |
def rc_url(page, query) |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
def rc_tasks |
|||
REXML::XPath.each(doc, "//cm") do |task| |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
REXML::XPath.each(doc, "//cm") do |task| |
|||
⚫ | |||
⚫ | |||
end |
|||
⚫ | |||
⚫ | |||
continue = REXML::XPath.first(doc, "//query-continue") |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
end |
end |
||
end |
|||
end</lang> |
|||
Then, we implement the task with: |
|||
<lang ruby>require 'rosettacode' |
|||
include RosettaCode |
|||
total_examples = 0 |
total_examples = 0 |
||
rc_tasks("Programming_Tasks") do |task| |
rc_tasks("Programming_Tasks") do |task| |
||
url = rc_url |
url = rc_url("index.php", {"action" => "raw", "title" => task}) |
||
examples = open(url).read.scan("=={{header").length |
examples = open(url).read.scan("=={{header").length |
||
puts "#{task}: #{examples}" |
puts "#{task}: #{examples} examples" |
||
total_examples += examples |
total_examples += examples |
||
end |
end |
||
puts |
puts |
||
puts "Total: #{total_examples}"</lang> |
puts "Total: #{total_examples} examples"</lang> |
||
=={{header|Tcl}}== |
=={{header|Tcl}}== |