cloudkit 0.10.1 → 0.11.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.
Files changed (58) hide show
  1. data/CHANGES +11 -0
  2. data/README +7 -6
  3. data/Rakefile +13 -6
  4. data/TODO +7 -5
  5. data/cloudkit.gemspec +23 -23
  6. data/doc/curl.html +2 -2
  7. data/doc/index.html +4 -6
  8. data/examples/5.ru +2 -3
  9. data/examples/TOC +1 -3
  10. data/lib/cloudkit.rb +17 -10
  11. data/lib/cloudkit/constants.rb +0 -6
  12. data/lib/cloudkit/exceptions.rb +10 -0
  13. data/lib/cloudkit/flash_session.rb +1 -3
  14. data/lib/cloudkit/oauth_filter.rb +8 -16
  15. data/lib/cloudkit/oauth_store.rb +9 -13
  16. data/lib/cloudkit/openid_filter.rb +25 -7
  17. data/lib/cloudkit/openid_store.rb +14 -17
  18. data/lib/cloudkit/request.rb +6 -1
  19. data/lib/cloudkit/service.rb +15 -15
  20. data/lib/cloudkit/store.rb +97 -284
  21. data/lib/cloudkit/store/memory_table.rb +105 -0
  22. data/lib/cloudkit/store/resource.rb +256 -0
  23. data/lib/cloudkit/store/response_helpers.rb +0 -1
  24. data/lib/cloudkit/uri.rb +88 -0
  25. data/lib/cloudkit/user_store.rb +7 -14
  26. data/spec/ext_spec.rb +76 -0
  27. data/spec/flash_session_spec.rb +20 -0
  28. data/spec/memory_table_spec.rb +86 -0
  29. data/spec/oauth_filter_spec.rb +326 -0
  30. data/spec/oauth_store_spec.rb +10 -0
  31. data/spec/openid_filter_spec.rb +64 -0
  32. data/spec/openid_store_spec.rb +101 -0
  33. data/spec/rack_builder_spec.rb +39 -0
  34. data/spec/request_spec.rb +185 -0
  35. data/spec/resource_spec.rb +291 -0
  36. data/spec/service_spec.rb +974 -0
  37. data/{test/helper.rb → spec/spec_helper.rb} +14 -2
  38. data/spec/store_spec.rb +10 -0
  39. data/spec/uri_spec.rb +93 -0
  40. data/spec/user_store_spec.rb +10 -0
  41. data/spec/util_spec.rb +11 -0
  42. metadata +37 -61
  43. data/examples/6.ru +0 -10
  44. data/lib/cloudkit/store/adapter.rb +0 -8
  45. data/lib/cloudkit/store/extraction_view.rb +0 -57
  46. data/lib/cloudkit/store/sql_adapter.rb +0 -36
  47. data/test/ext_test.rb +0 -76
  48. data/test/flash_session_test.rb +0 -22
  49. data/test/oauth_filter_test.rb +0 -331
  50. data/test/oauth_store_test.rb +0 -12
  51. data/test/openid_filter_test.rb +0 -60
  52. data/test/openid_store_test.rb +0 -12
  53. data/test/rack_builder_test.rb +0 -41
  54. data/test/request_test.rb +0 -197
  55. data/test/service_test.rb +0 -971
  56. data/test/store_test.rb +0 -93
  57. data/test/user_store_test.rb +0 -12
  58. data/test/util_test.rb +0 -13
