loquor 0.0.2 → 0.1.0

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: 070654de10baeadaf8cdb835f456d178456077c0
4
- data.tar.gz: 0d3e50f2eabba9f9aa1e16f5b4cf56fe14cb5afe
3
+ metadata.gz: 3a39af7e6a6a26f4c1d02aa721639b84a5026964
4
+ data.tar.gz: 0d16b9dae6e9f106e894b1bfaef78d718d3fdea4
5
5
  SHA512:
6
- metadata.gz: 8a5ced6b3668a0ad27d4c00c3c7294737b593e909a3663b147565d2b628b0528912d385705a00e8419440b1f3c0b10953f0c95fec583e5d8375ec8e464ea8bbf
7
- data.tar.gz: 74d3922223e408c2a89cc5134593df7cfc2316a83d6873f968392e8a26fda795a73b15aaf3b12b6ecf21abc8d42ac3ff789c3b9556c33d1fdec79c7744635d85
6
+ metadata.gz: dfcb49a360d96307e23022159ac7001ad852ceba27e381fe37496b05397a08a9e29bbe90cc86f11443870fc0548ab39088ec31882591a04ad74995760ca44829
7
+ data.tar.gz: 8f38a9650191c8bf4c5db8fc3ee1dcc88be0226078594b8ba7e6a824602c3ea0a92ffa7fe05554396d3f3be4478fae07ef4c2261805bae865dbcbab933130675
@@ -21,6 +21,18 @@ module Loquor
21
21
  results.send(name, *args, &block)
22
22
  end
23
23
 
24
+ def find_each
25
+ page = 1
26
+ results = []
27
+ begin
28
+ results = Loquor.get("#{generate_url}&page=#{page}&per=#{per}")
29
+ results.each do |result|
30
+ yield result
31
+ end
32
+ page += 1
33
+ end while(results.size == per)
34
+ end
35
+
24
36
  private
25
37
 
26
38
  def results
@@ -1,9 +1,9 @@
1
1
  module Loquor
2
2
  module Representation
3
3
  module ClassMethods
4
- [:find, :where, :create].each do |proxy|
5
- define_method proxy do |*args|
6
- new.send proxy, *args
4
+ [:find, :find_each, :where, :create].each do |proxy|
5
+ define_method proxy do |*args, &block|
6
+ new.send proxy, *args, &block
7
7
  end
8
8
  end
9
9
  end
@@ -13,6 +13,10 @@ module Loquor
13
13
  ApiCall::Show.new(self.class.path, id).execute
14
14
  end
15
15
 
16
+ def find_each(&block)
17
+ ApiCall::Index.new(self.class.path).find_each(&block)
18
+ end
19
+
16
20
  def where(*args)
17
21
  ApiCall::Index.new(self.class.path).where(*args)
18
22
  end
@@ -1,3 +1,3 @@
1
1
  module Loquor
2
- VERSION = "0.0.2"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -68,5 +68,30 @@ module Loquor
68
68
  searcher.to_a
69
69
  assert Array, searcher.instance_variable_get("@results").class
70
70
  end
71
+
72
+ def test_find_each_calls_block_for_each_item
73
+ searcher = ApiCall::Index.new('')
74
+ Loquor.expects(:get).returns([{'id' => 8}, {'id' => 10}])
75
+
76
+ ids = []
77
+ searcher.find_each do |json|
78
+ ids << json['id']
79
+ end
80
+ assert_equal [8,10], ids
81
+ end
82
+
83
+ def test_find_each_limits_to_200
84
+ searcher = ApiCall::Index.new('http://foobar.com')
85
+ Loquor.expects(:get).with("http://foobar.com?&page=1&per=200").returns([])
86
+ searcher.find_each {}
87
+ end
88
+
89
+ def test_find_each_runs_multiple_times
90
+ searcher = ApiCall::Index.new('http://foobar.com')
91
+ results = 200.times.map{""}
92
+ Loquor.expects(:get).with("http://foobar.com?&page=1&per=200").returns(results)
93
+ Loquor.expects(:get).with("http://foobar.com?&page=2&per=200").returns([])
94
+ searcher.find_each {}
95
+ end
71
96
  end
72
97
  end
@@ -18,7 +18,7 @@ module Loquor
18
18
  def test_post_parses_request
19
19
  output = {'foo' => 'bar'}
20
20
  json = output.to_json
21
- posts = HttpAction::Post.new("", {}, {})
21
+ posts = HttpAction::Post.new("", {}, deps)
22
22
  posts.expects(signed_request: mock(execute: json))
23
23
  assert_equal output, posts.post
24
24
  end
@@ -21,6 +21,19 @@ module Loquor
21
21
  FoobarRepresentation.find(id)
22
22
  end
23
23
 
24
+ def test_find_each_should_get_correct_path
25
+ Loquor.expects(:get).with("/foobar?&page=1&per=200").returns([])
26
+ FoobarRepresentation.find_each
27
+ end
28
+
29
+ def test_find_each_should_yield_block
30
+ Loquor.expects(:get).returns([{id: 1}])
31
+ ids = []
32
+ FoobarRepresentation.find_each do |json|
33
+ ids << json['id']
34
+ end
35
+ end
36
+
24
37
  def test_where_should_get_correct_path_with_simple_path
25
38
  email = "foobar"
26
39
  Loquor.expects(:get).with("/foobar?email=#{email}")
@@ -5,8 +5,8 @@ module Loquor
5
5
 
6
6
  {
7
7
  MediaFile: "/media_files",
8
- User: "/users"
9
- GroupDiscussion: "/group_discussions"
8
+ User: "/users",
9
+ GroupDiscussion: "/group_discussions",
10
10
  GroupDiscussionPost: "/group_discussion_posts"
11
11
  }.each do |klass, path|
12
12
  define_method "test_#{klass}_set_up_correctly" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loquor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Walker