Sha256: 335aed25908fb2433f54c799c9b7679b11d88ce167cda5dc278e21641288b3c3
Contents?: true
Size: 1.11 KB
Versions: 3
Compression:
Stored size: 1.11 KB
Contents
class Polly::Calculation extend Forwardable include Polly::Common attr_reader :env, :context def_delegators :@env, :print, :to_s, :inspect, :pretty_inspect, :atomic_variables, :defined_variables, :undefined_variables def_delegator :@env, :values, :result def_delegator :@env, :values!, :result! meta_eval { attr_accessor :verbose } def initialize(env = {}, &block) @env = Env.new(env) @context = Context.new(@env) @context.evaluate(block) end def evaluate(inputs = {}, &block) inputs.each { |k,v| @context.var(k,v) } @context.evaluate(block) if block self end def method_missing(method, *args, &block) method.match(/^(\w+)=?$/) method_name = $1.to_sym if @env.keys.include?(method_name) method == method_name ? @env[method_name] : @context.var(method_name, args[0]) else super end end def verbose_toggle Calculation.verbose = !Calculation.verbose end # Rails compatible serialization def dump; env.to_yaml end def self.load(yml); new(YAML::load(yml)) if yml end def self.dump(obj); obj.dump if obj end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
polly-0.0.6 | lib/polly/calculation.rb |
polly-0.0.5 | lib/polly/calculation.rb |
polly-0.0.4 | lib/polly/calculation.rb |