data/test/store_test.rb DELETED
@@ -1,93 +0,0 @@
1
- require 'helper'
2
- class StoreTest < Test::Unit::TestCase
3
-
4
- class ExposedStore < CloudKit::Store
5
- def db; @db; end
6
- end
7
-
8
- context "A CloudKit::Store" do
9
-
10
- should "know its version" do
11
- store = ExposedStore.new(:collections => [:items])
12
- assert_equal 1, store.version
13
- end
14
-
15
- should "create its storage" do
16
- store = ExposedStore.new(:collections => [:items])
17
- table = store.db.schema[CLOUDKIT_STORE]
18
- assert table
19
- assert table.any?{|t| t[0] == :id}
20
- assert table.any?{|t| t[0] == :uri}
21
- assert table.any?{|t| t[0] == :etag}
22
- assert table.any?{|t| t[0] == :collection_reference}
23
- assert table.any?{|t| t[0] == :resource_reference}
24
- assert table.any?{|t| t[0] == :last_modified}
25
- assert table.any?{|t| t[0] == :remote_user}
26
- assert table.any?{|t| t[0] == :content}
27
- assert table.any?{|t| t[0] == :deleted}
28
- end
29
-
30
- should "create views when specified if they do not exist" do
31
- view = CloudKit::ExtractionView.new(
32
- :item_colors,
33
- :observe => :items,
34
- :extract => [:color, :saturation])
35
- store = ExposedStore.new(
36
- :collections => [:items],
37
- :views => [view])
38
- table = store.db.schema[:item_colors]
39
- assert table
40
- assert table.any?{|t| t[0] == :color}
41
- assert table.any?{|t| t[0] == :saturation}
42
- assert table.any?{|t| t[0] == :uri}
43
- end
44
-
45
- should "not create views that already exist" do
46
- color_view = CloudKit::ExtractionView.new(
47
- :colors,
48
- :observe => :items,
49
- :extract => [:color, :saturation])
50
- weight_view = CloudKit::ExtractionView.new(
51
- :weights,
52
- :observe => :items,
53
- :extract => [:weight])
54
- store = ExposedStore.new(
55
- :collections => [:items],
56
- :views => [color_view, weight_view],
57
- :adapter => CloudKit::SQLAdapter.new('sqlite://test.db'))
58
- json = JSON.generate(:color => 'green')
59
- store.put('/items/123', :json => json)
60
- store.db.drop_table(:weights)
61
- store = ExposedStore.new(
62
- :collections => [:items],
63
- :views => [color_view, weight_view],
64
- :adapter => CloudKit::SQLAdapter.new('sqlite://test.db'))
65
- assert store.db.schema[:colors]
66
- assert store.db.schema[:weights]
67
- result = store.get('/colors', :color => 'green')
68
- FileUtils.rm_f('test.db')
69
- assert_equal 200, result.status
70
- assert_equal 1, result.parsed_content['uris'].size
71
- end
72
-
73
- should "filter using views" do
74
- view = CloudKit::ExtractionView.new(
75
- :colors,
76
- :observe => :items,
77
- :extract => [:color, :saturation])
78
- store = ExposedStore.new(
79
- :collections => [:items],
80
- :views => [view])
81
- json = JSON.generate(:color => 'green')
82
- store.put('/items/123', :json => json)
83
- json = JSON.generate(:color => 'red')
84
- store.put('/items/456', :json => json)
85
- result = store.get('/colors', :color => 'green')
86
- uris = result.parsed_content['uris']
87
- assert_equal 1, uris.size
88
- content = store.resolve_uris(uris).first.parsed_content
89
- assert_equal 'green', content['color']
90
- end
91
-
92
- end
93
- end
@@ -1,12 +0,0 @@
1
- require 'helper'
2
- class UserStoreTest < Test::Unit::TestCase
3
-
4
- context "A UserStore" do
5
-
6
- should "know its version" do
7
- store = CloudKit::UserStore.new
8
- assert_equal 1, store.version
9
- end
10
-
11
- end
12
- end
data/test/util_test.rb DELETED
@@ -1,13 +0,0 @@
1
- require 'helper'
2
- class UtilTest < Test::Unit::TestCase
3
- include CloudKit::Util
4
-
5
- context "CloudKit::Util" do
6
-
7
- should "create routers" do
8
- router = r(:get, '/path')
9
- assert_equal Rack::Router, router.class
10
- end
11
-
12
- end
13
- end