Git Product home page Git Product logo

green_shoes's Introduction

Green Shoes

Let's have fun with Ruby and Shoes! :-D

ashbb

Green Shoes is a Ruby domain specific language for beautiful Desktop Applications. The Green Shoes dsl is so simple, even your pointy haired boss can understand it. The Green Shoes project is based on _why-the-lucky-stiff's Shoes, except for the following:

  • Green Shoes source code is all Ruby, so even you can contribute.
  • Green Shoes takes the Ruby DSL block-style approach, so all you have to do is write what you know: Ruby.

Examples

Here is a quick example to get the juices flowing:

require 'green_shoes'

Shoes.app( :width => 250, :height => 250 ) do
  para 'Hello, world!'
  image 'images/shoes.png'
end

There are a lot of samples here in the sample box.

Installation

Since Green Shoes is a Ruby Gem, all you need to install are:

  1. Ruby 1.9 or above
  2. Gems 1.5 or above
  3. ruby-gtk2 package 0.90.7 or above

Once you have all three requirements, you can simply install with this command:

gem install green_shoes

Documentation

Read the Manual for all sorts of shoe-like good-ness

Check the Wiki for extra documentation and details.

Please contribute to documentation whenever you can.

Bugs & Requests

See Issues for any bugs or feature requests.

Note on Patches/Pull Requests

  • (create your github account)
  • Fork the project green_shoes to your github account
  • Clone the fork to your home machine : git clone http://[email protected]/youraccount/green_shoes
  • Make your features additions or bug fix ( additions to lib/plugins or lib/ext, bug fix directly in sources)
  • Add a sampleXX.rb in sample dir (if feature addition) for a demo of your feature(s)
  • Commit your fork : git commit -a -m "..." ; git push origin master
  • Send me a pull request : on GitHub on your green_shoe fork, click 'pull request' on the head of the page

License

Copyright (c) 2010-2011 ashbb

Except:

  • hh/static/(all).png (c) 2008 why the lucky stiff
  • lib/ext/hpricot/(all) (c) 2008 why the lucky stiff
  • lib/ext/projector/(all).rb (c) 2010 MIZUTANI Tociyuki
  • lib/ext/highlighter/(all) (c) 2008 why the lucky stiff and 2011 Steve Klabnik
  • lib/plugins/(httpd.rb, systray.rb, thread.rb) (c) 2011 Regis d'Aubarede
  • samples/akatsukiface.png (c) 2010 MIZUTANI Tociyuki
  • samples/class-book.yaml (c) 2008 why the lucky stiff
  • samples/splash-hand.png (c) 2008 why the lucky stiff
  • samples/loogink.png (c) 2008 Anita Kuno
  • samples/cy.png (c) 2008 Anita Kuno
  • samples/sample54.rb (c) 2011 Regis d'Aubarede
  • samples/face-crying.png (c) 2011 Regis d'Aubarede
  • samples/face-smile-big.png (c) 2011 Regis d'Aubarede
  • static/Coolvetica.ttf (c) 1999 Ray Larabie
  • static/Lacuna.ttf (c) 2003 Glashaus, designed by Peter Hoffman
  • static/gshoes-icon.png (c) 2010 Zachary Scott
  • static/gshoes-heading-icon.png (c) 2010 Zachary Scott
  • static/code_highlighter.js (c) 2005 Dan Webb
  • static/code_highlighter_ruby.js (c) 2008 why the lucky stiff
  • static/manual.css (c) 2008 why the lucky stiff

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Credits

green_shoes's People

Contributors

ashbb avatar athom avatar cyberarm avatar glurp avatar gutenye avatar joonty avatar kotp avatar mvz avatar pragtob avatar serialhex avatar translunar avatar wvdschel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

green_shoes's Issues

undefined method `create_cairo_context'

Environment:
ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]

atk (0.20.1)
cairo (1.10.0)
gdkpixbuf (0.20.1)
glib2 (0.20.0)
gtk2 (0.20.1)
pango (0.20.1)
pkg-config (1.0.3)
rake (0.8.7)

Linux Project1201n 2.6.32-24-generic 41-Ubuntu SMP Thu Aug 19 01:12:52 UTC 2010 i686      GNU/Linux

libcairo2-dev

Steps to reproduce:
ruby shoes.rb doesn't return anything.

but

$ irb
require '/path/to/shoes.rb'
# otherwise get require error
Shoes.app width: 300, height: 300 do
  para 'Hello world!'
end

Stack trace:

/home/zak/code/green_shoes/shoes/app.rb:57:in `block in para': undefined method `create_cairo_context' for #<Gdk::Window:0x8b11ef0 ptr=0x8acb540>
from /home/zak/code/green_shoes/shoes/app.rb:39:in `call'
from /home/zak/code/green_shoes/shoes/app.rb:39:in `main'
from /home/zak/code/green_shoes/shoes/app.rb:39:in `app'
from (irb):4:in `irb_binding'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/irb/workspace.rb:80:in `eval'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/irb/workspace.rb:80:in `evaluate'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/irb/context.rb:254:in `evaluate'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/irb.rb:159:in `block (2 levels) in eval_input'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/irb.rb:273:in `signal_status'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/irb.rb:156:in `block in eval_input'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/irb/ruby-lex.rb:243:in `block (2 levels) in each_top_level_statement'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_statement'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/irb.rb:155:in `eval_input'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/irb.rb:70:in `block in start'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/irb.rb:69:in `catch'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/irb.rb:69:in `start'
from /home/zak/.rvm/rubies/ruby-1.9.2-p0/bin/irb:17:in `<main>'

Event from alert button are (sometime) fired to the element behind alert() window!

Hello,
I do not want boring you, but,
here is a old bug that can appeared furtively.

require 'green_shoes'

Shoes.app do
  flow { title "aaa" }.click { alert("aaa: move me, with the 'valid' button on the 'ccc' field, and click !") }
  flow { title "bbb" }.click { alert("bbb: move me, with the 'valid' button on the 'ccc' field, and click !") }
  flow { title "ccc" }.click { alert("You have clicked on 'ccc'") }
end

by

Stacking my flow

After discovering that installing green_shoes was wonderfully easy on Windows, I gave it a go and tried running my red_shoes application on it. The result was for the most part ok (it displayed!), but it seems that it stacks my flows, making the output rather ugly.

I've prepared a simple example which demonstrates the problem. This generates an expected, nicely organised layout on red_shoes, but is incorrectly stacked on green_shoes.

require 'green_shoes'

Shoes.app :width => 400, :height => 300, :title => 'Test_issue' do

  def render_actions
    stack :width => 130 do
      para "Choices:"
      flow :height => 35 do
        @button1 = button "Button1", :width => 1.0, :height => 35
      end
      flow :height => 35 do
        @button2 = button "Button2:", :width => 1.0, :height => 35
      end
    end
  end

  def render_status
    stack :width => 130 do
      para "Status:"
     flow :height => 35 do
        @text1 = para "Value1"
      end
      flow :height => 35 do
        @text2 = para "Value2"
      end
    end
  end

  def render
    clear do
      background rgb(50, 50, 90, 0.7)
      flow :margin => 4 do
        render_actions
        render_status
      end
    end
  end

  render
end

remove method on Image gives GTK error on STDOUT

I have a similar problem to the one described here:

http://librelist.com/browser//shoes/2011/3/3/green-shoes-error-on-stdout-when-trying-to-clear-a-flow/#7fe6a7ed1f69f7d0b9827ad90fb4808d

It happens when I attempt to remove an image:

Shoes.app :title => "Test" do
  update = File.mtime(file)
  img = image(file)

  # If image is updated, reload it.
  every(2) do
    new_time = File.mtime(file)
    unless new_time == update
      img.remove
      update  = new_time
      img     = image(file)
    end
  end
end

Still learning GTK -- tried to figure out the problem, but just don't know enough yet.

Cheers,
John

scoll slot

Hello Ashbb,

in this code , show only the button if :scroll==true
but scroll bar is there if no options !

require 'green_shoes' 
 Shoes.app do
    stack :scroll=> true do
        100.times { para "do scroll=false for scroll..." }
        button "a button"
    end
end

with green_shoes-1.0.282.gem

by,
Regis

element remove method failed in click event.

the other events like hover, release is all ok, but not click.

require 'green_shoes'

Shoes.app do
   img1 = image 'ruby2.png'
   img1.click do 
     img1.remove
   end
end
C:\Users\fanca\Documents\My Dropbox\todo>ruby img_hover_test.rb
C:/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.1.358/lib/shoes/helper_methods
.rb:288:in `block in set_cursor_type': undefined method `cursor=' for nil:NilCla
ss
         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.1.358/lib/shoes/
helper_methods.rb:285:in `each'
         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.1.358/lib/shoes/
helper_methods.rb:285:in `set_cursor_type'
         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.1.358/lib/shoes/
main.rb:100:in `block in app'
         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.1.358/lib/shoes/
main.rb:109:in `call'
         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.1.358/lib/shoes/
main.rb:109:in `main'
         from C:/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.1.358/lib/shoes/
main.rb:109:in `app'
         from img_hover_test.rb:3:in `<main>'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.1.358/lib/shoes/ruby.rb:106:in
 `exit': wrong number of arguments (1 for 0) (ArgumentError)
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/glib2-1.0.3-x86-mingw32/lib/gli
b2.rb:32:in `exit_application'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.1.358/lib/shoes/m
ain.rb:109:in `main'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.1.358/lib/shoes/m
ain.rb:109:in `app'
        from img_hover_test.rb:3:in `<main>'

C:\Users\fanca\Documents\My Dropbox\todo>

Broken link in wiki

There is a broken link in this wiki page.

Link named "Download the ruby-gtk precompiled binaries from green_shoes source found here" leads to 404.

change handler does not work for EditBox

Shoes.app(:title => "Test") do
  edit_box :text => "Test text" do
    change do
      puts "Hi!"
    end
  end
end

This gives the following error:

(irb):4:in `block (2 levels) in irb_binding': undefined method `change' for #&lt;Shoes::App:0x9bb1fe4>
 from /usr/local/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.282/lib/shoes/app.rb:285:in `block in edit_box'
 from /usr/local/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.282/lib/shoes/main.rb:105:in `call'
 from /usr/local/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.282/lib/shoes/main.rb:105:in `main'
 from /usr/local/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.282/lib/shoes/main.rb:105:in `app'

Fails on Mac 10.5 with require

Hi,
With even just a basic "require 'green_shoes'" script, a crash of some sort happens. I have reported it to the ruby People at http://bugs.ruby-lang.org/issues/5795 but thought I would also cross post here in case the issue is actually green shoes in origin. Any ideas of how to proceed would be welcome.

Thanks.

README and pull request

Hello,

Last week I work very hard to make a pull request.... not git professional

Is it possible to add this kind of text to your README :

== Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix ( addition to lib/plugins or lib/ext, buf fix direct in source)
  • Add a sampleXX.rb in sample dir - if addition)
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself in another branch so I can ignore when I pull)
  • Send me a pull request.

(this is extraction from httparty README)

NOTA: memory leaks seem disparate from long-time run of sample54.rb : memory stabilize at 40MB (!)

by

Migrate green_shoes to macruby

Since there is no easy way to get gtk native on osx, and it's apparent that macruby is the future of ruby on osx; the only logical step is to port the green_shoes api to macruby.

Speed of chipmunk decrease

In this maquette https://gist.github.com/1165270

When lines 74/75 are activate, the programe can't work a long time.

In top of file, I do some patch on chipmunk, which are ok for long-time running.
but when i append a dynamiques 'rect' and 'rect.remove', the application dead quicly.

Furthermore, I append app_delete_mouse_event() to Basic.remove :

class Shoes
class Basic def remove
@app.delete_mouse_events self
@app.canvas.remove @real unless @hided
@hided = true if self.is_a?(ShapeBase)
end
end
end

I don't kow if it is ok

by

new widgets giving error

i was playing with the code from http://librelist.com/browser//shoes/2011/6/8/creating-a-playlist/ and kept getting errors related to not finding the methods 'list_cell' and 'list_manager' turns out they were being named 'listcell' and 'listmanager' respectfully, (i have a small pull req so this is more like red shoes and acts like the former and not the latter) though that's not the problem. when i run it with the proper method names i get this:

    [~/src/serialhex/blogophone]$ ruby temp4.rb                                 *[feature/ui][ruby-1.9.2-p180@green_shoes_test] 
    /home/serialhex/.rvm/gems/ruby-1.9.2-p180@green_shoes_test/gems/green_shoes-0.236.0/lib/shoes/helper_methods.rb:48:in `set_rotate_angle': undefined method `*' for nil:NilClass (NoMethodError)
    from /home/serialhex/.rvm/gems/ruby-1.9.2-p180@green_shoes_test/gems/green_shoes-0.236.0/lib/shoes/app.rb:364:in `rect'
    from /home/serialhex/.rvm/gems/ruby-1.9.2-p180@green_shoes_test/gems/green_shoes-0.236.0/lib/shoes/widget.rb:18:in `block (2 levels) in inherited'
    from temp4.rb:6:in `initialize'
    from /home/serialhex/.rvm/gems/ruby-1.9.2-p180@green_shoes_test/gems/green_shoes-0.236.0/lib/shoes/widget.rb:11:in `new'
    from /home/serialhex/.rvm/gems/ruby-1.9.2-p180@green_shoes_test/gems/green_shoes-0.236.0/lib/shoes/widget.rb:11:in `block (2 levels) in inherited'
    from /home/serialhex/.rvm/gems/ruby-1.9.2-p180@green_shoes_test/gems/green_shoes-0.236.0/lib/shoes/widget.rb:18:in `block (2 levels) in inherited'
    from temp4.rb:20:in `block in initialize'
    from temp4.rb:19:in `each'
    from temp4.rb:19:in `initialize'
    from /home/serialhex/.rvm/gems/ruby-1.9.2-p180@green_shoes_test/gems/green_shoes-0.236.0/lib/shoes/widget.rb:11:in `new'
    from /home/serialhex/.rvm/gems/ruby-1.9.2-p180@green_shoes_test/gems/green_shoes-0.236.0/lib/shoes/widget.rb:11:in `block (2 levels) in inherited'
    from temp4.rb:30:in `block in <main>'
    from /home/serialhex/.rvm/gems/ruby-1.9.2-p180@green_shoes_test/gems/green_shoes-0.236.0/lib/shoes/main.rb:80:in `instance_eval'
    from /home/serialhex/.rvm/gems/ruby-1.9.2-p180@green_shoes_test/gems/green_shoes-0.236.0/lib/shoes/main.rb:80:in `app'
    from temp4.rb:28:in `<main>'

i'll probably take a look into it myself in a few days (or weeks), but if anyone wants to take a whack at it beforehand i'll gladly allow them to code up the patch. :D

image hover and leave behavior question

I create two images. img1 and img2.
when I switch the mouse between img1 and img2.
the hover event always happens earlier than leave event.
for example:
cursor on img1: img1 hover
move cursor from img1 to img2: img2 hover, img1 leave.
I think img1 leave should happen first, then enter the img2 hover.
i have reasonable scenario, but it is a little long,i will post if you are interested.
this example code wont expose the strange behavior.

require 'green_shoes'

Shoes.app do
   img1 = image 'ruby2.png'
   img2 = image 'ruby2.png'

   img1.hover do |s|
     puts 'img1 hover'
     s.path = 'ruby3.png'
   end
   img1.leave do |s|
     puts 'img1 leave'
     s.path = 'ruby2.png'
   end
   img2.hover do |s|
     puts 'img2 hover'
     s.path = 'ruby3.png'
   end
   img2.leave do |s|
     puts 'img2 leave'
     s.path = 'ruby2.png'
   end
end

Green Shoes Wiki

Please create the initial github wiki and I will get the pages from my [http://github.com/zacharyscott/green_shoes/wiki](green_shoes wiki) merged over.

Green Shoes fails Mac

Hello, I just tried installing green_shoes using the instructions on the github site. I managed to install all the dependencies and everything with homebrew, then the green_shoes gem, but whenever I try and run something simple like:

Shoes.app do
para 'Hello World'
end

I get this massive error - http://pastie.org/3230151

Has anyone had this problem or have any ideas what I could do?

I'm using a Macbook with Lion, Xcode 4.1 and ruby 1.9.2 with rvm.

Any help would be greatly appreciated.

Abstraction of green_shoes api from gtk

This is essentially a piece of the white shoes puzzle. An abstracted shoes api which we can spec all shoes implementations against. Since green_shoes is growing rather rapidly, and likely has the most implemented of all the colorful shoes; it's probably the best place to start the shoes api spec.

Also, as green_shoes grows it will need to under go higher level abstraction of classes in order to maintain a consistent and more intuitive object structure.

manual error...

in the green shoes manual you have:

_snip_
Now, in your blank window, type in the following:

Shoes.app do
background "#DFA"
para "Welcome to Shoes"
end

Save to your desktop as welcome.rb.
_snip_

and you tell us to run it. well, disfortunately this code dosnt work out of the box (at least for me anyway) and i needed to add a

require 'green_shoes'

line to my code. it would be truly spiffy if this wasn't a requirement, but i don't think that it's (realistically) possible without potentially breaking lots of things. if it is supposed to do that, then it doesn't work on ruby 1.9.2 p180 with the latest green_shoes (i just installed it) running on opensuse 11.4 (at least that's what i'm working with).

i haven't played with it much more than that, but i'm glad to see the fully ruby-based version of shoes is doing well!! :D keep up the good work!!
hex

Pango font_cache assert when doing parallel downloads

The following simple example works fine in original Shoes, but fails in green_shoes (Environment is Vista 64-bit, RailsInstaller, gem install green_shoes)

require 'green_shoes'

sites = %w(google amazon yahoo msn)

Shoes.app do
  stack do
    @status = {}
    sites.each do |site|
      @status[site] = para("Retrieving site #{site}...")
      download "http://www.#{site}.com" do |page|
        @status[site].text = "Ok, #{site} homepage is #{page.length} bytes long."
      end
    end
  end
end

Typically after displaying the result for the second site, it bombs with:

(eval): line 1
Pango-CRITICAL *:pango_win32_font_map_get_font_cache: assertion `font_map != NULL' failed
*

