- Fixed
rib rack
for constant resolution.
- [more/color] Instead of using
$1
and$2
, useRegexp.last_match
. It should be the same for MRI, but seems to be working better for JRuby. Perhaps$1
and$2
is not thread local on JRuby?
- [core/multiline] Support for JRuby 9.2.0.0 is fixed
- [more/beep] It would now beep every single time when any evaluation took longer than the threshold.
- [more/color] Fix whenever the input is just
next
orbreak
- [more/bottomup_backtrace] This would no longer format backtrace twice
- [more/caller] It would now properly use the enabled plugins
- [extra/autoindent] It would now indent with
ensure
forbegin
anddef
. Thanks @MITSUBOSHI #21 and @alpaca-tc #17 - [extra/autoindent] It would now indent with
for
. Thanks @MITSUBOSHI #18 - [extra/autoindent] It would now indent with
()
and[]
. Thanks @MITSUBOSHI #20 and #19 - [extra/byebug] This is now work-in-progress.
- Removed unnecessary method definition for
puts
- Now we set trap only when the shell starts, and restore the old trap after the shell stops. This should fix some problems using anchor inside RSpec or Unicorn. They would no longer interfere with them.
- [core/multiline] Now we support backslash. See: Using backslash line continuation character results in syntax error
- We now
require 'rib/version'
from the beginning, avoid loading error under bundler. - Introduced
API#started_at
which isconfig[:started_at]
for accessing when Rib started. - Introduced
API#inspect_result
which would inspect the result. The default behaviour would just inspect the result, but if the result is not a string, emit a warning. #14 - Now all warnings would be printed after the result was printed. This would make it easier to spot warnings.
- [more/color] It would now paint warnings.
- [more/anchor] Introduced
Rib.stop_anchors
to stop all nested anchors. #13 - Fixed Rib app detection for newer RubyGems
-
Extending
Rib::Plugin
would no longer automatically also includeRib
. For compatibility concern, aconst_missing
is now defined inRib::Plugin
so that usingShell
would still refer toRib::Shell
for you, considering that this might be a common pattern:extend Rib::Plugin Shell.use(self)
Note that this would be removed in the future, so please take this chance to change it to:
extend Rib::Plugin Rib::Shell.use(self)
- [more/beep] This plugin would beep via
print "\a"
when the application was loaded and it's been too long. Configure the time viaRib.config[:beep_threshold]
, default is 5 seconds.
- Removed Ramaze direct support. Use Rack instead.
- Introduced API#format_backtrace
- Introduced API#puts
- [more/anchor] Fixed multiline support when anchoring on an object
- [more/caller] Added for showing formatted call stack
- [core/underscore] This is changed to
core/last_value
, and the API is changed toRib.last_value
andRib.last_exception
. Surely this is less intrusive and more compatible for things likeRib.anchor 42
because now literal integers are frozen and we cannot define methods on them. Also, usingRib.last_value
is surely more descriptive. Of course, being able to type_
is so much easier, but you could just add a plugin which definesdef _; Rib.last_value; end
and keep using_
for your own taste!
- Search Rib home by directories rather than config/history file.
- Respect prefix option for detecting Rib home.
- Update help message for
-n
, which won't load any config. - Change
Rib.config[:config]
toRib.config_path
. - [app/rails] Fix loading boot file when using prefix option.
- [app/auto] Fix two variable shadowing warnings.
- [core/strip_backtrace], [more/color] No longer show
./
for current path. This would be more friendly to some editors like Sublime.
- Now
rib
would accept-p
or--prefix
to allow setting where we want to load the application. This is useful when we don't want tocd
into a directory andrib auto
orrib rails
from there.
- [core/multiline] Fixed a case for JRuby 9.0.4.0.
- [extra/paging] Disable paging if
tput
is not found. - [extra/spring] Require
rib/extra/spring
in your~/.spring
to enable Rails Spring support. #11 (thanks @swrobel)
- [extra/paging] Disable paging if your terminal is nil. (e.g. on Heroku)
- [extra/paging] Disable paging if your terminal is dumb. (e.g. on Heroku)
- [more/bottomup_backtrace] A new plugin which prints the backtrace bottom-up. Ref: http://yellerapp.com/posts/2015-01-22-upside-down-stacktraces.html
- [extra/autoindent] Now
module_function
would indent correctly. - [extra/autoindent] Now
else
incase
would indent correctly. - [extra/autoindent] Fixed printing end clause twice. (performance fix)
- [extra/multiline] Fixed in some cases it's not recognized as multiline in Rubinius (rbx).
- Fixed binding. Sorry my bad.
- Fixed a regression introduced in 1.2.0. Now
rib all -e 'p 123'
should work properly. Previously -e is ignored after rib apps. - Fixed a long standing Windows issue, where
rib all
did not work because there's nowhich
on Windows. Now we fall back towhere
. - Warn on removing main method on
TOPLEVEL_BINDING
. Not sure if this would happen, but at least we could have a warning.
- [extra/paging] Properly disable paging if less or ENV['PAGER'] is not available.
-
From now on, we support project specific config file located on "./.rib/config.rb". Note that if there's a project specific config file, your home config would not be loaded at all. The history file would also be put into "./.rib/history.rb". You might want to ignore it from your repository to avoid leaking confidential information.
-
[extra/paging] Now we strip ANSI sequences before calculating if we need a pager. This should make it much more accurate.
-
Fixed a bug where it cannot properly elegantly handle errors when loading the config file.
-
[extra/paging] This plugin would try to use $PAGER and by default less to paginate for output which cannot fit in a screen.
-
[more/edit] Now by default it would pick vim if $EDITOR is not set.
-
We no longer really eval on TOPLEVEL_BINDING, but a private binding derived from TOPLEVEL_BINDING. This is due to RubyGems bin stub would actually pollute TOPLEVEL_BINDING, leaving
str
andversion
as local variables. I would like to avoid them, thus introducing this change. Please let me know if this breaks anything, thanks! -
[core/multiline] Fixed a multiline detection for Rubinius.
- [more/color] Fixed inspecting recursive array and hash.
- Fixed
rib -h
with commands don't have a description. - Added a description for
rib rack
- Further fixed a bug for displaying a BasicObject. Rib should never crash.
- Added
rib-rack
executable which could load the app in config.ru, accessible from callingapp
in the console. Also works forrib-auto
- Fixed a bug where if user input doesn't respond to
==
would crash rib.
- [core/multiline] Ruby 2.0 compatibility.
- Fixed some multiline issue with Rubinius and JRuby.
- Properly indent for multiline prompt.
- Removed ripl compatibility layer.
- Only retry 5 times upon failures. This prevents from infinite retries.
- Don't retry on quiting.
- Added a half-baked debugger support. Try it with:
require 'rib/extra/debugger'; Rib.debug
- Support for Ruby 1.8 is dropped.
- Now
Rib::Plugin
should be extended to the module, instead of included. This fits more naturally with Ruby, but not really compatible with Ruby 1.8? - [more/anchor] Fixed a bug where you run rib in top level while anchor in the other source, exit from the inner shell would break from the original call. Now you can safely exit from the inner shell and keep doing the original work.
- [app/rails] Fixed SystemStackError issue. It's because ConsoleMethods
should not pollute the Object, redefining
app
method.
-
[core/multiline] Fixed a corner case:
1/1.to_i + 1
-
[rib] Do not crash because of a loop error. Try to relaunch the shell.
- [rib-rails] Fixed sandbox mode.
- [rib-rails] Bring back
reload!
,new_session
, andapp
for Rails 3.2.0
- [more/multiline_history] Make sure values are initialized even if before_loop is called later. This helps us enable plugins on the fly.
- [rib] Keyword
quit
to exit rib is removed, preferringexit
.
- [rib] Now you exit rib with
exit
. Thanks @ayamomiji - [rib] Fixed -e, --eval binding. It should be TOPLEVEL_BINDING
-
[core/history, more/color, more/multiline_history_file, extra/autoindent] Make sure values are initialized even if before_loop is called later. This helps us enable plugins on the fly.
-
[extra/autoindent] Now it depends on history plugin as well. This is not really needed, but would help to reduce plugins ordering issue.
- [more/color] Fixed a bug for displaying
1/0
. Fixed #4, thanks @bootleq
- [more/color] Fixed Windows coloring support.
- [more/color] Properly reset ANSI sequence.
- [commands] Extract commands description under
__END__
in the commands. Please read rib-rest-core as an example. - [rib] Always show original errors if anything is wrong.
- [rib-rails] Fixed Rails3 (sandbox) and Rails2 (env) console. Thanks bootleq
- [rib-min] Fixed not being really minimum
- [rib] Now you can run it with
rib -wdIlib
, isn't it convenient? It's equivalent torib -w -d -I lib
orrib -w -d -I=lib
-
[rib-rails] So now we replicated what Rails did for its console, both for Rails 2 and Rails 3. You can now fully use
rib rails
orrib auto
asrails console
or./script/console
in respect to Rails 2 or 3. For example, it works for:rib auto production rib rails production rib auto test --debugger # remember to add ruby-debug(19)? to Gemfile rib auto test --sandbox rib rails test --debugger --sandbox
It should also make Rails 3 print SQL log to stdout. Thanks tka.
-
[rib] Calling
Rib.shell
would no longer automaticallyrequire 'rib/core'
anymore. This is too messy. We should only do this inbin/rib
. See: commit #7a97441afeecae80f5493f4e8a4a6ba3044e2c33require 'rib/more/anchor' Rib.anchor 123
Should no longer crashed... Thanks Andrew.
- [extra/autoindent] It has been greatly improved. A lot more accurate.
- [extra/autoindent] Fixed a bug when you're typing too fast upon rib launching, it might eat your input. Thanks bootleq.
-
[extra/autoindent] Autoindent plugin help you indent multiline editing. Note: This plugin is depending on readline_buffer, thus GNU Readline.
-
[ripl] After
require 'rib/ripl'
, ripl plugins should be usable for rib. -
[rib] Introduce
ENV['RIB_HOME']
to set where to store config and history. By default, it's~/.rib
now, but it would first search for existing config or history, which would first try to see~/.rib/config.rb
, and then~/.rib/history.rb
. If Rib can find anything there, thenRIB_HOME
would be set to~/.rib
, the same goes to~/.config/rib
. In short, by defaultRIB_HOME
is~/.rib
, but the old~/.config/rib
still works.
- First serious release!
- So much enhancement over ripl-rc!