dolly 0.3.0 → 0.4.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: 6873b3b797dea2cca325b89ecb3ffcd317af2291
4
- data.tar.gz: 2745dc120a2a72330ccc4ab9ae4bdfa9b26f6460
3
+ metadata.gz: c8e886107b3a3b884726d4a2497e2e4cd47690bf
4
+ data.tar.gz: 9fd518c6a9b2c06ca14fbad305bb1afb2d9a8a49
5
5
  SHA512:
6
- metadata.gz: 373d7361b293776fe9c9899a450690201704b370e45f566974147786ac45a2f3d05ccb0a07426a38b58aa1226329398022097ea4a603d7882c2a151a45cb19f7
7
- data.tar.gz: 00bbf2486e20c026d439592ef5ab54468befcae5c2fef65837997cd2d5d5bf76865abc4c97b72989e5b124de67fcd9c2c1417f9258e864f2e244cbfd0a7565e5
6
+ metadata.gz: 7dbe2cc21c9cd20c9f5011fb17ddc3f64856298645ce33c25f0408ba76aa684a68351c270ca76ab29a1a797bb3a4f333afa43570531d7a205616b7e837c09193
7
+ data.tar.gz: 11c1a0face5e9722e294c6d2ae093997fad57826c8be1e22915448edffd21ca86696362d805bf3ca451719becc1e41228f7873256e4c78821393c385a78b0f5a
@@ -14,6 +14,14 @@ module Dolly
14
14
  @json = str
15
15
  end
16
16
 
17
+ def first
18
+ to_a.first
19
+ end
20
+
21
+ def last
22
+ to_a.last
23
+ end
24
+
17
25
  def map &block
18
26
  load if empty?
19
27
  @set.collect &block
data/lib/dolly/query.rb CHANGED
@@ -26,7 +26,20 @@ module Dolly
26
26
  end
27
27
 
28
28
  def all
29
- q = {startkey: [name_paramitized,nil], endkey: [name_paramitized,{}]}
29
+ build_collection startkey: [name_paramitized,nil], endkey: [name_paramitized,{}]
30
+ end
31
+
32
+ def first limit = 1
33
+ res = build_collection startkey: [name_paramitized,nil], endkey: [name_paramitized,{}], limit: limit
34
+ limit == 1 ? res.first : res
35
+ end
36
+
37
+ def last limit = 1
38
+ res = build_collection startkey: [name_paramitized,{}], endkey: [name_paramitized,nil], limit: limit, descending: true
39
+ limit == 1 ? res.first : res
40
+ end
41
+
42
+ def build_collection q
30
43
  Collection.new default_view(q).parsed_response, name.constantize
31
44
  end
32
45
 
data/lib/dolly/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Dolly
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -26,6 +26,10 @@ class DocumentTest < ActiveSupport::TestCase
26
26
  build_request [["foo_bar","1"],["foo_bar","2"]], @multi_resp
27
27
 
28
28
  FakeWeb.register_uri :get, "#{view_base_path}?startkey=%5B%22foo_bar%22%2Cnull%5D&endkey=%5B%22foo_bar%22%2C%7B%7D%5D&include_docs=true", body: @multi_resp.to_json
29
+ FakeWeb.register_uri :get, "#{view_base_path}?startkey=%5B%22foo_bar%22%2Cnull%5D&endkey=%5B%22foo_bar%22%2C%7B%7D%5D&limit=1&include_docs=true", body: view_resp.to_json
30
+ FakeWeb.register_uri :get, "#{view_base_path}?startkey=%5B%22foo_bar%22%2Cnull%5D&endkey=%5B%22foo_bar%22%2C%7B%7D%5D&limit=2&include_docs=true", body: @multi_resp.to_json
31
+ FakeWeb.register_uri :get, "#{view_base_path}?startkey=%5B%22foo_bar%22%2C%7B%7D%5D&endkey=%5B%22foo_bar%22%2Cnull%5D&limit=1&descending=true&include_docs=true", body: view_resp.to_json
32
+ FakeWeb.register_uri :get, "#{view_base_path}?startkey=%5B%22foo_bar%22%2C%7B%7D%5D&endkey=%5B%22foo_bar%22%2Cnull%5D&limit=2&descending=true&include_docs=true", body: @multi_resp.to_json
29
33
  end
