Sha256: 28aa1a40368a732ace3b6ec35eadfb06286112e5d684b76dd7ab11918bfbac66
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
require "dry/inflector" module SimpleHdGraph class Node class RequiredFieldNotFilled < Error; end class << self # # @param names [Array] # def required(*names) @required_fields = names end end CAMELIZE_SEPARATOR = /[ ,.、。]/ def initialize @inflector = Dry::Inflector.new end # # @param struct [Hash] # def load(struct) klass = self.class required_fields = if klass.instance_variables.grep(/@required_fields/).size > 0 klass.instance_variable_get(:@required_fields) end filled = if required_fields.is_a? Array required_fields.all? { |field| if struct.has_key? field true else raise RequiredFieldNotFilled, field end } else true end @content = struct if filled end # # @param str [String] # @return [String] # def camelize(str) @inflector.camelize(@inflector.underscore(str.gsub(CAMELIZE_SEPARATOR, "_"))) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
simple-hd-graph-0.3.5 | lib/simple-hd-graph/node.rb |