Pango:ERROR:pangowin32.c:831:pango_win32_font_finalize: assertion failed: (win32font->fontmap != NULL)

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

So something is not compatible/safe with whatever sort of threading download invokes I think.

G.

hover and leave at the same time

when I move my mouse on the picture, the console puts the message "h" and "l" endless.
seems the event hover and leave happen at the same time.
is that a bug?
if not, how to change the code to avoid this?

require 'green_shoes'

Shoes.app :width => 360 do
    flow do 
        @st=stack :width => 60, :margin_left => 100 do 
            @img = image 'ruby2.png'
        end
    end

    @img.hover do |s|
        puts 'h'
        s.path = 'ruby3.png'
    end

    @img.leave do |s|
        puts 'l'
        s.path = 'ruby2.png'
    end
end

memory leaks

Hello,

Here a little program which seem to have memory issue on windows:


require 'green_shoes'
Shoes.app do
p VERSION
p RUBY_VERSION
p Gtk::VERSION.join(".")
@st=stack
@r=("ddddd,eeee"*10).split(',')
every(0.2) {
@st.clear { ([Time.now.to_f.to_s]+@r).each { |mess| flow { para " "+mess } } }
}

end

outputs are:
"0.233.0"
"1.9.2"
"2.22.1"

by

Testing of abstracted shoes api

Once we have a more abstracted and higher level structure of the green_shoes api, out of gtk or otherwise; we need to effectively create the shoes testing spec that all shoes apps and shoes implementations can adhere to.

Rubinius Failure Log

Fetching source index for http://rubygems.org/
Installing pkg-config (1.1.2) 
Installing glib2 (1.0.0) with native extensions An exception occurred running /Users/krainboltgreene/.rvm/gems/rbx-2.0.0pre@global/bin/bundle
    ERROR: Failed to build gem native extension.

        /Users/krainboltgreene/.rvm/rubies/rbx-2.0.0pre/bin/rbx extconf.rb 
checking for GCC... yes
checking for rb_define_alloc_func() in ruby.h... no
checking for rb_block_proc() in ruby.h... no
checking for new allocation framework... yes
checking for attribute assignment... no
checking for Win32 OS... no
checking for gobject-2.0... yes
checking for gthread-2.0... yes
checking for unistd.h... yes
checking for io.h... no
checking for g_spawn_close_pid() in glib.h... yes
checking for g_thread_init() in glib.h... yes
checking for g_main_depth() in glib.h... yes
checking for g_listenv() in glib.h... yes
checking for rb_check_array_type() in ruby.h... no
checking for rb_exec_recursive() in ruby.h... no
checking for rb_errinfo() in ruby.h... no
checking for rb_sourcefile() in ruby.h... no
checking for rb_sourceline() in ruby.h... no
checking for ruby_set_current_source() in ruby.h... no
checking for rb_thread_blocking_region() in ruby.h... no
checking for ruby_native_thread_p() in ruby.h... no
checking for curr_thread in ruby.h,node.h... no
checking for rb_curr_thread in ruby.h,node.h... no
creating ruby-glib2.pc
creating glib-enum-types.c
creating glib-enum-types.h
creating Makefile

make
gcc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/rbx-2.0.0pre/18/include -I. -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DRUBY_GLIB2_COMPILATION  -fPIC -ggdb3 -O2 -fPIC -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -c glib-enum-types.c
gcc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/rbx-2.0.0pre/18/include -I. -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DRUBY_GLIB2_COMPILATION  -fPIC -ggdb3 -O2 -fPIC -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -c rbglib.c
gcc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/rbx-2.0.0pre/18/include -I. -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DRUBY_GLIB2_COMPILATION  -fPIC -ggdb3 -O2 -fPIC -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -c rbglib_bookmarkfile.c
gcc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/rbx-2.0.0pre/18/include -I. -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DRUBY_GLIB2_COMPILATION  -fPIC -ggdb3 -O2 -fPIC -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -c rbglib_completion.c
gcc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/rbx-2.0.0pre/18/include -I. -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DRUBY_GLIB2_COMPILATION  -fPIC -ggdb3 -O2 -fPIC -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -c rbglib_convert.c
gcc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/rbx-2.0.0pre/18/include -I. -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DRUBY_GLIB2_COMPILATION  -fPIC -ggdb3 -O2 -fPIC -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -c rbglib_error.c
gcc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/rbx-2.0.0pre/18/include -I. -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DRUBY_GLIB2_COMPILATION  -fPIC -ggdb3 -O2 -fPIC -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -c rbglib_fileutils.c
gcc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/rbx-2.0.0pre/18/include -I. -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DRUBY_GLIB2_COMPILATION  -fPIC -ggdb3 -O2 -fPIC -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -c rbglib_i18n.c
gcc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/rbx-2.0.0pre/18/include -I. -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DRUBY_GLIB2_COMPILATION  -fPIC -ggdb3 -O2 -fPIC -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -c rbglib_int64.c
gcc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/rbx-2.0.0pre/18/include -I. -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DRUBY_GLIB2_COMPILATION  -fPIC -ggdb3 -O2 -fPIC -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -c rbglib_iochannel.c
rbglib_iochannel.c: In function ‘ioc_puts_ary’:
rbglib_iochannel.c:693: warning: implicit declaration of function ‘rb_io_puts’
rbglib_iochannel.c: In function ‘ioc_puts’:
rbglib_iochannel.c:706: error: ‘rb_default_rs’ undeclared (first use in this function)
rbglib_iochannel.c:706: error: (Each undeclared identifier is reported only once
rbglib_iochannel.c:706: error: for each function it appears in.)
rbglib_iochannel.c:723: warning: passing argument 1 of ‘rb_protect_inspect’ from incompatible pointer type
rbglib_iochannel.c: In function ‘ioc_print’:
rbglib_iochannel.c:748: warning: implicit declaration of function ‘rb_lastline_get’
rbglib_iochannel.c:752: error: ‘rb_output_fs’ undeclared (first use in this function)
rbglib_iochannel.c:764: error: ‘rb_output_rs’ undeclared (first use in this function)
make: *** [rbglib_iochannel.o] Error 1


Gem files will remain installed in /Users/krainboltgreene/.rvm/gems/rbx-2.0.0pre@raven/gems/glib2-1.0.0 for inspection.
Results logged to /Users/krainboltgreene/.rvm/gems/rbx-2.0.0pre@raven/gems/glib2-1.0.0/ext/glib2/gem_make.out
 (Gem::Installer::ExtensionBuildError)

Backtrace:
 { } in Gem::Installer#build_extensions at /Users/krainboltgreene/.rvm/rubies
                                           /rbx-2.0.0pre/lib/rubygems
                                           /installer.rb:529
                            Array#each at kernel/bootstrap/array.rb:66
      Gem::Installer#build_extensions at /Users/krainboltgreene/.rvm/rubies
                                         /rbx-2.0.0pre/lib/rubygems
                                         /installer.rb:482
               Gem::Installer#install at /Users/krainboltgreene/.rvm/rubies
                                         /rbx-2.0.0pre/lib/rubygems
                                         /installer.rb:156
 { } in Bundler::Source::Rubygems#install at /Users/krainboltgreene/.rvm/gems
                                             /rbx-2.0.0pre@global/gems
                                             /bundler-1.0.15/lib/bundler
                                             /source.rb:101
  Bundler::RubygemsIntegration(Bundler::RubygemsIntegration::Legacy)#preserve_paths at \
          /Users/krainboltgreene/.rvm/gems/rbx-2.0.0pre@global/gems/bundler-1.0.15/lib/bundler/rubygems_integration.rb:78
    Bundler::Source::Rubygems#install at /Users/krainboltgreene/.rvm/gems
                                         /rbx-2.0.0pre@global/gems
                                         /bundler-1.0.15/lib/bundler
                                         /source.rb:91
        { } in Bundler::Installer#run at /Users/krainboltgreene/.rvm/gems
                                         /rbx-2.0.0pre@global/gems
                                         /bundler-1.0.15/lib/bundler
                                         /installer.rb:58
  Bundler::RubygemsIntegration(Bundler::RubygemsIntegration::Legacy)#with_build_args at \
          /Users/krainboltgreene/.rvm/gems/rbx-2.0.0pre@global/gems/bundler-1.0.15/lib/bundler/rubygems_integration.rb:93
        { } in Bundler::Installer#run at /Users/krainboltgreene/.rvm/gems
                                         /rbx-2.0.0pre@global/gems
                                         /bundler-1.0.15/lib/bundler
                                         /installer.rb:57
         { } in Bundler::SpecSet#each at /Users/krainboltgreene/.rvm/gems
                                         /rbx-2.0.0pre@global/gems
                                         /bundler-1.0.15/lib/bundler
                                         /spec_set.rb:12
                            Array#each at kernel/bootstrap/array.rb:66
                Bundler::SpecSet#each at /Users/krainboltgreene/.rvm/gems
                                         /rbx-2.0.0pre@global/gems
                                         /bundler-1.0.15/lib/bundler
                                         /spec_set.rb:12
               Bundler::Installer#run at /Users/krainboltgreene/.rvm/gems
                                         /rbx-2.0.0pre@global/gems
                                         /bundler-1.0.15/lib/bundler
                                         /installer.rb:49
           Bundler::Installer.install at /Users/krainboltgreene/.rvm/gems
                                         /rbx-2.0.0pre@global/gems
                                         /bundler-1.0.15/lib/bundler
                                         /installer.rb:8
                 Bundler::CLI#install at /Users/krainboltgreene/.rvm/gems
                                         /rbx-2.0.0pre@global/gems
                                         /bundler-1.0.15/lib/bundler/cli.rb:222
                       Thor::Task#run at /Users/krainboltgreene/.rvm/gems
                                         /rbx-2.0.0pre@global/gems
                                         /bundler-1.0.15/lib/bundler/vendor/thor
                                         /task.rb:22
 Thor::Invocation(Bundler::CLI)#invoke_task at /Users/krainboltgreene/.rvm/gems
                                               /rbx-2.0.0pre@global/gems
                                               /bundler-1.0.15/lib/bundler
                                               /vendor/thor/invocation.rb:118
                        Thor.dispatch at /Users/krainboltgreene/.rvm/gems
                                         /rbx-2.0.0pre@global/gems
                                         /bundler-1.0.15/lib/bundler/vendor
                                         /thor.rb:246
 Thor::Base::ClassMethods(Class)#start at /Users/krainboltgreene/.rvm/gems
                                          /rbx-2.0.0pre@global/gems
                                          /bundler-1.0.15/lib/bundler/vendor
                                          /thor/base.rb:389
                    Object#__script__ at /Users/krainboltgreene/.rvm/gems
                                         /rbx-2.0.0pre@global/gems
                                         /bundler-1.0.15/bin/bundle:13
                   Kernel(Object)#load at kernel/common/kernel.rb:730
                    Object#__script__ at /Users/krainboltgreene/.rvm/gems
                                         /rbx-2.0.0pre@global/bin/bundle:19
      Rubinius::CodeLoader#load_script at kernel/delta/codeloader.rb:65
      Rubinius::CodeLoader.load_script at kernel/delta/codeloader.rb:107
               Rubinius::Loader#script at kernel/loader.rb:590
                 Rubinius::Loader#main at kernel/loader.rb:736

Allow nil in listbox, setting text to item not in the items list.

There are times when you don't want anything from selection. To do this I have to add "nil" in item lists. It works, but I think it is not a bad idea to have a option which allows user to clear selected item. You can do this with new option :entry, but user might want to just allow nil as a selected item without allowing user to type anything. Do you think it make sense?

One more thing I think we should add to listbox is if :entry is set to true, allow user to set text value which might not be in the list items.

Once again, thanks for wonderful green_shoes and making changes to it quickly.

Doesn't work on Mac OS X Lion

I try to use homebrew to follow the instruction from https://github.com/ashbb/green_shoes/wiki/Building-Green-Shoes-on-OSX. But it doesn't work when I run Shoes.show_manual 'English'. I get the following error

LoadError: no such file to load -- /Users/samnang/.rvm/gems/ruby-1.9.2-p180@dev/gems/green_shoes-1.0.273/lib/ext/hpricot/hpricot_scan
from /Users/samnang/.rvm/gems/ruby-1.9.2-p180@dev/gems/green_shoes-1.0.273/lib/ext/hpricot.rb:20:in `require_relative'
from /Users/samnang/.rvm/gems/ruby-1.9.2-p180@dev/gems/green_shoes-1.0.273/lib/ext/hpricot.rb:20:in `<top (required)>'
from /Users/samnang/.rvm/gems/ruby-1.9.2-p180@dev/gems/green_shoes-1.0.273/lib/shoes/help.rb:6:in `<class:Manual>'
from /Users/samnang/.rvm/gems/ruby-1.9.2-p180@dev/gems/green_shoes-1.0.273/lib/shoes/help.rb:1:in `<top (required)>'
from /Users/samnang/.rvm/gems/ruby-1.9.2-p180@dev/gems/green_shoes-1.0.273/lib/shoes/manual.rb:4:in `load'
from /Users/samnang/.rvm/gems/ruby-1.9.2-p180@dev/gems/green_shoes-1.0.273/lib/shoes/manual.rb:4:in `show_manual'
from (irb):2
from /Users/samnang/.rvm/rubies/ruby-1.9.2-p180/bin/irb:16:in `<main>'

Broken options: :left, :top, :resizable

It looks like the image method definition is trying to set the top and left positions of the Image object, but it doesn't actually appear to work. Is this normal?

I also can't get :resizable => false to work on the window method. I didn't try it on app.

Loving green_shoes so far. Trying to use it to build a GUI for rubyvis / sciruby.

John

Application packager for green_shoes

Green shoes applications will need a packager to bundle up the application in either a platform specific format (exe, dmg, run), or a shoes format that will work on any system with an existing shoes installation (shy in current (red) shoes).

invalid ELF header on samples 32 and 33

Hello Ash,

I'm getting the following errors when trying to run sample 32 and33 with my green_shoes gem on linux x64:

zak@lian:~/code/green_shoes/samples$ ruby sample32.rb 
/home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/ext/chipmunk.rb:1:in `require_relative': /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/ext/chipmunk/chipmunk.so: invalid ELF header - /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/ext/chipmunk/chipmunk.so (LoadError)
from /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/ext/chipmunk.rb:1:in `<top (required)>'
from sample32.rb:5:in `block in <main>'
from /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/shoes/main.rb:65:in `instance_eval'
from /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/shoes/main.rb:65:in `app'
from sample32.rb:4:in `<main>'

and sample 33:

zak@lian:~/code/green_shoes/samples$ ruby sample33.rb 
/home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/ext/bloops.rb:1:in `require_relative': /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/ext/bloops/bloops.so: invalid ELF header - /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/ext/bloops/bloops.so
 from /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/ext/bloops.rb:1:in `<top (required)>'
 from /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/ext/bloops/songs/simpsons_theme_song_by_why.rb:2:in `<top (required)>'
 from sample33.rb:17:in `load'
 from sample33.rb:17:in `block (3 levels) in <main>'
 from /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/shoes/helper_methods.rb:137:in `call'
 from /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/shoes/helper_methods.rb:137:in `block in mouse_link_control'
 from /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/shoes/helper_methods.rb:135:in `each'
 from /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/shoes/helper_methods.rb:135:in `mouse_link_control'
 from /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/shoes/main.rb:46:in `block in app'
 from /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/shoes/main.rb:81:in `call'
 from /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/shoes/main.rb:81:in `main'
 from /home/zak/.rvm/gems/ruby-1.9.2-p0@green_shoes/gems/green_shoes-0.0.1-x86_64-linux/lib/shoes/main.rb:81:in `app'
 from sample33.rb:4:in `<main>'

Green shoes seems to conflict with ActiveRecord models

I'm trying to use SciRuby::Plotter (a Green Shoes GUI) with Rails 3.1.1. I have a method on one of my models called update!, which sends an HTTP request to get some meta info, and then applies that meta info to the object (and saves). This happens within a transaction.

(1.0ms)  BEGIN
(1.3ms)  SELECT 1 FROM "genes" WHERE ("genes"."entrez_id" = 54101 AND "genes"."id" != 177592) LIMIT 1
(24.8ms)  UPDATE "genes" SET "symbol" = 'RIPK4', "name" = 'receptor-interacting serine-threonine kinase 4', "desc" = 'The protein encoded by this gene is a serine/threonine protein kinase that interacts with protein kinase C-delta. The encoded protein can also activate NFkappaB and is required for keratinocyte differentiation. This kinase undergoes autophosphorylation. [provided by RefSeq, Jul 2008]', "updated_at" = '2011-11-16 23:20:46.130810' WHERE "genes"."id" = 177592
(1.2ms)  COMMIT
NOTICE:  there is no transaction in progress
(1.1ms)  ROLLBACK
NoMethodError: undefined method `clear' for #<Gene:0xf954c28>
from /usr/local/lib/ruby/gems/1.9.1/gems/activemodel-3.1.1/lib/active_model/attribute_methods.rb:385:in `method_missing'
from /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.1.1/lib/active_record/attribute_methods.rb:60:in `method_missing'
from /usr/local/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.309/lib/shoes/ruby.rb:155:in `each'
from /usr/local/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.309/lib/shoes/ruby.rb:155:in `clear'
from /usr/local/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.309/lib/shoes/ruby.rb:155:in `each'
from /usr/local/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.309/lib/shoes/ruby.rb:155:in `clear'
from /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:374:in `rollback_transaction_records'
from /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:230:in `rescue in transaction'

I think there must be a conflict between lib/shoes/ruby.rb's Array modification and ActiveRecord.

I will try to gather some more data.

JRuby [1.6.1] Failure Log [Cairo] [gtk2]

Didn't even get to install green_shoes :(

$ ruby -v               
jruby 1.6.1 (ruby-1.8.7-p330) (2011-04-27 f636731) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_26) [darwin-x86_64-java]
krainboltgreene on Kurtis-Rainbolt-Greenes-Mac-mini.local in ~/repo/ruby
$ gem install cairo gtk2
Building native extensions.  This could take a while...
ERROR:  Error installing cairo:
    ERROR: Failed to build gem native extension.

        /Users/krainboltgreene/.rvm/rubies/jruby-head/bin/jruby extconf.rb
WARNING: JRuby does not support native extensions or the `mkmf' library very well.
Check http://kenai.com/projects/jruby/pages/Home for alternatives.
checking for GCC... yes
checking for Win32 OS... no
checking for Mac OS X... yes
checking for cairo version (>= 1.2.0)... yes
checking for HAVE_RUBY_ST_H in ruby.h... no
checking for ruby/st.h... yes
checking for HAVE_RUBY_IO_H in ruby.h... no
checking for ruby/io.h... no
checking for rb_errinfo() in ruby.h... no
checking for enum ruby_value_type in ruby.h... no
creating Makefile

make
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DRB_CAIRO_COMPILATION -DHAVE_RUBY_ST_H  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -I/usr/X11/include/cairo -I/usr/X11/include/pixman-1 -I/usr/X11/include/freetype2 -I/usr/X11/include -I/usr/X11/include/libpng12  -arch x86_64 -c rb_cairo.c
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DRB_CAIRO_COMPILATION -DHAVE_RUBY_ST_H  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -I/usr/X11/include/cairo -I/usr/X11/include/pixman-1 -I/usr/X11/include/freetype2 -I/usr/X11/include -I/usr/X11/include/libpng12  -arch x86_64 -c rb_cairo_constants.c
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DRB_CAIRO_COMPILATION -DHAVE_RUBY_ST_H  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -I/usr/X11/include/cairo -I/usr/X11/include/pixman-1 -I/usr/X11/include/freetype2 -I/usr/X11/include -I/usr/X11/include/libpng12  -arch x86_64 -c rb_cairo_context.c
rb_cairo_context.c: In function ‘Init_cairo_context’:
rb_cairo_context.c:1558: warning: implicit declaration of function ‘rb_set_end_proc’
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DRB_CAIRO_COMPILATION -DHAVE_RUBY_ST_H  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -I/usr/X11/include/cairo -I/usr/X11/include/pixman-1 -I/usr/X11/include/freetype2 -I/usr/X11/include -I/usr/X11/include/libpng12  -arch x86_64 -c rb_cairo_device.c
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DRB_CAIRO_COMPILATION -DHAVE_RUBY_ST_H  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -I/usr/X11/include/cairo -I/usr/X11/include/pixman-1 -I/usr/X11/include/freetype2 -I/usr/X11/include -I/usr/X11/include/libpng12  -arch x86_64 -c rb_cairo_exception.c
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DRB_CAIRO_COMPILATION -DHAVE_RUBY_ST_H  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -I/usr/X11/include/cairo -I/usr/X11/include/pixman-1 -I/usr/X11/include/freetype2 -I/usr/X11/include -I/usr/X11/include/libpng12  -arch x86_64 -c rb_cairo_font_extents.c
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DRB_CAIRO_COMPILATION -DHAVE_RUBY_ST_H  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -I/usr/X11/include/cairo -I/usr/X11/include/pixman-1 -I/usr/X11/include/freetype2 -I/usr/X11/include -I/usr/X11/include/libpng12  -arch x86_64 -c rb_cairo_font_face.c
rb_cairo_font_face.c: In function ‘cr_user_font_face_init_func’:
rb_cairo_font_face.c:255: warning: implicit declaration of function ‘rb_obj_respond_to’
rb_cairo_font_face.c: In function ‘Init_cairo_font’:
rb_cairo_font_face.c:689: warning: implicit declaration of function ‘rb_attr’
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DRB_CAIRO_COMPILATION -DHAVE_RUBY_ST_H  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -I/usr/X11/include/cairo -I/usr/X11/include/pixman-1 -I/usr/X11/include/freetype2 -I/usr/X11/include -I/usr/X11/include/libpng12  -arch x86_64 -c rb_cairo_font_options.c
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DRB_CAIRO_COMPILATION -DHAVE_RUBY_ST_H  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -I/usr/X11/include/cairo -I/usr/X11/include/pixman-1 -I/usr/X11/include/freetype2 -I/usr/X11/include -I/usr/X11/include/libpng12  -arch x86_64 -c rb_cairo_glyph.c
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DRB_CAIRO_COMPILATION -DHAVE_RUBY_ST_H  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -I/usr/X11/include/cairo -I/usr/X11/include/pixman-1 -I/usr/X11/include/freetype2 -I/usr/X11/include -I/usr/X11/include/libpng12  -arch x86_64 -c rb_cairo_io.c
rb_cairo_io.c: In function ‘rb_cairo__io_func_rescue’:
rb_cairo_io.c:49: error: called object ‘rb_gv_get((const char *)(char *)"$!")’ is not a function
make: *** [rb_cairo_io.o] Error 1


Gem files will remain installed in /Users/krainboltgreene/.rvm/gems/jruby-head@raven/gems/cairo-1.10.0 for inspection.
Results logged to /Users/krainboltgreene/.rvm/gems/jruby-head@raven/gems/cairo-1.10.0/ext/cairo/gem_make.out
Building native extensions.  This could take a while...
ERROR:  Error installing gtk2:
    ERROR: Failed to build gem native extension.

        /Users/krainboltgreene/.rvm/rubies/jruby-head/bin/jruby extconf.rb
WARNING: JRuby does not support native extensions or the `mkmf' library very well.
Check http://kenai.com/projects/jruby/pages/Home for alternatives.
checking for GCC... yes
checking for rb_define_alloc_func() in ruby.h... checking for rb_block_proc() in ruby.h... checking for new allocation framework... yes
checking for attribute assignment... no
checking for Win32 OS... no
checking for gobject-2.0... yes
checking for gthread-2.0... yes
checking for unistd.h... yes
checking for io.h... no
checking for g_spawn_close_pid() in glib.h... yes
checking for g_thread_init() in glib.h... yes
checking for g_main_depth() in glib.h... yes
checking for g_listenv() in glib.h... yes
checking for rb_check_array_type() in ruby.h... checking for rb_exec_recursive() in ruby.h... no
checking for rb_errinfo() in ruby.h... no
checking for rb_sourcefile() in ruby.h... no
checking for rb_sourceline() in ruby.h... no
checking for ruby_set_current_source() in ruby.h... no
checking for rb_thread_blocking_region() in ruby.h... checking for ruby_native_thread_p() in ruby.h... no
checking for curr_thread in ruby.h,node.h... no
checking for rb_curr_thread in ruby.h,node.h... no
creating ruby-glib2.pc
creating glib-enum-types.c
creating glib-enum-types.h
creating Makefile

