Sha256: 9bf6ba19186551b7cd1b98beacea7c0e839982693244a3b03e7acfd26b908062

Contents?: true

Size: 1.06 KB

Versions: 3

Compression:

Stored size: 1.06 KB

Contents

module MxitRails
  class Descriptor
    def self.descr_accessor variable
      # Custom accessor macro that will look in a parent descriptor if a value isn't found (i.e. is nil)
      attr_writer variable
      define_method "#{variable}" do
        value = instance_variable_get("@#{variable}")
        if value.nil? && !parent_descriptor.nil?
          value = parent_descriptor.send("#{variable}")
        end
        value
      end
    end

    attr_accessor :parent_descriptor

    attr_accessor :name
    attr_accessor :action
    attr_accessor :type

    descr_accessor :proceed

    attr_accessor :input
    attr_accessor :input_label

    def initialize name, action, parent=nil
      @parent_descriptor = parent
      @name = name.to_sym
      @action = action.to_sym
      @validations = []
      @steps = []
    end

    def url
      MxitRails::Router.url "#{name}/#{action}"
    end

    def view
      view = MxitRails::Router.url name
      unless step.nil?
        view += "/#{step}"
      end
      view
    end

    def form?
      type == :form
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mxit-rails-0.1.1 lib/mxit_rails/descriptor.rb
mxit-rails-0.1.0 lib/mxit_rails/descriptor.rb
mxit-rails-0.0.9 lib/mxit_rails/descriptor.rb