Sha256: 7551f8a066b0201fa9fb70f30f7c05ed801f4da9d9c6607d7aca14563a89e4a1

Contents?: true

Size: 1.21 KB

Versions: 4

Compression:

Stored size: 1.21 KB

Contents

Resource = angular.module "Faalis.ResourceFactory", []

Resource.provider "Resources", [->

  # resources should be an array of resource factories
  @resources = undefined

  # This field will specify the main resource class
  # for current functionality. First element of
  # @resource will be used if `main_resource` was undefined
  @main_resource = undefined


  this.$get = [->

    main_resource = @main_resources || @resources[0]
    resources = @resources

    # Public injector to inject required services into
    # resources `initialize` method.

    #deps = window.STATIC_REQUIREMENTS.concat(window.dashboard_dependencies)
    #$injector = angular.injector(deps)
    $injector = angular.injector(['ng', 'Errors', 'gettext'])

    obj = {}

    for resource in resources
      unless resource.__name__?
        throw "Resource '" + resource + "' does not have a 'name'"

      unless resource.__init__?
        throw "Resource '" + resource.name + "' does not have '__init__' method."

      Faalis.$injector.invoke(resource.__init__, resource)

      obj[resource.__name__.underscore()] = resource

    obj.main_resource = ->
      return main_resource

    obj.all = ->
      return resources

    return obj
  ]
  return
]

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
faalis-1.0.0 app/assets/javascripts/faalis/dashboard/services/resource_factory.js.coffee
faalis-1.0.0.alpha4 app/assets/javascripts/faalis/dashboard/services/resource_factory.js.coffee
faalis-1.0.0.alpha3 app/assets/javascripts/faalis/dashboard/services/resource_factory.js.coffee
faalis-1.0.0.alpha2 app/assets/javascripts/faalis/dashboard/services/resource_factory.js.coffee