lib/democritus.rb in democritus-0.1.0 vs lib/democritus.rb in democritus-0.2.0
- old
+ new
@@ -1,14 +1,32 @@
require "democritus/version"
require 'democritus/class_builder'
+require 'democritus/class_builder/commands'
+require 'democritus/from_json_class_builder'
+# Compose objects by leveraging a DSL for class creation.
+# Yes, we can write code that conforms to interfaces, but in my experience, as the Ruby object ecosystem has grown, so too has the needs
+# for understanding the galaxy of objects.
module Democritus
# @api public
#
# Responsible for building a class based on atomic components.
+ #
+ # @yield [Democritus::ClassBuilder] Gives a builder to provide additional command style customizations
+ # @return Class
def self.build(&configuration_block)
builder = ClassBuilder.new
builder.customize(&configuration_block)
+ builder.generate_class
+ end
+
+ # @api public
+ #
+ # Responsible for building a class based on the given JSON object.
+ #
+ # @return Class
+ def self.build_from_json(json)
+ builder = FromJsonClassBuilder.new(json)
builder.generate_class
end
# An empty module intended to be exposed for is_a? comparisons (and ==)
#