lib/spontaneous.rb in spontaneous-0.1.0.alpha1 vs lib/spontaneous.rb in spontaneous-0.2.0.alpha1
- old
+ new
@@ -6,174 +6,171 @@
else
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
end
+require "fileutils"
require "home_run"
require "stringex"
require "sequel"
require "yajl"
+require "logger"
-require 'logger'
-require 'fileutils'
-require 'active_support/core_ext/date_time/conversions'
-require 'active_support/core_ext/file'
+require "active_support/concern"
+require "active_support/deprecation"
+require 'active_support/core_ext/class/attribute'
+require "active_support/core_ext/hash/keys"
+require "active_support/core_ext/date_time/conversions"
+require "active_support/core_ext/array/grouping"
+require "active_support/core_ext/array/extract_options"
+require "active_support/core_ext/file"
Sequel.extension :inflector
-Dir[File.join(File.dirname(__FILE__), 'spontaneous/extensions/*.rb')].each { |file|
- require file
-}
+require 'sequel/plugins/serialization'
-require 'spontaneous/logger'
-require 'spontaneous/plugins'
-require 'spontaneous/constants'
-require 'spontaneous/errors'
-require 'spontaneous/json'
+Sequel::Plugins::Serialization.register_format(
+ :yajl,
+ lambda { |v| Yajl::Encoder.new.encode(v) },
+ lambda { |v| Yajl::Parser.new(:symbolize_keys => true).parse(v) }
+)
-Dir[File.expand_path('../spontaneous/plugins/application/*.rb', __FILE__)].each do |file|
- require file
-end
+spontaneous = File.join(File.dirname(__FILE__), "spontaneous")
+
+Dir["#{spontaneous}/extensions/*.rb"].each { |file| require file }
+
+require "spontaneous/logger"
+require "spontaneous/constants"
+require "spontaneous/errors"
+require "spontaneous/json"
+
module Spontaneous
- extend Plugins
include Constants
def self.gem_root
- @gem_root ||= File.expand_path(File.dirname(__FILE__) / '..')
+ @gem_root ||= File.expand_path(File.dirname(__FILE__) / "..")
end
def self.reload!
- Spontaneous::Schema.reload!
- Spontaneous::Loader.reload!
- Spontaneous::Schema.validate!
+ instance.reload!
end
- plugin Plugins::Application::State
- plugin Plugins::Application::Paths
- plugin Plugins::Application::Render
- plugin Plugins::Application::Facets
- plugin Plugins::Application::Serialisation
+ autoload :Config, "spontaneous/config"
+ autoload :Paths, "spontaneous/paths"
+ autoload :Facet, "spontaneous/facet"
+ autoload :Content, "spontaneous/content"
+ autoload :Page, "spontaneous/page"
+ autoload :Piece, "spontaneous/piece"
+ autoload :Box, "spontaneous/box"
+ autoload :FieldTypes, "spontaneous/field_types"
+ autoload :PagePiece, "spontaneous/page_piece"
+ autoload :Style, "spontaneous/style"
+ autoload :BoxStyle, "spontaneous/box_style"
+ autoload :Layout, "spontaneous/layout"
+ autoload :Site, "spontaneous/site"
+ autoload :State, "spontaneous/state"
+ autoload :Schema, "spontaneous/schema"
+ autoload :ImageSize, "spontaneous/image_size"
+ autoload :Rack, "spontaneous/rack"
+ autoload :Render, "spontaneous/render"
+ autoload :Media, "spontaneous/media"
+ autoload :Change, "spontaneous/change"
+ autoload :Revision, "spontaneous/revision"
+ autoload :Publishing, "spontaneous/publishing"
+ autoload :Generators, "spontaneous/generators"
+ autoload :Server, "spontaneous/server"
+ autoload :Permissions, "spontaneous/permissions"
+ autoload :ContentQuery, "spontaneous/content_query"
+ autoload :PageController, "spontaneous/page_controller"
+ autoload :Application, "spontaneous/application"
+ autoload :Search, "spontaneous/search"
+ autoload :Storage, "spontaneous/storage"
- autoload :ProxyObject, "spontaneous/proxy_object"
-
- autoload :Config, "spontaneous/config"
- autoload :Paths, "spontaneous/paths"
- autoload :Facet, "spontaneous/facet"
-
- autoload :Content, "spontaneous/content"
- autoload :Page, "spontaneous/page"
- autoload :Piece, "spontaneous/piece"
- autoload :Box, "spontaneous/box"
-
- autoload :FieldTypes, "spontaneous/field_types"
-
- autoload :PagePiece, "spontaneous/page_piece"
-
-
- autoload :Style, "spontaneous/style"
- autoload :BoxStyle, "spontaneous/box_style"
- autoload :Layout, "spontaneous/layout"
-
- autoload :Site, "spontaneous/site"
- autoload :State, "spontaneous/state"
- autoload :Schema, "spontaneous/schema"
-
- autoload :ImageSize, "spontaneous/image_size"
-
- autoload :Rack, "spontaneous/rack"
-
- autoload :Render, "spontaneous/render"
- autoload :Media, "spontaneous/media"
-
- autoload :Change, "spontaneous/change"
- autoload :Revision, "spontaneous/revision"
- autoload :Publishing, "spontaneous/publishing"
-
- autoload :Generators, "spontaneous/generators"
-
- autoload :Server, "spontaneous/server"
-
- autoload :Permissions, "spontaneous/permissions"
- autoload :ContentQuery, "spontaneous/content_query"
-
- autoload :PageController, "spontaneous/page_controller"
-
- autoload :Application, "spontaneous/application"
-
module Prototypes
- autoload :FieldPrototype, "spontaneous/prototypes/field_prototype"
- autoload :BoxPrototype, "spontaneous/prototypes/box_prototype"
- autoload :StylePrototype, "spontaneous/prototypes/style_prototype"
- autoload :LayoutPrototype, "spontaneous/prototypes/layout_prototype"
+ autoload :FieldPrototype, "spontaneous/prototypes/field_prototype"
+ autoload :BoxPrototype, "spontaneous/prototypes/box_prototype"
+ autoload :StylePrototype, "spontaneous/prototypes/style_prototype"
+ autoload :LayoutPrototype, "spontaneous/prototypes/layout_prototype"
end
module Collections
- autoload :PrototypeSet, "spontaneous/collections/prototype_set"
- autoload :ChangeSet, "spontaneous/collections/change_set"
- autoload :EntrySet, "spontaneous/collections/entry_set"
- autoload :FieldSet, "spontaneous/collections/field_set"
- autoload :BoxSet, "spontaneous/collections/box_set"
- autoload :StyleSet, "spontaneous/collections/style_set"
+ autoload :PrototypeSet, "spontaneous/collections/prototype_set"
+ autoload :ChangeSet, "spontaneous/collections/change_set"
+ autoload :EntrySet, "spontaneous/collections/entry_set"
+ autoload :FieldSet, "spontaneous/collections/field_set"
+ autoload :BoxSet, "spontaneous/collections/box_set"
+ autoload :StyleSet, "spontaneous/collections/style_set"
end
module Plugins
- autoload :Supertype, "spontaneous/plugins/supertype"
- autoload :Boxes, "spontaneous/plugins/boxes"
- autoload :Fields, "spontaneous/plugins/fields"
- autoload :Entries, "spontaneous/plugins/entries"
- autoload :Entry, "spontaneous/plugins/entry"
- autoload :Styles, "spontaneous/plugins/styles"
- autoload :Layouts, "spontaneous/plugins/layouts"
- autoload :SchemaTitle, "spontaneous/plugins/schema_title"
- autoload :SchemaId, "spontaneous/plugins/schema_id"
- autoload :Render, "spontaneous/plugins/render"
- autoload :SchemaHierarchy, "spontaneous/plugins/schema_hierarchy"
- autoload :InstanceCode, "spontaneous/plugins/instance_code"
- autoload :Paths, "spontaneous/plugins/paths"
- autoload :PageTree, "spontaneous/plugins/page_tree"
- autoload :AllowedTypes, "spontaneous/plugins/allowed_types"
- autoload :Serialisation, "spontaneous/plugins/serialisation"
- autoload :SiteMap, "spontaneous/plugins/site_map"
- autoload :PageSearch, "spontaneous/plugins/page_search"
- autoload :Media, "spontaneous/plugins/media"
- autoload :Publishing, "spontaneous/plugins/publishing"
- autoload :Aliases, "spontaneous/plugins/aliases"
- autoload :Visibility, "spontaneous/plugins/visibility"
- autoload :Prototypes, "spontaneous/plugins/prototypes"
- autoload :Permissions, "spontaneous/plugins/permissions"
- autoload :Controllers, "spontaneous/plugins/controllers"
+ autoload :Supertype, "spontaneous/plugins/supertype"
+ autoload :Boxes, "spontaneous/plugins/boxes"
+ autoload :Fields, "spontaneous/plugins/fields"
+ autoload :Entries, "spontaneous/plugins/entries"
+ autoload :Entry, "spontaneous/plugins/entry"
+ autoload :Styles, "spontaneous/plugins/styles"
+ autoload :Layouts, "spontaneous/plugins/layouts"
+ autoload :SchemaTitle, "spontaneous/plugins/schema_title"
+ autoload :SchemaId, "spontaneous/plugins/schema_id"
+ autoload :Render, "spontaneous/plugins/render"
+ autoload :SchemaHierarchy, "spontaneous/plugins/schema_hierarchy"
+ autoload :InstanceCode, "spontaneous/plugins/instance_code"
+ autoload :Paths, "spontaneous/plugins/paths"
+ autoload :PageTree, "spontaneous/plugins/page_tree"
+ autoload :AllowedTypes, "spontaneous/plugins/allowed_types"
+ autoload :Serialisation, "spontaneous/plugins/serialisation"
+ autoload :SiteMap, "spontaneous/plugins/site_map"
+ autoload :PageSearch, "spontaneous/plugins/page_search"
+ autoload :Media, "spontaneous/plugins/media"
+ autoload :Publishing, "spontaneous/plugins/publishing"
+ autoload :Aliases, "spontaneous/plugins/aliases"
+ autoload :Visibility, "spontaneous/plugins/visibility"
+ autoload :Prototypes, "spontaneous/plugins/prototypes"
+ autoload :Permissions, "spontaneous/plugins/permissions"
+ autoload :Controllers, "spontaneous/plugins/controllers"
+ module Field
+ autoload :EditorClass, "spontaneous/plugins/field/editor_class"
+ end
module Page
- autoload :Formats, "spontaneous/plugins/page/formats"
- autoload :Request, "spontaneous/plugins/page/request"
+ autoload :Formats, "spontaneous/plugins/page/formats"
+ autoload :Request, "spontaneous/plugins/page/request"
end
module Site
- autoload :Publishing, "spontaneous/plugins/site/publishing"
- autoload :Revisions, "spontaneous/plugins/site/revisions"
- autoload :Selectors, "spontaneous/plugins/site/selectors"
- autoload :Map, "spontaneous/plugins/site/map"
- autoload :Instance, "spontaneous/plugins/site/instance"
+ autoload :Publishing, "spontaneous/plugins/site/publishing"
+ autoload :Revisions, "spontaneous/plugins/site/revisions"
+ autoload :Selectors, "spontaneous/plugins/site/selectors"
+ autoload :Map, "spontaneous/plugins/site/map"
+ autoload :Instance, "spontaneous/plugins/site/instance"
+ autoload :Search, "spontaneous/plugins/site/search"
+ autoload :Features, "spontaneous/plugins/site/features"
+ autoload :Schema, "spontaneous/plugins/site/schema"
+ autoload :Level, "spontaneous/plugins/site/level"
+ autoload :Storage, "spontaneous/plugins/site/storage"
end
- end
-
- class UnknownTypeException < Exception
- def initialize(parent, type)
- super("Unknown content type '#{type}' requested in class #{parent}")
+ module Application
+ autoload :State, "spontaneous/plugins/application/state"
+ autoload :Paths, "spontaneous/plugins/application/paths"
+ autoload :Render, "spontaneous/plugins/application/render"
+ autoload :Facets, "spontaneous/plugins/application/facets"
+ autoload :Serialisation, "spontaneous/plugins/application/serialisation"
+ autoload :Features, "spontaneous/plugins/application/features"
end
end
- class UnknownStyleException < Exception
- def initialize(style_name, klass)
- super("Unknown style '#{style_name}' for class #{klass}")
- end
- end
+ include Plugins::Application::State
+ include Plugins::Application::Paths
+ include Plugins::Application::Render
+ include Plugins::Application::Facets
+ include Plugins::Application::Serialisation
+ include Plugins::Application::Features
end
-require 'spontaneous/loader'
-require 'spontaneous/version'
+require "spontaneous/loader"
+require "spontaneous/version"
Spot = S = Spontaneous unless defined?(Spot)