liquid_stream 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ea6db0105ace4ed3e0e6b0a33985dd864bf61301
4
- data.tar.gz: 99c6cde0700fd17641889917f0ab31b73bb9429e
3
+ metadata.gz: 030832c0751d60e0b1ba8a20b10dd2c6c5da59bc
4
+ data.tar.gz: ccaf5b71f6f6d8cada5f15ec8fe675aca28f3d9a
5
5
  SHA512:
6
- metadata.gz: 568824a23e3a5cee379d2f902b65021e95236be679c48f070399cc8414bb84358692e9540fa196725bc87c4ebe4d717c00a29f4293d4f9970d921601d6e5bb3a
7
- data.tar.gz: 856c0fe62d1664c3c750cdbe434a9396219c61e4290898dd714cee2fa83e631c903463dff7339787b314db0d5af6bd70c767c5fbc28d703cb415c4ead52d8d29
6
+ metadata.gz: 1ba6ae8462051277b9ef97d7837f6ae92e68334b619f67301aa50fcd3fdf4dbc6a0313ef72ca398592a2b6e40168f3b5239e2335da14af712d0f82d278422b59
7
+ data.tar.gz: 92f0d41dd6b43e0158a711bc619a495c0ba1779c0db771f41b7ac0c83a7b3c77995d24f02541acef582ffbceb80fbf1c95d94c95aed11b4c186505b75b3e7ecf
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 0.0.2
2
+
3
+ Fixes issue with Utils being in the wrong place and broke loading
4
+
1
5
  # 0.0.1
2
6
 
3
7
  Initial release
data/README.md CHANGED
@@ -1,11 +1,18 @@
1
1
  # LiquidStream
2
2
 
3
- Allows chaining of Liquid objects with a clean DSL, which allows a more Ruby-like way to traverse Liquid objects. For example:
3
+ This library does two things:
4
+
5
+ 1) Allows **chaining** of Liquid objects with a clean DSL, which allows a more Ruby-like way to traverse Liquid objects. For example:
4
6
 
5
7
  {% for post in posts.published.popular do %}
6
8
  {{ post.name }}
7
9
  {% endfor %}
8
10
 
11
+ 2) Mimic accepting of arguments on drops
12
+
13
+ {{ image.resize_to["240x240#"].url }}
14
+ {{ images["23"].url }}
15
+
9
16
  [See why](https://github.com/Shopify/liquid/issues/29).
10
17
 
11
18
  ## Installation
@@ -63,7 +70,7 @@ Then, in Liquid:
63
70
 
64
71
  ### Stream Context
65
72
 
66
- LiquidStream has a notion of context too. To avoid confusion with Liquid's context, let's call it stream_context. The reason there's a stream context is so that if you have a need to share information within a chained stream, then you need to pass it as a hash. I found this useful when the I needed the streams to know about which controller it was being used:
73
+ LiquidStream has a notion of context too. To avoid confusion with Liquid's context, let's call it "stream context". The reason there's a stream context is so that if you have a need to share information within a chained stream, then you need to pass it as a hash. I found this useful when the I needed the streams to know about which controller it was being used:
67
74
 
68
75
  class PostsController < ApplicationController
69
76
  def show
@@ -80,7 +87,7 @@ LiquidStream has a notion of context too. To avoid confusion with Liquid's conte
80
87
  if controller.request.fullpath =~ /^preview/
81
88
  polymorphic_path :preview, source
82
89
  else
83
- polyorphic_path source
90
+ polymorphic_path source
84
91
  end
85
92
  end
86
93
 
@@ -92,7 +99,7 @@ LiquidStream has a notion of context too. To avoid confusion with Liquid's conte
92
99
 
93
100
  end
94
101
 
95
- It's a very specific use-case, but this allows you to render the links to other posts a different way if the person viewing is viewing the post from "/preview/posts/:id" compared to what is rendered when in "/posts/:id". If you find other uses please fork this repo and add it to this readme.
102
+ It's a very specific use-case, but this allows you to render the links to other posts a different way if the person viewing is viewing the post from `/preview/posts/:id` compared to what is rendered when in `/posts/:id`. If you find other uses please fork this repo and add it to this readme.
96
103
 
97
104
  ## Stream is a Liquid::Drop
98
105
 
@@ -102,7 +109,7 @@ A stream is a drop - with extra stuff added on to it.
102
109
 
103
110
  You may not want to expose something that will make it easy for a user to break your system. For example, let's say you have 2 million posts, then you won't want to expose all of those posts through a stream:
104
111
 
105
- posts = Post.scoped # ActiveRecord's scoped returns a lazily executed Arel. If you call #all on this, you'll get 2 million records
112
+ posts = Post.scoped # ActiveRecord's scoped returns a lazily executed Arel. If you call #all or #to_a on this, you'll get 2 million records
106
113
  posts_stream = PostsStream.new(posts)
107
114
  posts_stream.to_a # boom!
108
115
 
@@ -113,3 +120,7 @@ You may not want to expose something that will make it easy for a user to break
113
120
  3. Commit your changes (`git commit -am 'Add some feature'`)
114
121
  4. Push to the branch (`git push origin my-new-feature`)
115
122
  5. Create new Pull Request
123
+
124
+ ## Thanks
125
+
126
+ Check out the [awesome contributors](https://github.com/ramontayag/liquid_stream/graphs/contributors).
@@ -17,19 +17,9 @@ module LiquidStream
17
17
  # DefinesStreamMethod
18
18
  if block_given?
19
19
  if options.has_key?(:matching)
20
- self.send :define_method, method_name do |method_arg|
21
- instance_exec(method_arg, &block)
22
- end
20
+ self.define_method_with_block method_name, block
23
21
  else
24
- self.send :define_method, method_name do |*method_args|
25
- class_name = generate_stream_class_name method_name
26
- klass = find_or_create_stream_class class_name
27
- stream = klass.new(source, stream_context)
28
- klass.send :define_method, :before_method do |before_method_arg|
29
- stream.instance_exec(before_method_arg, &block)
30
- end
31
- stream
32
- end
22
+ self.delegate_method_with_block_to_new_stream_instance method_name, block
33
23
  end
34
24
  else
35
25
  self.send(:define_method, method_name) do |*args|
@@ -90,6 +80,26 @@ module LiquidStream
90
80
 
91
81
  private
92
82
 
83
+ def self.define_method_with_block method_name, block
84
+ self.send :define_method, method_name do |method_arg|
85
+ self.instance_exec(method_arg, &block)
86
+ end
87
+ end
88
+
89
+ def self.delegate_method_with_block_to_new_stream_instance method_name, block
90
+ self.send :define_method, method_name do |*method_args|
91
+ class_name = generate_stream_class_name method_name
92
+ stream_klass = find_or_create_stream_class class_name
93
+
94
+ stream_instance = stream_klass.new(source, stream_context)
95
+
96
+ stream_klass.send :define_method, :before_method do |before_method_arg|
97
+ stream_instance.instance_exec(before_method_arg, &block)
98
+ end
99
+ stream_instance
100
+ end
101
+ end
102
+
93
103
  def matching_stream_names_for(method_name)
94
104
  self.class.liquid_streams.select do |stream_name, data|
95
105
  match_regex = data[:options][:matching]
File without changes
@@ -1,3 +1,3 @@
1
1
  module LiquidStream
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: liquid_stream
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ramon Tayag
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-06 00:00:00.000000000 Z
11
+ date: 2013-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -125,6 +125,7 @@ files:
125
125
  - lib/liquid_stream/errors.rb
126
126
  - lib/liquid_stream/stream.rb
127
127
  - lib/liquid_stream/streams.rb
128
+ - lib/liquid_stream/utils.rb
128
129
  - lib/liquid_stream/version.rb
129
130
  - liquid_stream.gemspec
130
131
  - spec/fixtures/base.rb
@@ -141,7 +142,6 @@ files:
141
142
  - spec/integrations/allow_chaining_via_stream_spec.rb
142
143
  - spec/liquid_stream/stream_spec.rb
143
144
  - spec/liquid_stream/streams_spec.rb
144
- - spec/liquid_stream/utils.rb
145
145
  - spec/liquid_stream/utils_spec.rb
146
146
  - spec/spec_helper.rb
147
147
  - spec/support/streamer_resetter.rb
@@ -184,7 +184,6 @@ test_files:
184
184
  - spec/integrations/allow_chaining_via_stream_spec.rb
185
185
  - spec/liquid_stream/stream_spec.rb
186
186
  - spec/liquid_stream/streams_spec.rb
187
- - spec/liquid_stream/utils.rb
188
187
  - spec/liquid_stream/utils_spec.rb
189
188
  - spec/spec_helper.rb
190
189
  - spec/support/streamer_resetter.rb