swivel 0.0.2 → 0.0.8

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 (5) hide show
  1. data/README +53 -0
  2. data/Rakefile +1 -0
  3. data/bin/swivel +6 -0
  4. data/lib/swivel.rb +54 -2
  5. metadata +11 -2
data/README CHANGED
@@ -313,3 +313,56 @@ Wanna write code with us? http://swivel.com/about/jobs
313
313
 
314
314
  This software is licensed under the exact same license as Ruby itself. Peace
315
315
  out.
316
+
317
+ upload options
318
+ mode
319
+ initial append replace
320
+
321
+ auto_estimate
322
+ ordered_column_names
323
+ ordered_column_types
324
+ column_separator
325
+
326
+ original_asset_name
327
+ original_asset_path
328
+ data (or data_content)
329
+
330
+ name
331
+ color
332
+ description
333
+ citation
334
+ citation_url
335
+ image_url
336
+ image_source_url
337
+ display_tags
338
+ public_tags
339
+
340
+ graph options
341
+ graph_type
342
+ BarGraph LineGraph HorizontalBarGraph PieGraph ScatterGraph
343
+ width
344
+ height
345
+ limit
346
+ image_url
347
+ name
348
+ description
349
+ display_tags
350
+ time_range
351
+ ???
352
+ time_scale
353
+ hourly daily weekly quarterly yearly
354
+ scale
355
+ absolute average relative range percent
356
+
357
+ variant
358
+ default thumbnail sparkline preview share
359
+
360
+ columns
361
+ order_by_direction
362
+ asc desc unsorted alpha
363
+ order_by_column
364
+ x_axis_column
365
+ join_on_columns
366
+ group_by_columns
367
+ highlight_columns
368
+
data/Rakefile CHANGED
@@ -63,6 +63,7 @@ spec =
63
63
  s.executables = ['swivel']
64
64
 
65
65
  s.add_dependency 'activesupport'
66
+ s.add_dependency 'cobravsmongoose'
66
67
  end
67
68
 
68
69
  Rake::GemPackageTask.new(spec) do |p|
data/bin/swivel CHANGED
@@ -15,6 +15,12 @@ config.load
15
15
  config.save
16
16
 
17
17
  ARGV.options do |opts|
18
+ opts.banner = 'Usage: swivel < list, show, upload, append > [options]'
19
+
20
+ opts.separator ''
21
+
22
+ opts.separator 'Options:'
23
+
18
24
  opts.on '-h', '--host=name', String,
19
25
  "Swivel hostname or IP address.",
20
26
  "Default: #{options[:host]}" do |v| options[:host] = v end
@@ -263,12 +263,23 @@ module Swivel
263
263
  end
264
264
  end
265
265
 
266
- %w/DataColumn DataSet Graph User/.each do |class_name|
266
+ %w/DataColumn DataSet User/.each do |class_name|
267
267
  class_eval <<-LAZY
268
268
  class #{class_name} < Response; end
269
269
  LAZY
270
270
  end
271
271
 
272
+ class Graph < Response
273
+ def image_url options = {}
274
+ host = @connection.config[:image_host]
275
+ if variant == 'transient'
276
+ "http://#{host}/graphs/get/#{digest}"
277
+ else
278
+ "http://#{host}/graphs/image/#{id}"
279
+ end
280
+ end
281
+ end
282
+
272
283
  # Encapsulates lists of resources. Typically, items contained within the list are
273
284
  # subclasses of Swivel::Response.
274
285
  #
@@ -331,8 +342,9 @@ module Swivel
331
342
  class Config
332
343
  CONFIG_DIR = ENV['HOME']
333
344
  CONFIG_FILE = '.swivelrc'
345
+ DEFAULT_HOST = 'api.swivel.com'
334
346
  DEFAULT_CONFIG = { :api_key => '', :protocol => 'http://',
335
- :host => 'api.swivel.com', :port => 80,
347
+ :host => DEFAULT_HOST, :port => 80,
336
348
  :timeout_up => 200, :timeout_down => 100 }
337
349
 
338
350
  attr_accessor :config
@@ -354,6 +366,9 @@ module Swivel
354
366
  else
355
367
  YAML::load_file @filename
356
368
  end
369
+ @config[:image_host] ||=
370
+ @config[:host] == DEFAULT_HOST ? 'www.swivel.com' : @config[:host]
371
+ @config
357
372
  end
358
373
 
359
374
  # Saves a configuration to the same file from which it was loaded.
@@ -416,6 +431,43 @@ module Swivel
416
431
  xml || nil
417
432
  end
418
433
 
434
+ # Calling all of those endpoints is tedious. For swivel's main objects
435
+ # there are some helper methods to get stuff:
436
+ #
437
+ # data_set = swivel.data_set 1
438
+ # data_set.class # => Swivel::DataSet
439
+ # data_set.id # => 1
440
+ #
441
+ # data_sets = swivel.data_sets
442
+ #
443
+ # some_graph = swivel.graph 1232132
444
+ #
445
+ # da_bomb = swivel.user 'visnu'
446
+ # da_bomb.name # => 'visnu'
447
+ #
448
+ # All these really do is prettify a get call to:
449
+ # /rest/object_type or /rest/object_type/id
450
+
451
+ %w/ data_columns data_sets graphs users /.each do |obj|
452
+ class_eval <<-LAZY
453
+ def #{obj} options = nil
454
+ case options
455
+ when Hash
456
+ if options[:id]
457
+ call "/rest/#{obj}/#\{options[:id]\}", options
458
+ else
459
+ call "/rest/#{obj}", options, :post
460
+ end
461
+ when Numeric, String, Symbol
462
+ call "/rest/#{obj}/#\{options\}"
463
+ else
464
+ call '/rest/#{obj}'
465
+ end
466
+ end
467
+ alias :#{obj.singularize} :#{obj}
468
+ LAZY
469
+ end
470
+
419
471
  # Performs an upload, append, or replace. Set options[:mode] to one of "initial",
420
472
  # "append", or "replace". If unset, options[:mode] defaults to "initial". Append
421
473
  # and replace can also be called directly, without setting options[:mode].
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
3
3
  specification_version: 1
4
4
  name: swivel
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.2
7
- date: 2007-06-19 00:00:00 -07:00
6
+ version: 0.0.8
7
+ date: 2007-06-28 00:00:00 -07:00
8
8
  summary: Ruby interface to the Swivel API.
9
9
  require_paths:
10
10
  - lib
@@ -64,3 +64,12 @@ dependencies:
64
64
  - !ruby/object:Gem::Version
65
65
  version: 0.0.0
66
66
  version:
67
+ - !ruby/object:Gem::Dependency
68
+ name: cobravsmongoose
69
+ version_requirement:
70
+ version_requirements: !ruby/object:Gem::Version::Requirement
71
+ requirements:
72
+ - - ">"
73
+ - !ruby/object:Gem::Version
74
+ version: 0.0.0
75
+ version: