Instiki 0.16.3: Rails 2.3.0
Instiki now runs on the Rails 2.3.0 Candidate Release. Among other improvements, this means that it now automagically selects between WEBrick and Mongrel. Just run ./instiki --daemon
This commit is contained in:
parent
43aadecc99
commit
4e14ccc74d
893 changed files with 71965 additions and 28511 deletions
|
@ -24,6 +24,8 @@ module ActiveModel
|
|||
:even => "must be even"
|
||||
}
|
||||
|
||||
##
|
||||
# :singleton-method:
|
||||
# Holds a hash with all the default error messages that can be replaced by your own copy or localizations.
|
||||
cattr_accessor :default_error_messages
|
||||
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
Dir[File.dirname(__FILE__) + "/state_machine/*.rb"].sort.each do |path|
|
||||
filename = File.basename(path)
|
||||
require "active_model/state_machine/#{filename}"
|
||||
end
|
||||
|
||||
module ActiveModel
|
||||
module StateMachine
|
||||
class InvalidTransition < Exception
|
||||
end
|
||||
|
||||
def self.included(base)
|
||||
require 'active_model/state_machine/machine'
|
||||
base.extend ClassMethods
|
||||
end
|
||||
|
||||
|
@ -35,6 +31,12 @@ module ActiveModel
|
|||
state_machines[name] ||= Machine.new(self, name)
|
||||
block ? state_machines[name].update(options, &block) : state_machines[name]
|
||||
end
|
||||
|
||||
def define_state_query_method(state_name)
|
||||
name = "#{state_name}?"
|
||||
undef_method(name) if method_defined?(name)
|
||||
class_eval "def #{name}; current_state.to_s == %(#{state_name}) end"
|
||||
end
|
||||
end
|
||||
|
||||
def current_state(name = nil, new_state = nil, persist = false)
|
||||
|
@ -63,4 +65,4 @@ module ActiveModel
|
|||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
require 'active_model/state_machine/state_transition'
|
||||
|
||||
module ActiveModel
|
||||
module StateMachine
|
||||
class Event
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
require 'active_model/state_machine/state'
|
||||
require 'active_model/state_machine/event'
|
||||
|
||||
module ActiveModel
|
||||
module StateMachine
|
||||
class Machine
|
||||
attr_accessor :initial_state, :states, :events, :state_index
|
||||
attr_writer :initial_state
|
||||
attr_accessor :states, :events, :state_index
|
||||
attr_reader :klass, :name
|
||||
|
||||
def initialize(klass, name, options = {}, &block)
|
||||
|
@ -71,4 +75,4 @@ module ActiveModel
|
|||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,11 +5,8 @@ module ActiveModel
|
|||
|
||||
def initialize(name, options = {})
|
||||
@name = name
|
||||
machine = options.delete(:machine)
|
||||
if machine
|
||||
machine.klass.send(:define_method, "#{name}?") do
|
||||
current_state.to_s == name.to_s
|
||||
end
|
||||
if machine = options.delete(:machine)
|
||||
machine.klass.define_state_query_method(name)
|
||||
end
|
||||
update(options)
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue