Module: AngularSprinkles::Mixins::Controller
- Defined in:
- lib/angular_sprinkles/mixins/controller.rb
Instance Method Summary collapse
Instance Method Details
#initialize(*args) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/angular_sprinkles/mixins/controller.rb', line 4 def initialize(*args) key_generator = KeyGenerator.new({ counter: Counter.new, cache: Cache.new }) constructor_collection = ConstructorCollection.new({ json_wrapper: JavaScript::ConstructorThis, object_wrapper: ObjectKeyWrapper }) constructor = Constructor.new({ json_wrapper: JavaScript::ConstructorWrapper, collection: constructor_collection }) @_sprinkles = Context.new({ key_generator: key_generator, constructor: constructor, constructor_collection: constructor_collection }) super end |
#ng_bindable(object) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/angular_sprinkles/mixins/controller.rb', line 29 def ng_bindable(object) object = object.to_a if object.is_a?(::ActiveRecord::Relation) object.map!(&method(:ng_bindable)) if object.is_a?(Array) key = @_sprinkles.key_generator.call(object) @_sprinkles.constructor_collection.push(object, key) ModelDecorator.new({ object: object, key: key, json_wrapper: JavaScript::BindVariable, object_wrapper: ObjectKeyWrapper }) end |
#view_context ⇒ Object
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/angular_sprinkles/mixins/controller.rb', line 42 def view_context super.tap do |context| @_sprinkles.content_yielder = ContentYielder.new({ cache: Cache.new, context: context, yield_to: JavaScript::PREFIX }) @_sprinkles.content_yielder.call(@_sprinkles.constructor) end end |