make
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DHAVE_RB_DEFINE_ALLOC_FUNC -DHAVE_RB_BLOCK_PROC -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DHAVE_RB_CHECK_ARRAY_TYPE -DHAVE_RB_THREAD_BLOCKING_REGION -DRUBY_GLIB2_COMPILATION  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -arch x86_64 -c glib-enum-types.c
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DHAVE_RB_DEFINE_ALLOC_FUNC -DHAVE_RB_BLOCK_PROC -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DHAVE_RB_CHECK_ARRAY_TYPE -DHAVE_RB_THREAD_BLOCKING_REGION -DRUBY_GLIB2_COMPILATION  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -arch x86_64 -c rbglib.c
rbglib.c: In function ‘rbg_string_value_ptr’:
rbglib.c:70: warning: passing argument 1 of ‘rb_string_value_ptr’ discards qualifiers from pointer target type
rbglib.c: In function ‘Init_glib2’:
rbglib.c:368: warning: overflow in implicit constant conversion
rbglib.c:385: warning: overflow in implicit constant conversion
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DHAVE_RB_DEFINE_ALLOC_FUNC -DHAVE_RB_BLOCK_PROC -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DHAVE_RB_CHECK_ARRAY_TYPE -DHAVE_RB_THREAD_BLOCKING_REGION -DRUBY_GLIB2_COMPILATION  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -arch x86_64 -c rbglib_bookmarkfile.c
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DHAVE_RB_DEFINE_ALLOC_FUNC -DHAVE_RB_BLOCK_PROC -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DHAVE_RB_CHECK_ARRAY_TYPE -DHAVE_RB_THREAD_BLOCKING_REGION -DRUBY_GLIB2_COMPILATION  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -arch x86_64 -c rbglib_completion.c
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DHAVE_RB_DEFINE_ALLOC_FUNC -DHAVE_RB_BLOCK_PROC -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DHAVE_RB_CHECK_ARRAY_TYPE -DHAVE_RB_THREAD_BLOCKING_REGION -DRUBY_GLIB2_COMPILATION  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -arch x86_64 -c rbglib_convert.c
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DHAVE_RB_DEFINE_ALLOC_FUNC -DHAVE_RB_BLOCK_PROC -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DHAVE_RB_CHECK_ARRAY_TYPE -DHAVE_RB_THREAD_BLOCKING_REGION -DRUBY_GLIB2_COMPILATION  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -arch x86_64 -c rbglib_error.c
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DHAVE_RB_DEFINE_ALLOC_FUNC -DHAVE_RB_BLOCK_PROC -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DHAVE_RB_CHECK_ARRAY_TYPE -DHAVE_RB_THREAD_BLOCKING_REGION -DRUBY_GLIB2_COMPILATION  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -arch x86_64 -c rbglib_fileutils.c
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DHAVE_RB_DEFINE_ALLOC_FUNC -DHAVE_RB_BLOCK_PROC -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DHAVE_RB_CHECK_ARRAY_TYPE -DHAVE_RB_THREAD_BLOCKING_REGION -DRUBY_GLIB2_COMPILATION  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -arch x86_64 -c rbglib_i18n.c
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DHAVE_RB_DEFINE_ALLOC_FUNC -DHAVE_RB_BLOCK_PROC -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DHAVE_RB_CHECK_ARRAY_TYPE -DHAVE_RB_THREAD_BLOCKING_REGION -DRUBY_GLIB2_COMPILATION  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -arch x86_64 -c rbglib_int64.c
cc -I. -I. -I/Users/krainboltgreene/.rvm/rubies/jruby-head/lib/native/include/ruby -I. -DHAVE_RB_DEFINE_ALLOC_FUNC -DHAVE_RB_BLOCK_PROC -DHAVE_OBJECT_ALLOCATE -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DHAVE_RB_CHECK_ARRAY_TYPE -DHAVE_RB_THREAD_BLOCKING_REGION -DRUBY_GLIB2_COMPILATION  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE        -fPIC -DTARGET_RT_MAC_CFM=0  -fno-omit-frame-pointer -fno-strict-aliasing  -fexceptions   -Wall -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include -D_REENTRANT -I/usr/local/Cellar/glib/2.28.7/include/glib-2.0 -I/usr/local/Cellar/glib/2.28.7/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/glib/2.28.7/include  -arch x86_64 -c rbglib_iochannel.c
rbglib_iochannel.c: In function ‘ioc_printf’:
rbglib_iochannel.c:676: warning: implicit declaration of function ‘rb_f_sprintf’
rbglib_iochannel.c: In function ‘ioc_puts_ary’:
rbglib_iochannel.c:693: warning: implicit declaration of function ‘rb_io_puts’
rbglib_iochannel.c: In function ‘ioc_puts’:
rbglib_iochannel.c:706: error: ‘rb_default_rs’ undeclared (first use in this function)
rbglib_iochannel.c:706: error: (Each undeclared identifier is reported only once
rbglib_iochannel.c:706: error: for each function it appears in.)
rbglib_iochannel.c:723: warning: implicit declaration of function ‘rb_protect_inspect’
rbglib_iochannel.c: In function ‘ioc_print’:
rbglib_iochannel.c:748: warning: implicit declaration of function ‘rb_lastline_get’
rbglib_iochannel.c:752: error: ‘rb_output_fs’ undeclared (first use in this function)
rbglib_iochannel.c:764: error: ‘rb_output_rs’ undeclared (first use in this function)
make: *** [rbglib_iochannel.o] Error 1


Gem files will remain installed in /Users/krainboltgreene/.rvm/gems/jruby-head@raven/gems/glib2-1.0.0 for inspection.
Results logged to /Users/krainboltgreene/.rvm/gems/jruby-head@raven/gems/glib2-1.0.0/ext/glib2/gem_make.out

GTK+ TreeView

I'd really like a data-grid-viewer widget in shoes. I've seen the sample that uses GTK::TreeView and would really like it to be formally added to the green shoes API (and made as easy to use as the rest of the API :). is this something you'd consider?

Shoes manual and book relevancy

Since green_shoes is a separate implementation of _why's original (red) shoes, there has been much work on the existing api and documentation. It's our goal to keep that documentation as relevant as possible.

Running in scite on windows shows segmentation fault

Hi Satoshi,

Not a big deal because sample apps work but I just thought that you gain some info from this.
After closing an app from it's close control I get the following listing in scite output

sample6.rb: [BUG] Segmentation fault
ruby 1.9.3p194 (2012-04-20) [i386-mingw32]

-- Control frame information -----------------------------------------------
c:0001 p:0000 s:0002 b:0002 l:000184 d:000184 TOP

-- C level backtrace information -------------------------------------------
C:\WINDOWS\system32\ntdll.dll(KiFastSystemCallRet+0x0) [0x7c90e514]
C:\WINDOWS\system32\kernel32.dll(WaitForSingleObject+0x12) [0x7c802542]
G:\RubyStack-1.9.3-0\ruby\bin\msvcrt-ruby191.dll(rb_vm_bugreport+0xf9) [0x62e5c589]
G:\RubyStack-1.9.3-0\ruby\bin\msvcrt-ruby191.dll(rb_name_err_mesg_new+0x17a) [0x62d3a7e2]
G:\RubyStack-1.9.3-0\ruby\bin\msvcrt-ruby191.dll(rb_bug+0x2f) [0x62d3b4fb]
G:\RubyStack-1.9.3-0\ruby\bin\msvcrt-ruby191.dll(rb_check_safe_str+0x1a4) [0x62dee168]
[0x004011e6]
C:\WINDOWS\system32\kernel32.dll(UnhandledExceptionFilter+0x1c7) [0x7c864209]

-- Other runtime information -----------------------------------------------

  • Loaded script: sample6.rb

  • Loaded features:

    0 enumerator.so
    1 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/enc/encdb.so
    2 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/enc/iso_8859_1.so
    3 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/enc/trans/transdb.so
    4 G:/RubyStack-1.9.3-0/ruby/lib/ruby/site_ruby/1.9.1/rubygems/defaults.rb
    5 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/rbconfig.rb
    6 G:/RubyStack-1.9.3-0/ruby/lib/ruby/site_ruby/1.9.1/rubygems/deprecate.rb
    7 G:/RubyStack-1.9.3-0/ruby/lib/ruby/site_ruby/1.9.1/rubygems/exceptions.rb
    8 G:/RubyStack-1.9.3-0/ruby/lib/ruby/site_ruby/1.9.1/rubygems/defaults/operating_system.rb
    9 G:/RubyStack-1.9.3-0/ruby/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb
    10 G:/RubyStack-1.9.3-0/ruby/lib/ruby/site_ruby/1.9.1/rubygems.rb
    11 G:/RubyStack-1.9.3-0/ruby/lib/ruby/site_ruby/1.9.1/ubygems.rb
    12 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/etc.so
    13 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/fileutils.rb
    14 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/enc/utf_16le.so
    15 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/enc/trans/utf_16_32.so
    16 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/enc/trans/single_byte.so
    17 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/tmpdir.rb
    18 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/pathname.so
    19 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/pathname.rb
    20 G:/RubyStack-1.9.3-0/ruby/lib/ruby/site_ruby/1.9.1/rubygems/version.rb
    21 G:/RubyStack-1.9.3-0/ruby/lib/ruby/site_ruby/1.9.1/rubygems/requirement.rb
    22 G:/RubyStack-1.9.3-0/ruby/lib/ruby/site_ruby/1.9.1/rubygems/platform.rb
    23 G:/RubyStack-1.9.3-0/ruby/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb
    24 G:/RubyStack-1.9.3-0/ruby/lib/ruby/site_ruby/1.9.1/rubygems/path_support.rb
    25 G:/RubyStack-1.9.3-0/ruby/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb
    26 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/color.rb
    27 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/paper.rb
    28 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/1.9/cairo.so
    29 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/constants.rb
    30 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/point.rb
    31 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/colors.rb
    32 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/papers.rb
    33 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/context/rectangle.rb
    34 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/context/triangle.rb
    35 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/context/circle.rb
    36 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/context/path.rb
    37 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/context/blur.rb
    38 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/context/color.rb
    39 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/context.rb
    40 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/device.rb
    41 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/surface.rb
    42 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/pattern.rb
    43 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/forwardable.rb
    44 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo/path.rb
    45 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/cairo-1.12.3-x86-mingw32/lib/cairo.rb
    46 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/English.rb
    47 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/thread.rb
    48 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/glib2-1.2.1-x86-mingw32/lib/glib2/deprecatable.rb
    49 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/glib2-1.2.1-x86-mingw32/lib/1.9/glib2.so
    50 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/glib2-1.2.1-x86-mingw32/lib/glib2.rb
    51 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/pango-1.2.1-x86-mingw32/lib/1.9/pango.so
    52 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/pango-1.2.1-x86-mingw32/lib/pango.rb
    53 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/gdk_pixbuf2-1.2.1-x86-mingw32/lib/1.9/gdk_pixbuf2.so
    54 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/gdk_pixbuf2-1.2.1-x86-mingw32/lib/gdk_pixbuf2.rb
    55 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/atk-1.2.1-x86-mingw32/lib/1.9/atk.so
    56 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/atk-1.2.1-x86-mingw32/lib/atk.rb
    57 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/gtk2-1.2.1-x86-mingw32/lib/1.9/gtk2.so
    58 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/gtk2-1.2.1-x86-mingw32/lib/gtk2/base.rb
    59 G:/RubyStack-1.9.3-0/ruby/lib/ruby/gems/1.9.1/gems/gtk2-1.2.1-x86-mingw32/lib/gtk2.rb
    60 G:/Github/green_shoes/lib/shoes/ruby.rb
    61 G:/Github/green_shoes/lib/shoes/helper_methods.rb
    62 G:/Github/green_shoes/lib/shoes/colors.rb
    63 G:/Github/green_shoes/lib/shoes/basic.rb
    64 G:/Github/green_shoes/lib/shoes/main.rb
    65 G:/Github/green_shoes/lib/shoes/app.rb
    66 G:/Github/green_shoes/lib/shoes/anim.rb
    67 G:/Github/green_shoes/lib/shoes/slot.rb
    68 G:/Github/green_shoes/lib/shoes/text.rb
    69 G:/Github/green_shoes/lib/shoes/mask.rb
    70 G:/Github/green_shoes/lib/shoes/widget.rb
    71 G:/Github/green_shoes/lib/shoes/url.rb
    72 G:/Github/green_shoes/lib/shoes/style.rb
    73 G:/Github/green_shoes/lib/shoes/projector.rb
    74 G:/Github/green_shoes/lib/shoes/download.rb
    75 G:/Github/green_shoes/lib/shoes/manual.rb
    76 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/find.rb
    77 G:/Github/green_shoes/lib/shoes/minitar.rb
    78 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/digest.so
    79 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/digest.rb
    80 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/digest/md5.so
    81 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/zlib.so
    82 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/syntax_error.rb
    83 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/psych.so
    84 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/stringio.so
    85 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/nodes/node.rb
    86 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/nodes/stream.rb
    87 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/nodes/document.rb
    88 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/nodes/sequence.rb
    89 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/nodes/scalar.rb
    90 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/nodes/mapping.rb
    91 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/nodes/alias.rb
    92 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/nodes.rb
    93 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/streaming.rb
    94 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/visitors/visitor.rb
    95 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/strscan.so
    96 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/scalar_scanner.rb
    97 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/visitors/to_ruby.rb
    98 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/visitors/emitter.rb
    99 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb
    100 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/json/ruby_events.rb
    101 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/visitors/json_tree.rb
    102 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/visitors/depth_first.rb
    103 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/visitors.rb
    104 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/handler.rb
    105 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/tree_builder.rb
    106 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/parser.rb
    107 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/omap.rb
    108 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/set.rb
    109 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/coder.rb
    110 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/core_ext.rb
    111 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/date_core.so
    112 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/date/format.rb
    113 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/date.rb
    114 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/deprecated.rb
    115 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/stream.rb
    116 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/json/yaml_events.rb
    117 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/json/tree_builder.rb
    118 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/json/stream.rb
    119 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych/handlers/document_stream.rb
    120 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/psych.rb
    121 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/yaml.rb
    122 G:/Github/green_shoes/lib/shoes/shy.rb
    123 G:/Github/green_shoes/lib/plugins/systray.rb
    124 G:/Github/green_shoes/lib/plugins/thread.rb
    125 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/i386-mingw32/socket.so
    126 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/socket.rb
    127 G:/RubyStack-1.9.3-0/ruby/lib/ruby/1.9.1/timeout.rb
    128 G:/Github/green_shoes/lib/plugins/httpd.rb
    129 G:/Github/green_shoes/lib/plugins/treeview.rb
    130 G:/Github/green_shoes/lib/plugins/code_box.rb
    131 G:/Github/green_shoes/lib/plugins/video.rb
    132 G:/Github/green_shoes/lib/green_shoes.rb

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

