nddrylliog_pismo 0.7.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. data/.document +5 -0
  2. data/.gitignore +29 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +23 -0
  5. data/NOTICE +4 -0
  6. data/README.markdown +131 -0
  7. data/Rakefile +72 -0
  8. data/bin/pismo +45 -0
  9. data/lib/pismo.rb +82 -0
  10. data/lib/pismo/document.rb +67 -0
  11. data/lib/pismo/external_attributes.rb +14 -0
  12. data/lib/pismo/internal_attributes.rb +316 -0
  13. data/lib/pismo/reader.rb +19 -0
  14. data/lib/pismo/reader/base.rb +259 -0
  15. data/lib/pismo/reader/cluster.rb +171 -0
  16. data/lib/pismo/reader/tree.rb +154 -0
  17. data/lib/pismo/stopwords.txt +1002 -0
  18. data/lib/pismo/version.rb +3 -0
  19. data/pismo.gemspec +30 -0
  20. data/test/corpus/bbcnews.html +2131 -0
  21. data/test/corpus/bbcnews2.html +1575 -0
  22. data/test/corpus/briancray.html +269 -0
  23. data/test/corpus/cant_read.html +426 -0
  24. data/test/corpus/factor.html +1362 -0
  25. data/test/corpus/gmane.html +138 -0
  26. data/test/corpus/huffington.html +2932 -0
  27. data/test/corpus/metadata_expected.yaml +72 -0
  28. data/test/corpus/metadata_expected.yaml.old +122 -0
  29. data/test/corpus/queness.html +919 -0
  30. data/test/corpus/reader_expected.yaml +39 -0
  31. data/test/corpus/readers/cluster_expected.yaml +45 -0
  32. data/test/corpus/readers/tree_expected.yaml +55 -0
  33. data/test/corpus/rubyinside.html +318 -0
  34. data/test/corpus/rww.html +1351 -0
  35. data/test/corpus/spolsky.html +298 -0
  36. data/test/corpus/techcrunch.html +1285 -0
  37. data/test/corpus/tweet.html +360 -0
  38. data/test/corpus/youtube.html +2348 -0
  39. data/test/corpus/zefrank.html +535 -0
  40. data/test/helper.rb +15 -0
  41. data/test/test_corpus.rb +54 -0
  42. data/test/test_pismo_document.rb +34 -0
  43. metadata +156 -0