30
34
 
31
35
  test 'with timestamps!' do
@@ -124,6 +128,16 @@ class DocumentTest < ActiveSupport::TestCase
124
128
  assert_equal 2, all.count
125
129
  end
126
130
 
131
+ test 'all first returns FooBar' do
132
+ first = FooBar.all.first
133
+ assert first.kind_of?(FooBar)
134
+ end
135
+
136
+ test 'all last returns FooBar' do
137
+ last = FooBar.all.last
138
+ assert last.kind_of?(FooBar)
139
+ end
140
+
127
141
  test 'all will get FooBar documents' do
128
142
  all = FooBar.all
129
143
  all.each{ |d| assert_equal true, d.kind_of?(FooBar) }
@@ -139,6 +153,26 @@ class DocumentTest < ActiveSupport::TestCase
139
153
  end
140
154
  end
141
155
 
156
+ test 'first class method returns single item' do
157
+ first = FooBar.first
158
+ assert first.kind_of?(FooBar)
159
+ end
160
+
161
+ test 'first class method returns collection' do
162
+ first_2 = FooBar.first 2
163
+ assert first_2.kind_of?(Dolly::Collection)
164
+ end
165
+
166
+ test 'last class method returns single item' do
167
+ last = FooBar.last
168
+ assert last.kind_of?(FooBar)
169
+ end
170
+
171
+ test 'last class method returns collection' do
172
+ last_2 = FooBar.last 2
173
+ assert last_2.kind_of?(Dolly::Collection)
174
+ end
175
+
142
176
  private
143
177
  def build_view_response properties
144
178
  rows = properties.map.with_index do |v, i|
@@ -18736,3 +18736,126 @@ DocumentTest: test_with_default_will_return_default_value_on_nil
18736
18736
  -----------------------------------
18737
18737
  DocumentTest: test_with_timestamps!
18738
18738
  -----------------------------------
