cyrax 0.2.7 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YmZkNDE0Yzk2N2ZjYWUyMDY0Y2MxNzIwNTBiZTBjODI4YTllM2MyMQ==
4
+ MDI3MGJhMmRlYWU5ZjNmNDQyNDFlNmZmODczMjQ4ZmQ5ODc3MmQ3Mg==
5
5
  data.tar.gz: !binary |-
6
- OGM5ZjRlODcxOWI0OGIzNTUyOWY0MTAwYmZlOTI3NzMwM2IzM2Q2NA==
6
+ YjZkMWRiMDlmNTQ5YmNhZDk1MjI2NThiMGFkMGIwODBhOTljYjI4Yw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZDYxODk5MWU5NTFhMzZlNmU4NDM3NzE1ZDBjZTJmY2I0MWI2MzM5NzJiNmE1
10
- YTc0YTBjZTUzYjFmMjUwZGJmNjBkOThiOTVkNjUxMDcyOWViM2YzMDk5NDUy
11
- MDlmNjhlMDg0M2Y4MmZmNmYzMDY4YjgwY2ZiMzZlNjQzNmY2MzQ=
9
+ ZTYwMWI1NTE4Y2M5NjkxMjA4OTI3ZDE4NzNjZDg4OTMxOTJlNjBkZjdiNTZl
10
+ M2Y5N2IwNmEyM2YxMmZhMTYzM2ZhMTRmMGMxMTVlYjI5OTI2MWQ0YmQ2ZjQ0
11
+ ODhmNWUzNTRlOWRjZGE3NDc3Njk2ZTA0YWRmYzEzMzQzNmE5NTk=
12
12
  data.tar.gz: !binary |-
13
- Y2RiN2E1MTNkMDFhZGVkMjc0ZjAzNjRkMTM2Y2VjM2JmZjAzYzFlMGQ0ZTNi
14
- MDM0YTM3Zjc0NDcxMzg1YjZhNWVjNjI4N2YxMjYyNjM4ODNlZjg3NjM3MzU5
15
- YTFkNjdhYmY4MmE4MWYwMmUxMzI2MzdhOTAzZGM3NTNlYWNhY2Q=
13
+ NTc0ZDhkMmIyZDkzMDBhYWQ4NzI1ODkxNGE5ZDE0MTgzNTgzNmVlMGRjZGUy
14
+ YjRmYzhlMGIwMGQzNGE0Mjk2ZWY4OGFjMThhZGVjZjIwNDc1YTU2N2UzOTFj
15
+ ODA1OGQzOTU4YTE2MWM5N2YyNzBhZWIxYmQ5MDIzNzMzZGIxMjQ=
data/lib/cyrax.rb CHANGED
@@ -9,7 +9,8 @@ require "cyrax/base_resource.rb"
9
9
  require "cyrax/base_presenter.rb"
10
10
  require "cyrax/response.rb"
11
11
  require "cyrax/callbacks.rb"
12
- require "cyrax/collection_decorator.rb"
12
+ require "cyrax/base_collection_presenter.rb"
13
+ require "cyrax/decorated_collection_presenter.rb"
13
14
  require "cyrax/decorator.rb"
14
15
 
15
16
  module Cyrax
@@ -0,0 +1,15 @@
1
+ class Cyrax::BaseCollectionPresenter
2
+ def initialize(collection, options = {})
3
+ @collection = collection
4
+ end
5
+
6
+ def fetched_collection
7
+ if collection.is_a?(ActiveRecord::Relation)
8
+ collection.to_a
9
+ elsif collection.respond_to?(:all)
10
+ collection.all
11
+ else
12
+ Array.wrap collection
13
+ end
14
+ end
15
+ end
@@ -5,7 +5,7 @@ class Cyrax::BasePresenter
5
5
  if options[:decorable] && should_decorate
6
6
  present_with_decoration(object, options)
7
7
  else
8
- object
8
+ present_without_decoration(object, options)
9
9
  end
10
10
  end
11
11
 
@@ -18,10 +18,18 @@ class Cyrax::BasePresenter
18
18
  private
19
19
 
20
20
  def present_with_decoration(object, options)
21
- if options[:present] == :collection
21
+ if options[:present] == :collection
22
22
  options[:decorator_class].decorate_collection(object)
23
23
  else
24
24
  options[:decorator_class].decorate(object)
25
25
  end
26
26
  end
27
+
28
+ def present_without_decoration(object, options)
29
+ if options[:present] == :collection
30
+ Cyrax::BaseCollectionPresenter.new(object).fetched_collection
31
+ else
32
+ object
33
+ end
34
+ end
27
35
  end
@@ -1,8 +1,8 @@
1
- class Cyrax::CollectionDecorator
2
- attr_reader :decorator_class, :collection
1
+ class Cyrax::DecoratedCollectionPresenter < Cyrax::BaseCollectionPresenter
2
+ attr_reader :decorator_class
3
3
 
4
4
  def initialize(collection, options = {})
5
- @collection = collection
5
+ super
6
6
  @decorator_class = options[:decorator_class]
7
7
  raise "Decorator class is not defined! Please define it with option :decorator_class" unless decorator_class
8
8
  end
@@ -18,16 +18,6 @@ class Cyrax::CollectionDecorator
18
18
  @decorated_collection ||= fetched_collection.map {|item| decorate_item(item)}
19
19
  end
20
20
 
21
- def fetched_collection
22
- if collection.is_a?(ActiveRecord::Relation)
23
- collection.to_a
24
- elsif collection.respond_to?(:all)
25
- collection.all
26
- else
27
- Array.wrap collection
28
- end
29
- end
30
-
31
21
  def method_missing(method, *args, &block)
32
22
  return super unless collection.respond_to?(method)
33
23
  collection.send(method, *args, &block)
@@ -31,7 +31,7 @@ class Cyrax::Decorator
31
31
  alias_method :decorate, :new
32
32
 
33
33
  def decorate_collection(resource)
34
- Cyrax::CollectionDecorator.decorate(resource, decorator_class: self)
34
+ Cyrax::DecoratedCollectionPresenter.decorate(resource, decorator_class: self)
35
35
  end
36
36
  end
37
37
  end
data/lib/cyrax/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Cyrax
2
- VERSION = "0.2.7"
2
+ VERSION = "0.2.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cyrax
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Droidlabs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-25 00:00:00.000000000 Z
11
+ date: 2013-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -73,10 +73,11 @@ extensions: []
73
73
  extra_rdoc_files: []
74
74
  files:
75
75
  - lib/cyrax/base.rb
76
+ - lib/cyrax/base_collection_presenter.rb
76
77
  - lib/cyrax/base_presenter.rb
77
78
  - lib/cyrax/base_resource.rb
78
79
  - lib/cyrax/callbacks.rb
79
- - lib/cyrax/collection_decorator.rb
80
+ - lib/cyrax/decorated_collection_presenter.rb
80
81
  - lib/cyrax/decorator.rb
81
82
  - lib/cyrax/extensions/has_callbacks.rb
82
83
  - lib/cyrax/extensions/has_decorator.rb