Sha256: 2f803bdb2c1de1fbff124246f3a3ea4219e0984737638a2cd7d25aa301a023af

Contents?: true

Size: 820 Bytes

Versions: 2

Compression:

Stored size: 820 Bytes

Contents

require 'happy/extras/permissions'

module Happy
  module Extras
    class Scriptable < Happy::Controller
      def route
        Happy::Context.class_eval(load_script 'context.rb')
        run_script 'permissions.rb'
        run_script 'route.rb'
      end

      def run_script(name)
        instance_exec &get_proc_for_script(name)
      end

      def get_proc_for_script(name)
        if reload_script?(name)
          procs[name] = eval "lambda { %s }" % load_script(name)
        end
        procs[name]
      end

      def reload_script?(name)
        !procs[name] || Happy.env.development?
      end

      def load_script(name)
        file_name = File.expand_path(File.join(options[:directory], name))
        File.read(file_name)
      end

      def procs
        @procs ||= {}
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
happy-0.1.0.pre19 lib/happy/extras/scriptable.rb
happy-0.1.0.pre16 lib/happy/extras/scriptable.rb