18739
+ -------------------------------------------
18740
+ DocumentTest: test_all_first_returns_FooBar
18741
+ -------------------------------------------
18742
+ ------------------------------------------
18743
+ DocumentTest: test_all_last_returns_FooBar
18744
+ ------------------------------------------
18745
+ --------------------------------------
18746
+ DocumentTest: test_all_will_get_2_docs
18747
+ --------------------------------------
18748
+ ------------------------------------------------
18749
+ DocumentTest: test_all_will_get_FooBar_documents
18750
+ ------------------------------------------------
18751
+ ----------------------------------------------
18752
+ DocumentTest: test_default_will_be_avoerwriten
18753
+ ----------------------------------------------
18754
+ ------------------------------------------------
18755
+ DocumentTest: test_empty_find_should_raise_error
18756
+ ------------------------------------------------
18757
+ ------------------------------------------------------------
18758
+ DocumentTest: test_error_on_server_raises_Dolly::ServerError
18759
+ ------------------------------------------------------------
18760
+ --------------------------------------------------
18761
+ DocumentTest: test_find_will_get_a_FooBar_document
18762
+ --------------------------------------------------
18763
+ ----------------------------------------------------------------
18764
+ DocumentTest: test_find_with_multiple_ids_will_return_Collection
18765
+ ----------------------------------------------------------------
18766
+ --------------------------------------------------------
18767
+ DocumentTest: test_first_class_method_returns_collection
18768
+ --------------------------------------------------------
18769
+ ---------------------------------------------------------
18770
+ DocumentTest: test_first_class_method_returns_single_item
18771
+ ---------------------------------------------------------
18772
+ ---------------------------------------------
18773
+ DocumentTest: test_getting_not_found_document
18774
+ ---------------------------------------------
18775
+ -------------------------------------------------------
18776
+ DocumentTest: test_last_class_method_returns_collection
18777
+ -------------------------------------------------------
18778
+ --------------------------------------------------------
18779
+ DocumentTest: test_last_class_method_returns_single_item
18780
+ --------------------------------------------------------
18781
+ -------------------------------------------------
18782
+ DocumentTest: test_multi_response_with_right_data
18783
+ -------------------------------------------------
18784
+ -------------------------------------------
18785
+ DocumentTest: test_will_have_key_properties
18786
+ -------------------------------------------
18787
+ --------------------------------------------------------
18788
+ DocumentTest: test_will_have_object_with_boolean?_method
18789
+ --------------------------------------------------------
18790
+ ------------------------------------------------
18791
+ DocumentTest: test_will_have_only_set_properties
18792
+ ------------------------------------------------
18793
+ ----------------------------------------------------------------
18794
+ DocumentTest: test_with_default_will_return_default_value_on_nil
18795
+ ----------------------------------------------------------------
18796
+ -----------------------------------
18797
+ DocumentTest: test_with_timestamps!
18798
+ -----------------------------------
18799
+ -------------------------------------------
18800
+ DocumentTest: test_all_first_returns_FooBar
18801
+ -------------------------------------------
18802
+ ------------------------------------------
18803
+ DocumentTest: test_all_last_returns_FooBar
18804
+ ------------------------------------------
18805
+ --------------------------------------
18806
+ DocumentTest: test_all_will_get_2_docs
18807
+ --------------------------------------
18808
+ ------------------------------------------------
18809
+ DocumentTest: test_all_will_get_FooBar_documents
18810
+ ------------------------------------------------
18811
+ ----------------------------------------------
18812
+ DocumentTest: test_default_will_be_avoerwriten
18813
+ ----------------------------------------------
18814
+ ------------------------------------------------
18815
+ DocumentTest: test_empty_find_should_raise_error
18816
+ ------------------------------------------------
18817
+ ------------------------------------------------------------
18818
+ DocumentTest: test_error_on_server_raises_Dolly::ServerError
18819
+ ------------------------------------------------------------
18820
+ --------------------------------------------------
18821
+ DocumentTest: test_find_will_get_a_FooBar_document
18822
+ --------------------------------------------------
18823
+ ----------------------------------------------------------------
18824
+ DocumentTest: test_find_with_multiple_ids_will_return_Collection
18825
+ ----------------------------------------------------------------
18826
+ --------------------------------------------------------
18827
+ DocumentTest: test_first_class_method_returns_collection
18828
+ --------------------------------------------------------
18829
+ ---------------------------------------------------------
18830
+ DocumentTest: test_first_class_method_returns_single_item
18831
+ ---------------------------------------------------------
18832
+ ---------------------------------------------
18833
+ DocumentTest: test_getting_not_found_document
18834
+ ---------------------------------------------
18835
+ -------------------------------------------------------
18836
+ DocumentTest: test_last_class_method_returns_collection
18837
+ -------------------------------------------------------
18838
+ --------------------------------------------------------
18839
+ DocumentTest: test_last_class_method_returns_single_item
18840
+ --------------------------------------------------------
18841
+ -------------------------------------------------
18842
+ DocumentTest: test_multi_response_with_right_data
18843
+ -------------------------------------------------
18844
+ -----------------------------------------
18845
+ DocumentTest: test_new_in_memory_document
18846
+ -----------------------------------------
18847
+ -------------------------------------------
18848
+ DocumentTest: test_will_have_key_properties
18849
+ -------------------------------------------
18850
+ --------------------------------------------------------
18851
+ DocumentTest: test_will_have_object_with_boolean?_method
18852
+ --------------------------------------------------------
18853
+ ------------------------------------------------
18854
+ DocumentTest: test_will_have_only_set_properties
18855
+ ------------------------------------------------
18856
+ ----------------------------------------------------------------
18857
+ DocumentTest: test_with_default_will_return_default_value_on_nil
18858
+ ----------------------------------------------------------------
18859
+ -----------------------------------
18860
+ DocumentTest: test_with_timestamps!
18861
+ -----------------------------------
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dolly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - javierg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-08 00:00:00.000000000 Z
11
+ date: 2013-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails