chimps 0.2.2 → 0.3.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 (56) hide show
  1. data/Gemfile +3 -9
  2. data/Gemfile.lock +14 -10
  3. data/README.rdoc +146 -240
  4. data/Rakefile +4 -33
  5. data/VERSION +1 -1
  6. data/lib/chimps/config.rb +35 -21
  7. data/lib/chimps/{utils/error.rb → error.rb} +1 -12
  8. data/lib/chimps/query_request.rb +67 -0
  9. data/lib/chimps/request.rb +82 -108
  10. data/lib/chimps/response.rb +62 -22
  11. data/lib/chimps/utils/typewriter.rb +90 -0
  12. data/lib/chimps/utils/uses_curl.rb +22 -12
  13. data/lib/chimps/utils.rb +50 -6
  14. data/lib/chimps/workflows/download.rb +72 -0
  15. data/lib/chimps/workflows/upload.rb +113 -0
  16. data/lib/chimps.rb +12 -12
  17. data/spec/chimps/query_request_spec.rb +44 -0
  18. data/spec/chimps/request_spec.rb +92 -0
  19. data/spec/chimps/response_spec.rb +0 -1
  20. data/spec/chimps/workflows/download_spec.rb +48 -0
  21. data/spec/spec_helper.rb +2 -19
  22. metadata +46 -91
  23. data/.document +0 -5
  24. data/.gitignore +0 -32
  25. data/CHANGELOG.textile +0 -4
  26. data/bin/chimps +0 -5
  27. data/lib/chimps/cli.rb +0 -28
  28. data/lib/chimps/commands/base.rb +0 -65
  29. data/lib/chimps/commands/batch.rb +0 -40
  30. data/lib/chimps/commands/create.rb +0 -31
  31. data/lib/chimps/commands/destroy.rb +0 -26
  32. data/lib/chimps/commands/download.rb +0 -46
  33. data/lib/chimps/commands/help.rb +0 -100
  34. data/lib/chimps/commands/list.rb +0 -41
  35. data/lib/chimps/commands/query.rb +0 -82
  36. data/lib/chimps/commands/search.rb +0 -48
  37. data/lib/chimps/commands/show.rb +0 -30
  38. data/lib/chimps/commands/test.rb +0 -39
  39. data/lib/chimps/commands/update.rb +0 -34
  40. data/lib/chimps/commands/upload.rb +0 -50
  41. data/lib/chimps/commands.rb +0 -125
  42. data/lib/chimps/typewriter.rb +0 -349
  43. data/lib/chimps/utils/log.rb +0 -48
  44. data/lib/chimps/utils/uses_model.rb +0 -34
  45. data/lib/chimps/utils/uses_yaml_data.rb +0 -93
  46. data/lib/chimps/workflows/batch.rb +0 -127
  47. data/lib/chimps/workflows/downloader.rb +0 -102
  48. data/lib/chimps/workflows/up.rb +0 -149
  49. data/lib/chimps/workflows/upload/bundler.rb +0 -249
  50. data/lib/chimps/workflows/upload/notifier.rb +0 -59
  51. data/lib/chimps/workflows/upload/token.rb +0 -77
  52. data/lib/chimps/workflows/upload/uploader.rb +0 -51
  53. data/lib/chimps/workflows.rb +0 -12
  54. data/spec/chimps/typewriter_spec.rb +0 -114
  55. data/spec/chimps/workflows/upload/bundler_spec.rb +0 -75
  56. data/spec/chimps/workflows/upload/token_spec.rb +0 -6
@@ -1,114 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '../spec_helper')
2
-
3
- describe Chimps::Typewriter do
4
-
5
- def dataset_1
6
- {
7
- 'dataset' => {
8
- 'id' => 39293,
9
- 'cached_slug' => 'my-awesome-dataset',
10
- 'updated_at' => 'tomorrow',
11
- 'title' => 'My Awesome Dataset'
12
- }
13
- }
14
- end
15
-
16
- def dataset_2
17
- {
18
- 'dataset' => {
19
- 'id' => 28998,
20
- 'cached_slug' => 'my-other-awesome-dataset',
21
- 'updated_at' => 'yesterday',
22
- 'title' => 'My Other Awesome Dataset'
23
- }
24
- }
25
- end
26
-
27
- def source
28
- {} # FIXME
29
- end
30
-
31
- def license
32
- {} # FIXME
33
- end
34
-
35
- def resource
36
- dataset_1
37
- end
38
-
39
- def resource_listing
40
- [ dataset_1, dataset_2 ]
41
- end
42
-
43
- def errors
44
- [
45
- "A title is required.",
46
- "A description is required."
47
- ]
48
- end
49
-
50
- def batch
51
- [
52
- {
53
- 'status' => 'created',
54
- 'resource' => resource,
55
- 'errors' => nil,
56
- 'local_paths' => []
57
- },
58
- {
59
- 'status' => 'invalid',
60
- 'errors' => errors
61
- }
62
- ]
63
- end
64
-
65
- def search
66
- {
67
- 'results' => [
68
- { 'dataset' => dataset_1 },
69
- { 'dataset' => dataset_2 }
70
- ]
71
- }
72
-
73
- end
74
-
75
- def api_account
76
- {
77
- 'api_key' => "tie5TeeNei2aigie",
78
- 'owner' => {
79
- 'username' => 'Infochimps'
80
- },
81
- 'updated_at' => 'now'
82
- }
83
- end
84
-
85
-
86
-
87
- before { @typewriter = Chimps::Typewriter.new([]) }
88
-
89
- describe "formatting output" do
90
-
91
- before do
92
- @typewriter.concat([["short", "medium", "very_very_very_long"],
93
- ["medium", "very_very_long", "short"],
94
- "Some totally long but also ignored string", # ignores strings
95
- ["very_long", ""]]) # doesn't mind mixed size rows
96
- end
97
-
98
- it "should calculate its column widths before printing" do
99
- $stdout = File.open('/dev/null', 'w')
100
- @typewriter.print($stdout)
101
- @typewriter.column_widths.should_not be_empty
102
- end
103
-
104
- it "should correctly calculate its column widths" do
105
- @typewriter.send(:calculate_column_widths!)
106
- @typewriter.column_widths.should == ["very_long", "very_very_long", "very_very_very_long"].map(&:size)
107
- end
108
-
109
- end
110
-
111
-
112
-
113
- end
114
-
@@ -1,75 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '../../../spec_helper')
2
-
3
- describe Chimps::Workflows::Upload::Bundler do
4
-
5
- before do
6
- @dataset = 'foobar'
7
- @extant_path = File.expand_path("extant_file.txt")
8
- @non_extant_path = File.expand_path("non_extant_file.txt")
9
- @archive_path = File.expand_path("archive.tar.bz2")
10
- @extant_archive_path = File.expand_path("extant_archive.tar.bz2")
11
-
12
-
13
- File.open(@extant_path, 'w') { |f| f.write("some content") }
14
- File.open(@extant_archive_path, 'w') { |f| f.write("some, admittedly not very tar.bz2'ish, content") }
15
- end
16
-
17
- describe "setting the format of a bundle of input paths" do
18
- it "should accept a format when given" do
19
- bundler = Chimps::Workflows::Upload::Bundler.new(@dataset, [@extant_path], :fmt => 'foobar')
20
- bundler.fmt.should == 'foobar'
21
- end
22
-
23
- it "should guess a format when one isn't given" do
24
- bundler = Chimps::Workflows::Upload::Bundler.new(@dataset, [@extant_path])
25
- bundler.fmt.should == 'txt'
26
- end
27
- end
28
-
29
- describe "setting the archive from a bundle of input paths" do
30
-
31
- it "should automatically set the archive path when given no other information" do
32
- bundler = Chimps::Workflows::Upload::Bundler.new(@dataset, [@extant_path])
33
- File.basename(bundler.archive.path).should =~ /^chimps_/
34
- end
35
-
36
- it "should use a valid archive path when given one" do
37
- bundler = Chimps::Workflows::Upload::Bundler.new(@dataset, [@extant_path], :archive => 'foo.tar.bz2')
38
- File.basename(bundler.archive.path).should == 'foo.tar.bz2'
39
- end
40
-
41
- it "should raise an error when given a non-package or compressed-file archive path" do
42
- lambda { Chimps::Workflows::Upload::Bundler.new(@dataset, [@extant_path], :archive => 'foo.txt') }.should raise_error(Chimps::PackagingError)
43
- end
44
-
45
- it "should raise an error when given a compressed-file archive path with multiple input paths" do
46
- lambda { Chimps::Workflows::Upload::Bundler.new(@dataset, [@extant_path, @extant_archive_path], :archive => 'foo.bz2') }.should raise_error(Chimps::PackagingError)
47
- end
48
-
49
- end
50
-
51
- describe "processing input paths" do
52
-
53
- it "should raise an error when no paths are given" do
54
- lambda { Chimps::Workflows::Upload::Bundler.new(@dataset, []) }.should raise_error(Chimps::PackagingError)
55
- end
56
-
57
- it "should raise an error when given a local path which doesn't exist" do
58
- lambda { Chimps::Workflows::Upload::Bundler.new(@dataset, [@extant_path, @non_extant_path]) }.should raise_error(IMW::PathError)
59
- end
60
-
61
- it "should set its archive path and skip packaging when passed a single, extant archive path" do
62
- bundler = Chimps::Workflows::Upload::Bundler.new(@dataset, [@extant_archive_path])
63
- bundler.skip_packaging?.should be_true
64
- bundler.archive.path.should == @extant_archive_path
65
- end
66
-
67
- it "should prefer the explicitly passed in archive path to the implicitly seleced archive path when passed a 1-path input array consisting of an archive as well as the :archive option" do
68
- bundler = Chimps::Workflows::Upload::Bundler.new(@dataset, [@extant_archive_path], :archive => "foo.tar.bz2")
69
- File.basename(bundler.archive.path).should == 'foo.tar.bz2'
70
- end
71
-
72
- end
73
-
74
- end
75
-
@@ -1,6 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '../../../spec_helper')
2
-
3
- describe Chimps::Workflows::Upload::UploadToken do
4
-
5
- end
6
-