@@ -0,0 +1,39 @@
1
+ ---
2
+ :bbcnews:
3
+ - "A UK charity is dealing with an increasing number of young gay Muslims becoming homeless after fleeing forced marriages and so-called honour violence."
4
+ - "During a weekly drop-in group held by the Albert Kennedy Trust in London, Suni, a 20-year-old London student, helps himself to a warm mince pie and a steaming cup of coffee."
5
+ :bbcnews2:
6
+ - "The government in England is setting out how parents, teachers, charities and other groups can apply to set up their own \"free school\"."
7
+ - "Free schools will be independent but funded by central government."
8
+ :briancray:
9
+ - "This is a mock post."
10
+ - "While there a place for all of these posts, I'm trying to make a point that original blogs are being shut out by formulaic blogs."
11
+ :cant_read:
12
+ - "For those of us who grew up as weird kids in the 1980s, the work of Berkeley Breathed was as important as those twin eternal pillars of weird-kid-dom: Monty Python and Mad magazine."
13
+ - "In a word: seminal."
14
+ :factor:
15
+ - "The Factor VM implements an abstract machine consisting of a data heap of objects, a code heap of machine code blocks, and a set of stacks."
16
+ - "The VM loads an image file on startup, which becomes the data and code heap."
17
+ :gmane:
18
+ - "I am pleased to report that the GCC Steering Committee and the FSF have approved the use of C++ in GCC itself."
19
+ - "Of course, there's no reason for us to use C++ features just because we can."
20
+ :queness:
21
+ - "CSS3 is hot these days and will soon be available in most modern browser."
22
+ - "Just recently, I started to become aware to the present of CSS3 around the web."
23
+ :rubyinside:
24
+ - "CoffeeScript (GitHub repo) is a new programming language with a pure Ruby compiler."
25
+ - "Creator Jeremy Ashkenas calls it \"JavaScript's less ostentatious kid brother\" - mostly because it compiles into JavaScript and shares most of the same constructs, but with a different, tighter syntax."
26
+ :rww:
27
+ - "I'm just aching to know if the new Apple tablet (insert caveats, weasel words and qualifiers here) is a potential Cintiq competitor."
28
+ - "I don't think it will be, but you never know."
29
+ :spolsky:
30
+ - "Ever wonder about that mysterious Content-Type tag?"
31
+ - "You know, the one you're supposed to put in HTML and you never quite know what it should be?"
32
+ :techcrunch:
33
+ - "Last week, we covered Googlle opening a school in India."
34
+ - "Googlle, not to be confused with Google."
35
+ :tweet:
36
+ - "Gobsmacked that TeX/LaTeX (document formatting tools) for OS X is a 1.3GB (yes, GIGAbytes) download OS Wow..!"
37
+ :zefrank:
38
+ - "If there's anyone who knows how to marshal an online audience, it's Ze Frank."
39
+ - "Ze is best-known for his 2006 program \"The Show,\" in which he made a new 2-3 minute video every day for 1 year."
@@ -0,0 +1,45 @@
1
+ ---
2
+ :bbcnews: |-
3
+ A UK charity is dealing with an increasing number of young gay Muslims becoming homeless after fleeing forced marriages and so-called honour violence.
4
+ During a weekly drop-in group held by the Albert Kennedy Trust in London, Suni, a 20-year-old London student, helps himself to a warm mince pie and a steaming cup of coffee.
5
+ In 2008, during a holiday to Pakistan to visit relatives, his parents suspected the truth about his sexuality. They believed marriage would "cure" him of what they considered to be a psychological disorder.
6
+ Name 'blackened'
7
+ "They told me I'm going to be forced into marriage and they're looking for a girl and I'll be married in two to three months and I won't be able to come back to London," Suni said.
8
+ When he refused, he was imprisoned in his family's ancestral home in a remote village of Pakistan and subjected to regular beatings and abuse as he had brought "shame" on the strict Muslim family.
9
+ I think I'd be vulnerable if people knew about me - I've heard a lot of remarks in the past about people saying that gay people should die for religious reasons
10
+ "I stayed there for three months and he was always beating me. He was telling me I had blackened our family name and he was saying it's a sin. I know it was just for honour."
11
+ Suni managed to escape and return to the UK, penniless and homeless.
12
+ Relatives and friends were reluctant to help him due to fear of violent reprisals from his family.
13
+ After a night spent in a police cell, he was put in touch with the trust, which helped find him safe accommodation.
14
+ 'Gay demons'
15
+ Trust worker Annie Southerst said in the past six months there has been an increase in the number of Muslims coming to them for help.
16
+ "They face threats of physical violence, actual violence and restriction of liberties," she said.
17
+ "We've had people chased out of the house with knives and we have had issues around young people who had exorcisms planned to get rid of the gay demons, I suppose.
18
+ "They come to us because they're homeless, or in danger of being homeless imminently. We sort out emergency accommodation for them.
19
+ "But the biggest loss they face is the loss of their families.
20
+ "I can't imagine what it must be like to suddenly in your late teens, early 20s suddenly not to have a family anymore."
21
+ Using laws introduced by the government in November 2008, the charity has taken out four Forced Marriage Protection orders in the past few months.
22
+ The orders were introduced after ministers dropped plans to make forcing someone to marry a crime.
23
+ More than 80 have been imposed so far. Breaching one is contempt of court and can carry a two-year jail term.
24
+ Fazal Mahmood runs a support group for South Asian and Middle Eastern gay men, called Himat, which means strength in Urdu.
25
+ "I've got about 150 people on my mail out list.
26
+ "About 80%... have been coerced into marriage or been forced into marriage or are being forced into marriage," he said.
27
+ Mr Mahmood says homosexuality is considered a taboo issue within close-knit Muslim communities in areas such as London, Bradford and Manchester.
28
+ "I'm proud to be a Muslim, I'm proud to be South Asian, Pakistani and I'm proud to be gay as well.
29
+ "Unfortunately a lot of parents don't see that. All they see is 'what is my community going to feel like when they find out my son or daughter is gay?'."
30
+ In fact he advises young gay Muslims not to come out to their families.
31
+ "Once you've told your family and friends about your sexuality, the next unfortunate step for your family to do is ask you to leave."
32
+ Shelim, 21, lives in east London with his large Bangladeshi family, and has decided to keep his sexuality a secret.
33
+ "When they do find out, they're basically going to go against it.
34
+ "My relationship with them is not going to be the same, the respect they have for me is going to be different and I'm going to miss that relationship," he said.
35
+ He is also worried about the repercussions within the local community if they discover he is gay.
36
+ "You see people being killed for being gay and stuff. I think I'd be vulnerable if people knew about me.
37
+ "I've heard a lot of remarks in the past about people saying that gay people should die for religious reasons."
38
+ A special government unit tackles the issue of forced marriages. Every year it deals with around 1,600 cases of forced marriage. Three-quarters of all calls are from people of South Asian origin.
39
+ Department head Olaf Henricson-Bell said gay and lesbian youngsters were particularly vulnerable.
40
+ "A few weeks ago, an individual got in touch with the unit to say he'd been taken to Pakistan, forced to marry against his will, brought back to the UK then denounced by both his new wife and his family for his sexuality.
41
+ "He'd been subject to physical and other abuse. When he rang us he was scared to leave the home and we had to secure police protection.
42
+ "Forced marriage by its nature is an underground practice and the cases often go unreported.
43
+ "The individuals involved may be reluctant to mention sexuality when they ring us or when they bring their case to the attention of the authorities," he said.
44
+ The unit plans to work with the trust to produce a training programme for Lesbian, Gay, Bisexual, and Transgender organisations working with young people at risk of being forced into marriage.
45
+ You can hear more at 1230 and 1800 BST on the BBC's Asian Network Reports or via the BBC iPlayer.
@@ -0,0 +1,55 @@
1
+ ---
2
+ :bbcnews: |-
3
+ A UK charity is dealing with an increasing number of young gay Muslims becoming homeless after fleeing forced marriages and so-called honour violence.
4
+ During a weekly drop-in group held by the Albert Kennedy Trust in London, Suni, a 20-year-old London student, helps himself to a warm mince pie and a steaming cup of coffee.
5
+ In 2008, during a holiday to Pakistan to visit relatives, his parents suspected the truth about his sexuality. They believed marriage would "cure" him of what they considered to be a psychological disorder.
6
+ Name 'blackened'
7
+ "They told me I'm going to be forced into marriage and they're looking for a girl and I'll be married in two to three months and I won't be able to come back to London," Suni said.
8
+ When he refused, he was imprisoned in his family's ancestral home in a remote village of Pakistan and subjected to regular beatings and abuse as he had brought "shame" on the strict Muslim family.
9
+ I think I'd be vulnerable if people knew about me - I've heard a lot of remarks in the past about people saying that gay people should die for religious reasons
10
+ "I stayed there for three months and he was always beating me. He was telling me I had blackened our family name and he was saying it's a sin. I know it was just for honour."
11
+ Suni managed to escape and return to the UK, penniless and homeless.
12
+ Relatives and friends were reluctant to help him due to fear of violent reprisals from his family.
13
+ After a night spent in a police cell, he was put in touch with the trust, which helped find him safe accommodation.
14
+ 'Gay demons'
15
+ Trust worker Annie Southerst said in the past six months there has been an increase in the number of Muslims coming to them for help.
16
+ "They face threats of physical violence, actual violence and restriction of liberties," she said.
17
+ "We've had people chased out of the house with knives and we have had issues around young people who had exorcisms planned to get rid of the gay demons, I suppose.
18
+ "They come to us because they're homeless, or in danger of being homeless imminently. We sort out emergency accommodation for them.
19
+ "But the biggest loss they face is the loss of their families.
20
+ "I can't imagine what it must be like to suddenly in your late teens, early 20s suddenly not to have a family anymore."
21
+ Using laws introduced by the government in November 2008, the charity has taken out four Forced Marriage Protection orders in the past few months.
22
+ I'm proud to be a Muslim... and I'm proud to be gay as well - unfortunately a lot of parents don't see that
23
+ The orders were introduced after ministers dropped plans to make forcing someone to marry a crime.
24
+ More than 80 have been imposed so far. Breaching one is contempt of court and can carry a two-year jail term.
25
+ Fazal Mahmood runs a support group for South Asian and Middle Eastern gay men, called Himat, which means strength in Urdu.
26
+ "I've got about 150 people on my mail out list.
27
+ "About 80%... have been coerced into marriage or been forced into marriage or are being forced into marriage," he said.
28
+ Mr Mahmood says homosexuality is considered a taboo issue within close-knit Muslim communities in areas such as London, Bradford and Manchester.
29
+ "I'm proud to be a Muslim, I'm proud to be South Asian, Pakistani and I'm proud to be gay as well.
30
+ "Unfortunately a lot of parents don't see that. All they see is 'what is my community going to feel like when they find out my son or daughter is gay?'."
31
+ In fact he advises young gay Muslims not to come out to their families.
32
+ "Once you've told your family and friends about your sexuality, the next unfortunate step for your family to do is ask you to leave."
33
+ Shelim, 21, lives in east London with his large Bangladeshi family, and has decided to keep his sexuality a secret.
34
+ "When they do find out, they're basically going to go against it.
35
+ "My relationship with them is not going to be the same, the respect they have for me is going to be different and I'm going to miss that relationship," he said.
36
+ He is also worried about the repercussions within the local community if they discover he is gay.
37
+ "You see people being killed for being gay and stuff. I think I'd be vulnerable if people knew about me.
38
+ "I've heard a lot of remarks in the past about people saying that gay people should die for religious reasons."
39
+ A special government unit tackles the issue of forced marriages. Every year it deals with around 1,600 cases of forced marriage. Three-quarters of all calls are from people of South Asian origin.
40
+ Department head Olaf Henricson-Bell said gay and lesbian youngsters were particularly vulnerable.
41
+ "A few weeks ago, an individual got in touch with the unit to say he'd been taken to Pakistan, forced to marry against his will, brought back to the UK then denounced by both his new wife and his family for his sexuality.
42
+ "He'd been subject to physical and other abuse. When he rang us he was scared to leave the home and we had to secure police protection.
43
+ "Forced marriage by its nature is an underground practice and the cases often go unreported.
44
+ "The individuals involved may be reluctant to mention sexuality when they ring us or when they bring their case to the attention of the authorities," he said.
45
+ The unit plans to work with the trust to produce a training programme for Lesbian, Gay, Bisexual, and Transgender organisations working with young people at risk of being forced into marriage.
46
+ You can hear more at 1230 and 1800 BST on the BBC's Asian Network Reports or via the BBC iPlayer.
47
+ Bookmark with:
48
+ * Delicious
49
+ * Digg
50
+ * reddit
51
+ * Facebook
52
+ * StumbleUpon
53
+ What are these?
54
+ E-mail this to a friend
55
+ Printable version
@@ -0,0 +1,318 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <title>CoffeeScript: A New Language With A Pure Ruby Compiler</title>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
+
7
+ <link rel="stylesheet" href="http://www.rubyinside.com/wp-content/themes/rubyinside2009/style.css" type="text/css" />
8
+ <link rel="alternate" type="application/rss+xml" title="Ruby Inside" href="http://www.rubyinside.com/feed/" />
9
+ <link rel="icon" href="/favicon.png" type="image/x-icon" />
10
+ <link rel="shortcut icon" href="/favicon.png" type="image/x-icon" />
11
+ <meta name="viewport" content="initial-scale=0.8" />
12
+ <script type="text/javascript">try { window.scrollTo(0, 1); } catch(err) { };</script>
13
+ <!--[if !IE]>--><link media="only screen and (max-device-width: 480px)" rel="stylesheet" type="text/css" href="http://www.rubyinside.com/wp-content/themes/rubyinside2009/iphone.css" /><!--<![endif]-->
14
+ </head>
15
+ <body class="front">
16
+
17
+ <div id="page">
18
+
19
+ <div id="header">
20
+ <div id="header-core">
21
+ <a href="/"><img src="http://www.rubyinside.com/wp-content/themes/rubyinside2009/images/logo2.png" id="logo" alt="Ruby Inside Logo" /></a>
22
+ <a href="http://www.rubyinside.com/feed/"><img src="http://feeds2.feedburner.com/~fc/RubyInside?bg=99CCFF&fg=444444&anim=0" align="top" alt="Feed Icon" style="clip:rect(0px, 88px, 20px, 0px); position:absolute; top: 1px; right: 0px" /></a>
23
+
24
+ <div id="topbyline">The #1 Ruby Programming Blog</div>
25
+
26
+ <div id="sections">
27
+ <ul>
28
+ <li><a href="/">Home</a></li>
29
+ <li><a href="/about">About Us</a></li>
30
+ <li><a href="http://ruby.jobamatic.com/" title="Ruby Jobs">Jobs</a></li>
31
+ <li><a href="/archives">Archive</a></li>
32
+ </ul>
33
+ </div>
34
+
35
+ <div id="subscribe">
36
+ <ul>
37
+ <li><a href="http://twitter.com/RubyInside" title="Follow us on Twitter @RubyInside"><img src="http://www.rubyinside.com/wp-content/themes/rubyinside2009/images/twitter.png" align="top" alt="Twitter Icon" /></a></li>
38
+ <li><a href="http://www.rubyinside.com/feed/" title="Subscribe to the Ruby Inside RSS Web Feed"><img src="http://www.rubyinside.com/wp-content/themes/rubyinside2009/images/rss.png" align="top" alt="RSS Feed" /></a></li>
39
+ </ul>
40
+ </div>
41
+
42
+ <div id="search">
43
+ <form method="get" id="searchform" action="/">
44
+ <div><input type="text" value="" name="s" id="s" size="28" style="width: 195px" />&nbsp;<input type="submit" id="searchsubmit" value="Search" style="width: 55px;"/>
45
+ </div>
46
+ </form>
47
+ </div>
48
+
49
+ </div><!-- header-core -->
50
+ </div>
51
+
52
+
53
+ <div id="wrapper" class="clearfix">
54
+ <div id="twocols" class="clearfix"> <div id="content" class="single">
55
+ <div class="post" id="post-2921">
56
+ <div class="entryheader">
57
+ <h1>CoffeeScript: A New Language With A Pure Ruby Compiler</h1>
58
+ <p class="byline">By <a href="http://twitter.com/peterc" title="Visit Peter Cooper&#8217;s website" rel="external">Peter Cooper</a> &mdash; January 4th, 2010 &mdash; <a href="#respond">7 Comments</a></p>
59
+ <p class="subbyline">In <a href="http://www.rubyinside.com/category/cool" title="View all posts in Cool" rel="category tag">Cool</a></p>
60
+ </div>
61
+ <div class="entrytext">
62
+ <div id="greet_block"><noscript><div class="greet_block"><div class="greet_text"><div class="greet_image"><a href="http://www.rubyinside.com/feed/rss" rel="nofollow"><img src="http://www.rubyinside.com/wp-content/plugins/wp-greet-box/images/rss_icon.png" alt="WP Greet Box icon"/></a></div>Hello there! If you are new here, you might want to <a href="http://www.rubyinside.com/feed/rss" rel="nofollow"><strong>subscribe to the RSS feed</strong></a> for updates on this topic.<div style="clear:both"></div><div class="greet_block_powered_by"><a href="http://omninoggin.com/projects/wordpress-plugins/wp-greet-box-wordpress-plugin/" title="WP Greet Box WordPress Plugin">Powered by WP Greet Box</a></div><div style="clear:both"></div></div></div></noscript></div><p><img src="http://www.rubyinside.com/wp-content/uploads/2010/01/coffeescript.png" width="59" height="69" alt="coffeescript.png" style="float:left; margin-right:12px; margin-bottom:12px; border:1px #000000 solid;" /> <a href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a> <sup>(<a href="http://github.com/jashkenas/coffee-script/">GitHub repo</a>)</sup> is a new programming language with a pure Ruby compiler. Creator Jeremy Ashkenas calls it "JavaScript's less ostentatious kid brother" - mostly because it compiles <i>into</i> JavaScript and shares most of the same constructs, but with a different, tighter syntax.</p>
63
+ <p>To get a feel for the language, check out this example code (CoffeeScript on the left, resulting JavaScript on the right):</p>
64
+ <p><img src="http://www.rubyinside.com/wp-content/uploads/2010/01/cofeescriptdemo.png" width="640" height="485" alt="cofeescriptdemo.png" /></p>
65
+ <p>As a Ruby project, you can get the CoffeeScript compiler installed with a simple <code>gem install coffee-script</code> or check out <a href="http://github.com/jashkenas/coffee-script/">the code from/on GitHub</a>. The code is worth a look as it's notably quite vanilla with hand crafted Ruby covering the lexer and code generation and <a href="http://i.loveruby.net/en/projects/racc/doc/">Racc</a> built code for the parser.</p>
66
+
67
+ </div>
68
+ </div>
69
+
70
+ <h3>Vaguely Related Posts (Usually)</h3>
71
+ <div class="similar-posts"><ul class="similar-posts clearfix"> <li class="similar-post">
72
+ <div class="wrap"><a href="http://www.rubyinside.com/nokogiri-ruby-html-parser-and-xml-parser-1288.html"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2008/10/html-xml.png&w=140&h=100&zc=1&q=80&f=4,-10" class="similar-post-thumb" alt="html-xml.png" /></a></div>
73
+ <a href="http://www.rubyinside.com/nokogiri-ruby-html-parser-and-xml-parser-1288.html">Nokogiri: A Faster, Better HTML and XML Parser for Ruby (than Hpricot)</a></li>
74
+ <li class="similar-post">
75
+ <div class="wrap"><a href="http://www.rubyinside.com/how-to-create-your-own-programming-language-2495.html"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2009/09/createyourown.png&w=140&h=100&zc=1&q=80&f=4,-10" class="similar-post-thumb" alt="createyourown.png" /></a></div>
76
+ <a href="http://www.rubyinside.com/how-to-create-your-own-programming-language-2495.html">How To Create Your Own Programming Language (Using Ruby and/or Java)</a></li>
77
+ <li class="similar-post">
78
+ <div class="wrap"><a href="http://www.rubyinside.com/hotruby-a-javascript-flash-virtual-machine-that-runs-ruby-821.html"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2008/03/hotruby.jpg&w=140&h=100&zc=1&q=80&f=4,-10" class="similar-post-thumb" alt="hotruby.png" /></a></div>
79
+ <a href="http://www.rubyinside.com/hotruby-a-javascript-flash-virtual-machine-that-runs-ruby-821.html">HotRuby: A JavaScript &#038; Flash Virtual Machine That Runs Ruby</a></li>
80
+ <li class="similar-post">
81
+ <div class="wrap"><a href="http://www.rubyinside.com/feedzirra-a-new-ruby-feed-library-built-for-speed-1485.html"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2009/02/feedzirra.gif&w=140&h=100&zc=1&q=80&f=4,-10" class="similar-post-thumb" alt="feedzirra.gif" /></a></div>
82
+ <a href="http://www.rubyinside.com/feedzirra-a-new-ruby-feed-library-built-for-speed-1485.html">Feedzirra &#8211; A New Ruby Feed Library &#8220;Built for Speed&#8221;</a></li>
83
+ </ul></div>
84
+
85
+ <!-- You can start editing here. -->
86
+
87
+ <h3 class="comments">7 Comment Responses to &#8220;CoffeeScript: A New Language With A Pure Ruby Compiler&#8221;</h3>
88
+
89
+ <ol class="commentlist">
90
+
91
+ <li class="alt" id="comment-40461">
92
+ <div class="commentnumber" style="text-align: right;">#1<br /><div style="border: 1px solid #666; margin-top: 2px"><img alt='' src='http://www.gravatar.com/avatar/8c7ac8ba0968d27dd1cac5b973177951?s=64&amp;d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G' class='avatar avatar-64 photo' height='64' width='64' /></div></div> <cite>
93
+ sasuke</cite> Says:
94
+ <br />
95
+
96
+ <small class="commentmetadata"><a href="#comment-40461" title="">January 4th, 2010 at 11:25 pm</a> </small>
97
+
98
+ <p>really nice project. in github there is like example the rewrite of underscore,js in coffee</p>
99
+
100
+ </li>
101
+
102
+
103
+
104
+ <li class="" id="comment-40462">
105
+ <div class="commentnumber" style="text-align: right;">#2<br /><div style="border: 1px solid #666; margin-top: 2px"><img alt='' src='http://www.gravatar.com/avatar/32652ed5b8fbd2ecdb1c78e9ac567b4b?s=64&amp;d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G' class='avatar avatar-64 photo' height='64' width='64' /></div></div> <cite>
106
+ <a href='http://github.com/jashkenas' rel='external nofollow' class='url'>Jeremy Ashkenas</a></cite> Says:
107
+ <br />
108
+
109
+ <small class="commentmetadata"><a href="#comment-40462" title="">January 4th, 2010 at 11:27 pm</a> </small>
110
+
111
+ <p>For folks who'd like to see where the language is headed, I'd recommend checking out the source and running "rake gem:install" -- I'm hoping to have version 0.2.0 out soon, which includes significant whitespace, object comprehensions, better conversion of statements into expressions, and a whole host of other goodies, most of which you can read about here:</p>
112
+ <p><a href="http://github.com/jashkenas/coffee-script/issues/closed" rel="nofollow">http://github.com/jashkenas/coffee-script/issues/closed</a></p>
113
+ <p>Have fun.</p>
114
+
115
+ </li>
116
+
117
+
118
+
119
+ <li class="alt" id="comment-40465">
120
+ <div class="commentnumber" style="text-align: right;">#3<br /><div style="border: 1px solid #666; margin-top: 2px"><img alt='' src='http://www.gravatar.com/avatar/c5a134396741859dce88a85b8365ef22?s=64&amp;d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G' class='avatar avatar-64 photo' height='64' width='64' /></div></div> <cite>
121
+ <a href='http://ricroberts.com' rel='external nofollow' class='url'>Ric Roberts</a></cite> Says:
122
+ <br />
123
+
124
+ <small class="commentmetadata"><a href="#comment-40465" title="">January 5th, 2010 at 10:02 am</a> </small>
125
+
126
+ <p>Hi Peter. Good post - this looks interesting.</p>
127
+
128
+ </li>
129
+
130
+
131
+
132
+ <li class="" id="comment-40466">
133
+ <div class="commentnumber" style="text-align: right;">#4<br /><div style="border: 1px solid #666; margin-top: 2px"><img alt='' src='http://www.gravatar.com/avatar/08e412a08cdf11a3dcb0f37952c7577a?s=64&amp;d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G' class='avatar avatar-64 photo' height='64' width='64' /></div></div> <cite>
134
+ <a href='http://juvenn.github.com' rel='external nofollow' class='url'>Juvenn Woo</a></cite> Says:
135
+ <br />
136
+
137
+ <small class="commentmetadata"><a href="#comment-40466" title="">January 5th, 2010 at 11:36 am</a> </small>
138
+
139
+ <p>Seems everything in CoffeScript is an object, function is, too. Right?<br />
140
+ It's cute!</p>
141
+
142
+ </li>
143
+
144
+
145
+
146
+ <li class="alt" id="comment-40469">
147
+ <div class="commentnumber" style="text-align: right;">#5<br /><div style="border: 1px solid #666; margin-top: 2px"><img alt='' src='http://www.gravatar.com/avatar/6c469749d725177dd2837d806c769cd4?s=64&amp;d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G' class='avatar avatar-64 photo' height='64' width='64' /></div></div> <cite>
148
+ Jonas Nicklas</cite> Says:
149
+ <br />
150
+
151
+ <small class="commentmetadata"><a href="#comment-40469" title="">January 5th, 2010 at 5:59 pm</a> </small>
152
+
153
+ <p>I've created a very simple plugin for using CoffeeScript from Rails, might be useful:</p>
154
+ <p><a href="http://github.com/jnicklas/bistro_car" rel="nofollow">http://github.com/jnicklas/bistro_car</a></p>
155
+
156
+ </li>
157
+
158
+
159
+
160
+ <li class="" id="comment-40475">
161
+ <div class="commentnumber" style="text-align: right;">#6<br /><div style="border: 1px solid #666; margin-top: 2px"><img alt='' src='http://www.gravatar.com/avatar/fdfe414ffbb4a3ebf0344d45b78dc7e3?s=64&amp;d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G' class='avatar avatar-64 photo' height='64' width='64' /></div></div> <cite>
162
+ <a href='http://extralogical.net/' rel='external nofollow' class='url'>Benedict Eastaugh</a></cite> Says:
163
+ <br />
164
+
165
+ <small class="commentmetadata"><a href="#comment-40475" title="">January 6th, 2010 at 9:48 am</a> </small>
166
+
167
+ <p>Juvenn: as in JavaScript, yes, functions are objects.</p>
168
+
169
+ </li>
170
+
171
+
172
+
173
+ <li class="alt" id="comment-40476">
174
+ <div class="commentnumber" style="text-align: right;">#7<br /><div style="border: 1px solid #666; margin-top: 2px"><img alt='' src='http://www.gravatar.com/avatar/f86901feca747abbb5c6c020362ef2e7?s=64&amp;d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&amp;r=G' class='avatar avatar-64 photo' height='64' width='64' /></div></div> <cite>
175
+ <a href='http://www.continuousthinking.com' rel='external nofollow' class='url'>Zach Dennis</a></cite> Says:
176
+ <br />
177
+
178
+ <small class="commentmetadata"><a href="#comment-40476" title="">January 6th, 2010 at 6:50 pm</a> </small>
179
+
180
+ <p>This looks very interesting indeed! Very cool project Jeremy, great post Peter,</p>
181
+
182
+ </li>
183
+
184
+
185
+
186
+ </ol>
187
+
188
+
189
+
190
+
191
+ <h3 id="respond" style="font-size: 1.2em">Leave a Reply</h3>
192
+
193
+
194
+ <form action="http://www.rubyinside.com/wp-comments-post.php" method="post" id="commentform">
195
+
196
+
197
+ <p><input type="text" name="author" id="author" value="" size="22" tabindex="1" />
198
+ <label for="author"><small>Name (required)</small></label></p>
199
+
200
+ <p><input type="text" name="email" id="email" value="" size="22" tabindex="2" />
201
+ <label for="email"><small>Mail (will not be published) (required)</small></label></p>
202
+
203
+ <p><input type="text" name="url" id="url" value="" size="22" tabindex="3" />
204
+ <label for="url"><small>Website</small></label></p>
205
+
206
+
207
+ <!--<p><small><strong>XHTML:</strong> You can use these tags: &lt;a href=&quot;&quot; title=&quot;&quot;&gt; &lt;abbr title=&quot;&quot;&gt; &lt;acronym title=&quot;&quot;&gt; &lt;b&gt; &lt;blockquote cite=&quot;&quot;&gt; &lt;cite&gt; &lt;code&gt; &lt;del datetime=&quot;&quot;&gt; &lt;em&gt; &lt;i&gt; &lt;q cite=&quot;&quot;&gt; &lt;strike&gt; &lt;strong&gt; </small></p>-->
208
+
209
+ <p><textarea name="comment" id="comment" cols="40" rows="10" tabindex="4"></textarea></p>
210
+
211
+ <p><input name="submit" type="submit" id="submit" tabindex="5" value="Submit Comment" />
212
+ <input type="hidden" name="comment_post_ID" value="2921" />
213
+ </p>
214
+
215
+ </form>
216
+
217
+
218
+
219
+ <div class="navigation" style="clear: both">Previous Post: <a href="http://www.rubyinside.com/rackamole-rack-based-monitoring-for-your-ruby-web-apps-2918.html">Rackamole: Rack-Based Monitoring For Your Ruby Web Apps</a><br />Next Post: <a href="http://www.rubyinside.com/cramp-asychronous-event-driven-ruby-web-app-framework-2928.html">Cramp: Asychronous Event-Driven Ruby Web App Framework</a></div>
220
+
221
+
222
+ <div class="featured-posts"><ul class="featured-posts clearfix">
223
+ <li class="featured-post">
224
+ <div class="wrap"><a href="http://www.rubyinside.com/how-phusion-built-a-more-efficient-ruby-1-8-interpreter-2906.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2009/12/ninh-bui.png&w=148&h=100&zc=1&q=80&f=4,-10" class="featured-post-thumb" alt="ninh-bui.png" /></a></div>
225
+ <a href="http://www.rubyinside.com/how-phusion-built-a-more-efficient-ruby-1-8-interpreter-2906.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post">How Phusion Built A More Efficient Ruby 1.8 Interpreter</a></li>
226
+ <li class="featured-post">
227
+ <div class="wrap"><a href="http://www.rubyinside.com/maglev-alpha-released-2807.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2009/11/maglev.png&w=148&h=100&zc=1&q=80&f=4,-10" class="featured-post-thumb" alt="maglev.png" /></a></div>
228
+ <a href="http://www.rubyinside.com/maglev-alpha-released-2807.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post">MagLev Alpha Released: A New, Scalable Ruby Implementation</a></li>
229
+ <li class="featured-post">
230
+ <div class="wrap"><a href="http://www.rubyinside.com/heroku-gets-add-ons-serious-ruby-webapp-hosting-made-easy-2664.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2009/10/heroku.png&w=148&h=100&zc=1&q=80&f=4,-10" class="featured-post-thumb" alt="heroku.png" /></a></div>
231
+ <a href="http://www.rubyinside.com/heroku-gets-add-ons-serious-ruby-webapp-hosting-made-easy-2664.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post">Heroku Gets Add-Ons: Serious Ruby Webapp Hosting Made Easy</a></li>
232
+ <li class="featured-post">
233
+ <div class="wrap"><a href="http://www.rubyinside.com/ruby-email-library-2782.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2009/11/emailIcon.png&w=148&h=100&zc=1&q=80&f=4,-10" class="featured-post-thumb" alt="emailIcon.png" /></a></div>
234
+ <a href="http://www.rubyinside.com/ruby-email-library-2782.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post">Mail: An All New Ruby E-mail Library</a></li>
235
+ </ul></div>
236
+ </div>
237
+
238
+ <div id="sidebar">
239
+ <!-- img src="http://www.rubyinside.com/wp-content/themes/rubyinside2009/images/keepusgoing.gif" style="position: absolute; right: -85px; top: 230px;" / -->
240
+
241
+ <h3>Want More Cool Stuff?</h3>
242
+ <p class="small">For links from across the Ruby community, as well as other news, <a href="/">click here and head for our homepage!</a> Or check us out <a href="http://twitter.com/RubyInside">on Twitter</a> or subscribe to <a href="/feed/">our RSS feed.</a></p>
243
+
244
+ <h3>Our Awesome Sponsors</h3>
245
+
246
+ <div id="adzerks"><div id="adzerk1"></div><div id="adzerk2"></div><div id="adzerk3"></div><div id="adzerk4"></div><div id="adzerk5"></div><div id="adzerk6"></div><div id="adzerk7"></div><div id="adzerk8"></div><div id="breaker"></div></div>
247
+ <div style="text-align: right; font-size: 11px"><a href="/advertise" style="color: #777; font-weight: normal; text-decoration: underline">Want to advertise? Click here to learn more.</a></div><script type="text/javascript"
248
+ src="http://engine.rubyrow.net/z/1313/adzerk1_4_16_19,adzerk2_4_16_19,adzerk3_4_16_19,adzerk4_4_16_19,adzerk5_4_16_19,adzerk6_4_16_19,adzerk7_4_16_19,adzerk8_4_16_19"></script>
249
+
250
+ <h3>Top Ruby Jobs</h3>
251
+ <div class="jobszone">
252
+ <div class="job" style="padding: 3px; background-color: #ffffcc; font-size: 12px"><strong><a href="http://billmonitor.theresumator.com/apply/YU1PgK/source:RUBYINSIDE">Ruby on Rails Developer</a></strong><br />
253
+ at <strong>BillMonitor</strong> (Oxford, UK)</div>
254
+ <div id="jbb_adaptive_widget_body"></div><div id="jbb_adaptive_widget_post_a_job" style="display:none"></div>
255
+ <span class="blue"><a href="http://ruby.jobamatic.com/">View All Jobs</a> | <a href="http://www.rubyinside.com/post-a-job">Post a Job</a></span>
256
+ <script type="text/javascript">var jbb_widget_list_count = 4;var jbb_widget_domain = 'http://ruby.jobamatic.com';</script>
257
+ <script src="http://ruby.jobamatic.com/c/jbb/js/jbb_widget_adaptive.js" type="text/javascript"></script>
258
+ <script src="http://ruby.jobamatic.com/a/jbb/find-jobs-json/jbb_widget_list_jobposts" type="text/javascript"></script>
259
+ </div><!-- jobszone -->
260
+
261
+
262
+
263
+ <h3>Our Favorite Ruby Books</h3>
264
+ <div id="books">
265
+ <ul class="links">
266
+ <li><div class="image"><a href="http://beginningruby.org/"><img src="http://ecx.images-amazon.com/images/P/1430223634.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://beginningruby.org/" title="Beginning Ruby Book">Beginning Ruby</a></div><div class="description">The ideal book for beginners or developers merely new to Ruby. Goes from installation to OOP, webapps, SQL, and GUI apps.</div></li>
267
+
268
+ <li><div class="image"><a href="http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177/?tag=rubyins-20"><img src="http://ecx.images-amazon.com/images/P/0596516177.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177/?tag=rubyins-20">The Ruby Programming Language</a></div><div class="description">The definitive Ruby reference - like the K&amp;R for Ruby. At 400 pages it's concise, but broad in scope.</div></li>
269
+ <li><div class="image"><a href="http://www.amazon.com/Programming-Ruby-1-9-Pragmatic-Programmers/dp/1934356085/?tag=rubyins-20"><img src="http://ecx.images-amazon.com/images/P/1934356085.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://www.amazon.com/Programming-Ruby-1-9-Pragmatic-Programmers/dp/1934356085/?tag=rubyins-20">Programming Ruby 1.9</a></div><div class="description">Half tutorial, half reference. Considered a definitive guide to Ruby 1.9.</div></li>
270
+ <!-- li><div class="image"><a href="http://www.amazon.com/Ruby-Best-Practices-Gregory-Brown/dp/0596523009/?tag=rubyins-20"><img src="http://ecx.images-amazon.com/images/P/0596523009.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://www.amazon.com/Ruby-Best-Practices-Gregory-Brown/dp/0596523009/?tag=rubyins-20">Ruby Best Practices</a></div><div class="description">Learn how to write elegant Ruby code</div></li>
271
+ <li><div class="image"><a href="http://www.amazon.com/Design-Patterns-Ruby-Russ-Olsen/dp/0321490452/?tag=rubyins-20"><img src="http://ecx.images-amazon.com/images/P/0321490452.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://www.amazon.com/Design-Patterns-Ruby-Russ-Olsen/dp/0321490452/?tag=rubyins-20">Design Patterns in Ruby</a></div><div class="description">Learn how to implement and use design patterns in Ruby</div></li>
272
+ <li><div class="image"><a href="http://www.amazon.com/Ruby-Practice-Jeremy-McAnally/dp/1933988479/?tag=rubyins-20"><img src="http://ecx.images-amazon.com/images/P/1933988479.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://www.amazon.com/Ruby-Practice-Jeremy-McAnally/dp/1933988479/?tag=rubyins-20">Ruby In Practice</a></div><div class="description">A look at Ruby techniques you can use in your own projects</div></li -->
273
+ <li><div class="image"><a href="http://www.amazon.com/Well-Grounded-Rubyist-David-Black/dp/1933988657/?tag=rubyins-20"><img src="http://ecx.images-amazon.com/images/P/1933988657.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://www.amazon.com/Well-Grounded-Rubyist-David-Black/dp/1933988657/?tag=rubyins-20">The Well Grounded Rubyist</a></div><div class="description">A Ruby primer for more confident developers - tours some of Ruby's darker corners well.</div></li>
274
+ <li><div class="image"><a href="http://therubyway.org/"><img src="http://ecx.images-amazon.com/images/P/0672328844.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://therubyway.org/">The Ruby Way</a></div><div class="description">An essential "bible" of Ruby - a true behemoth clocking in at over 800 pages!</div></li>
275
+
276
+ </ul>
277
+ </div>
278
+
279
+ <!-- SCRIPT charset="utf-8" type="text/javascript" src="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&MarketPlace=US&ID=V20070822/US/rubins-20/8001/7aaf8f3f-f85a-429f-8d77-2304de8bbae5"> </SCRIPT> <NOSCRIPT><A HREF="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&MarketPlace=US&ID=V20070822%2FUS%2Frubins-20%2F8001%2F7aaf8f3f-f85a-429f-8d77-2304de8bbae5&Operation=NoScript">Amazon.com Widgets</A></NOSCRIPT -->
280
+
281
+ </div>
282
+ </div>
283
+
284
+ </div>
285
+
286
+
287
+
288
+ <div id="footer">
289
+
290
+ <div style="float: right; padding-top: 12px">
291
+ <ul>
292
+ <li><a href="/">Home</a></li>
293
+ <li><a href="/about">About</a></li>
294
+ <li><a href="http://ruby.jobamatic.com/">Ruby Jobs</a></li>
295
+ <li><a href="/advertise">Advertise</a></li>
296
+ <li><a href="/archives">Archives</a></li>
297
+ <li><a href="/contact">Contact</a></li>
298
+ <li><a href="http://www.rubyinside.com/feed/"><img src="http://feeds2.feedburner.com/~fc/RubyInside?bg=99CCFF&fg=444444&anim=0" align="top" alt="Feed Icon" /></a></li>
299
+ </ul>
300
+ </div>
301
+ <p>
302
+ &copy; 2009 Peter Cooper<br />Ruby Inside is a <a href="http://twitter.com/peterc" rel="nofollow">Peter Cooper</a> publication.
303
+ </p>
304
+ <p style="text-align: right; margin-top: 8px; font-size: 11px; font-family: Verdana, arial, helvetica">Powered by the NetDNA <a href="http://www.netdna.com/">Content Delivery Network</a> <a href="http://www.netdna.com/" title="NetDNA CDN Content Delivery Network"><img src="/images/netdna.png" alt="NetDNA Content Delivery Network" align="middle" style="padding-bottom: 14px" /></a></p>
305
+ </div>
306
+ </div>
307
+
308
+ <script type="text/javascript">
309
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
310
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
311
+ </script>
312
+ <script type="text/javascript">
313
+ var pageTracker = _gat._getTracker("UA-2237791-3");
314
+ pageTracker._initData();
315
+ pageTracker._trackPageview();
316
+ </script>
317
+ </body>
318
+ </html>