I ran that sample from my G:/Github/green_shoes/samples/sample6.rb with
require_relative '../lib/green_shoes'

If this is any help or you need more info I should have the watch set for email notify.
Thanks

Mac OS X + Green Shoes = Odd slowness

$ ruby -e "p require 'green_shoes'"
Xlib:  extension "RANDR" missing on display "/tmp/launch-TQ1yDK/org.x:0".
true

After running line 1, there's about a 15 second pause, everything slows down (5-8s response time on actions), and the output pops up. Then X11 is opened in the background, and remains open after the ruby process is done.

I somehow doubt this is the intended result from simply requiring green shoes.

uname: Darwin Kurtis-Rainbolt-Greenes-Mac-mini.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386

No gemspec: can't include gem version from git

I know we talked about the gemspec before, and I realize you can generate one after pulling Green Shoes, but here's a reason to include one in the repo. Maybe you know a better way to go about this.

I have a Gemfile (for bundler) which is setup to pull the most recent version of Green Shoes from git:

gem "green_shoes", :git => "git://github.com/ashbb/green_shoes"

But without a gemspec, it gives:

Could not find gem 'green_shoes (>= 0)' in git://github.com/ashbb/green_shoes (at master).
Source does not contain any versions of 'green_shoes (>= 0)'

The only way around this is for me to fork green shoes and give it my own repo as the git source.

John

Roadmap Ideas

Here's a list of some of the ideas for green_shoes I have that I would like to see on the Roadmap as possible features:

  • More comments in the green_shoes source
  • Further implementation of (red) shoes api into green_shoes
  • Abstraction of shoes api from gtk
  • Testing of abstracted shoes api
  • Keep original manual and "Nobody Knows Shoes" relevant
  • Migrate shoes api to macruby
  • Shoes native Builder/Installer
  • Shoes application packager

If there is anything else I missed feel free to comment and add other ideas to the list.

Object#exit() does not implement status parameter

I've run into a clash when using this gem and main, but I can see how the problem would occur in other ways.

The exit method that is defined on the Object class in green shoes does not accept a status code parameter, which Kernel#exit does accept. This means that you can only call, exit, not exit(1) or any other variant.

You could call Kernel.exit(1) directly, but gems like main or other calling code wouldn't know to do that.

A quick fix would be to allow an optional status parameter and then call the Kernel exit:

def exit(status=true)
  Gtk.main_quit
  File.delete Shoes::TMP_PNG_FILE if File.exist? Shoes::TMP_PNG_FILE
  Kernel.exit status
end

Or perhaps a better option would be to add an at_exit() block, and don't cause an effective override by specifying Object#exit():

at_exit do
  Gtk.main_quit
  File.delete Shoes::TMP_PNG_FILE if File.exist? Shoes::TMP_PNG_FILE
end

Any thoughts on this? I'd be happy to fork and do a pull request if you like.

Threading and shoes

Hello,

I appreciate very much green-shoe: Shoes beauty in a regular ruby gem.

One observation:

  • Ruby is script language with object, closure, thread, meta programation , DSL
  • Shoes use Object, closure, DSL,
  • But how use Thread (native) with shoes ?....

This is main obstacle for using shoes as perfect GUI complement to core ruby.

The solution I used is queuing :

  • Thread enqueue gui request,
  • Shoes anime() unqueue requast and execute them

not very funny...
by

Similar bug someone had 2 years ago: invalid ELF header problem

it's not just those samples (referencing #16 which sounds like it's having similar errors to what I'm having now)

Using ubuntu precise, with rvm head and latest ruby 1.9.3-p194

try gshoes -m
I get invalid elf headers for hpricot_scan.so

It is resolved with gem install hpricot, removing the binary hpricot_scan.so from lib/ext/ (along with hpricot.rb and hpricot/), building the green_shoes gem from source using rake install, and try gshoes -m again. I can now read the shoes manual through shoes. The only problem I notice is that the navigation bar on the left is slightly not tall enough. to_html overlaps the last entry. Everything looks great! But I don't hear any theme music.

I found similar win32 DLLs that were not causing me any problems in chipmunk and bloops, I could not immediately resolve bloops with rubygems, but eventually found it as bloopsaphone, there is also highlighter and projector that don't seem to have any strange binaries in them. If you can tell me what these are meant to do, I will report back whether the feature is working now or not.

I also got 'projector' from rubygems and put it in a Gemfile, took it out of lib/ext, but I could not find a gem for 'highlighter'... looking at it I guess it appears to be something you made, sounds useful!

edit_line can't convert Symbol into Integer (TypeError)

I get this error when I try to call my edit_line:

C:/Program Files/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.320/lib/shoes/helper_methods.rb:79
:in `[]': can't convert Symbol into Integer (TypeError)
        from C:/Program Files/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.320/lib/shoes/helper_
methods.rb:79:in `block in replace_string_to_float'
        from C:/Program Files/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.320/lib/shoes/helper_
methods.rb:78:in `each'
        from C:/Program Files/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.320/lib/shoes/helper_
methods.rb:78:in `replace_string_to_float'
        from C:/Program Files/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.320/lib/shoes/helper_
methods.rb:67:in `basic_attributes'
        from C:/Program Files/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.320/lib/shoes/app.rb:
263:in `edit_line'
        from green-ping.rb:7:in `ping'
        from green-ping.rb:35:in `block (2 levels) in <main>'
        from C:/Program Files/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.320/lib/shoes/slot.rb
:30:in `initialize'
        from C:/Program Files/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.320/lib/shoes/app.rb:
69:in `new'
        from C:/Program Files/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.320/lib/shoes/app.rb:
69:in `flow'
        from green-ping.rb:34:in `block in <main>'
        from C:/Program Files/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.320/lib/shoes/main.rb
:81:in `instance_eval'
        from C:/Program Files/Ruby192/lib/ruby/gems/1.9.1/gems/green_shoes-1.0.320/lib/shoes/main.rb
:81:in `app'
        from green-ping.rb:4:in `<main>'

My Program:

require "green_shoes"
require "socket"

Shoes.app title: "Server Pinger", height: 105, width: 265 do
def ping
begin
ip = edit_line "example.com"
port = edit_line "25565"
  TCPSocket.open(ip, port) {|s|
 }
 stack do
 inscription "Pinged server at:"
 inscription Time.now.strftime("%I:%M:%S %p")
 end
 flow do
 tagline "Server Status: " + fg("Online", green) + "."
 end

rescue Errno::ECONNREFUSED
stack do
 inscription "Pinged server at:"
 inscription Time.now.strftime("%I:%M:%S %p")
 end
 tagline "Server Status: " + fg("Offline", red) + "."
 end
rescue Errno::ETIMEDOUT
stack do
 inscription "Pinged server at:"
 inscription Time.now.strftime("%I:%M:%S %p")
 end
 tagline "Server Status: " + fg("Offline", red) + "."
end

pinger = flow do
 ping
end

button "check server status" do
 pinger.clear do
  ping
  end
 end
end

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.