Module: PushType

Defined in:
lib/push_type/core.rb,
lib/push_type/config.rb,
lib/push_type/version.rb,
lib/push_type/presenter.rb,
lib/push_type/field_type.rb,
app/models/push_type/node.rb,
app/models/push_type/user.rb,
lib/push_type/core/engine.rb,
app/models/push_type/asset.rb,
lib/push_type/menu_builder.rb,
lib/push_type/primitives/base.rb,
app/models/push_type/structure.rb,
app/fields/push_type/date_field.rb,
app/fields/push_type/text_field.rb,
app/fields/push_type/time_field.rb,
lib/push_type/menu_builder/menu.rb,
app/fields/push_type/asset_field.rb,
app/fields/push_type/matrix_field.rb,
app/fields/push_type/number_field.rb,
app/fields/push_type/select_field.rb,
app/fields/push_type/string_field.rb,
app/fields/push_type/boolean_field.rb,
app/fields/push_type/wysiwyg_field.rb,
lib/push_type/menu_builder/helpers.rb,
app/fields/push_type/markdown_field.rb,
app/fields/push_type/relation_field.rb,
app/fields/push_type/repeater_field.rb,
app/fields/push_type/tag_list_field.rb,
lib/push_type/menu_builder/dsl/menu.rb,
lib/push_type/primitives/array_type.rb,
app/fields/push_type/structure_field.rb,
lib/push_type/menu_builder/menu_item.rb,
lib/push_type/primitives/number_type.rb,
lib/push_type/primitives/object_type.rb,
lib/push_type/primitives/string_type.rb,
app/helpers/push_type/node_url_helper.rb,
lib/push_type/primitives/boolean_type.rb,
app/helpers/push_type/media_url_helper.rb,
app/models/concerns/push_type/nestable.rb,
app/models/concerns/push_type/trashable.rb,
app/helpers/push_type/application_helper.rb,
lib/push_type/menu_builder/dsl/menu_item.rb,
lib/push_type/menu_builder/menu_renderer.rb,
app/models/concerns/push_type/presentable.rb,
app/models/concerns/push_type/publishable.rb,
app/models/concerns/push_type/templatable.rb,
app/models/concerns/push_type/unexposable.rb,
app/models/concerns/push_type/customizable.rb,
lib/generators/push_type/node/node_generator.rb,
app/controllers/concerns/push_type/filterable.rb,
lib/generators/push_type/dummy/dummy_generator.rb,
lib/generators/push_type/field/field_generator.rb,
lib/generators/push_type/install/install_generator.rb,
lib/generators/push_type/presenter/presenter_generator.rb,
lib/generators/push_type/structure/structure_generator.rb,
app/controllers/concerns/push_type/application_controller_methods.rb

Defined Under Namespace

Modules: ApplicationControllerMethods, ApplicationHelper, Config, Core, Customizable, Filterable, MediaUrlHelper, MenuBuilder, Nestable, NodeUrlHelper, Presentable, Primitives, Publishable, Templatable, Trashable, Unexposable Classes: Asset, AssetField, BooleanField, DateField, DummyGenerator, FieldGenerator, FieldType, InstallGenerator, MarkdownField, MatrixField, Node, NodeGenerator, NumberField, Presenter, PresenterGenerator, RelationField, RepeaterField, SelectField, StringField, Structure, StructureField, StructureGenerator, TagListField, TextField, TimeField, User, WysiwygField

Constant Summary collapse

VERSION =
'0.12.1'

Class Method Summary collapse

Class Method Details

.configObject



14
15
16
# File 'lib/push_type/core.rb', line 14

def config
  PushType::Config
end

.dragonfly_app_setup!Object



42
43
44
45
46
47
48
49
# File 'lib/push_type/core.rb', line 42

def dragonfly_app_setup!
  Dragonfly.app.configure do
    plugin      :imagemagick
    url_format  "/media/:job/:name"
    secret      PushType.config.dragonfly_secret
    datastore   PushType.config.dragonfly_datastore, PushType.config.dragonfly_datastore_options
  end
end


51
52
53
# File 'lib/push_type/core.rb', line 51

def menu(key, &block)
  PushType::MenuBuilder.select(key, &block)
end

.rails_enginesObject



65
66
67
# File 'lib/push_type/core.rb', line 65

def rails_engines
  @rails_engines ||= {}
end

.register_engine(mod, opts = {}) ⇒ Object



55
56
57
58
59
60
61
62
63
# File 'lib/push_type/core.rb', line 55

def register_engine(mod, opts = {})
  opts[:load_hook] ||= mod.to_s.underscore.gsub(/\//, '_').to_sym

  if opts[:mount]
    rails_engines[opts[:load_hook]] = [mod, opts[:mount]]
  end
  
  ActiveSupport.run_load_hooks(opts[:load_hook], PushType)
end

.root_nodesObject



22
23
24
# File 'lib/push_type/core.rb', line 22

def root_nodes
  subclasses_from_list(:node, config.root_nodes)
end

.setup {|config| ... } ⇒ Object

Yields:



18
19
20
# File 'lib/push_type/core.rb', line 18

def setup(&block)
  yield config if block
end

.subclasses_from_list(scope, types = nil) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/push_type/core.rb', line 30

def subclasses_from_list(scope, types = nil)
  return [] unless types
  descendants = "push_type/#{ scope }".camelcase.constantize.descendants.map { |c| c.name.underscore }
  types_array = Array.wrap(types)

  if types_array.include? :all
    descendants
  else
    descendants & types_array.map(&:to_s)
  end.sort
end

.unexposed_nodesObject



26
27
28
# File 'lib/push_type/core.rb', line 26

def unexposed_nodes
  subclasses_from_list(:node, config.unexposed_nodes)
end

.versionObject



10
11
12
# File 'lib/push_type/core.rb', line 10

def version
  PushType::VERSION
end