mira 0.0.1
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.
- data/.gitignore +5 -0
- data/.rvmrc +1 -0
- data/Gemfile +4 -0
- data/Rakefile +13 -0
- data/example.rb +10 -0
- data/lib/mira.rb +8 -0
- data/lib/mira/embed_code.rb +78 -0
- data/lib/mira/upload.rb +79 -0
- data/lib/mira/version.rb +3 -0
- data/mira.gemspec +36 -0
- data/readme.md +48 -0
- data/sample.mov +0 -0
- data/spec/embed_code_spec.rb +36 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/upload_spec.rb +78 -0
- metadata +167 -0
data/.gitignore
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm ruby-1.8.7-p334@mira
|
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
|
+
|
4
|
+
# copied from RSpec :-p
|
5
|
+
require 'rspec'
|
6
|
+
require 'rspec/core'
|
7
|
+
require 'rspec/core/rake_task'
|
8
|
+
desc "Run all examples"
|
9
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
10
|
+
t.rspec_path = 'rspec'
|
11
|
+
t.rspec_opts = %w[--color]
|
12
|
+
t.verbose = false
|
13
|
+
end
|
data/example.rb
ADDED
data/lib/mira.rb
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
module Mira
|
2
|
+
module Viddler
|
3
|
+
# attribution: this code is based very heavily on the original `viddler` gem
|
4
|
+
|
5
|
+
# Returns proper HTML code for embedding
|
6
|
+
#
|
7
|
+
# <tt>options</tt> hash could contain:
|
8
|
+
# * <tt>id:</tt> Viddler ID of the video to display (required);
|
9
|
+
# * <tt>player_type:</tt> The type of player to embed, either "simple" or "player" (default);
|
10
|
+
# * <tt>width:</tt> The width of the player (default is 437);
|
11
|
+
# * <tt>height:</tt> The height of the player (default is 370);
|
12
|
+
# * <tt>autoplay:</tt> Whether or not to autoplay the video, either
|
13
|
+
# "t" or "f" (default is "f");
|
14
|
+
# * <tt>playAll:</tt> Set to "true" to enable play all player (requires
|
15
|
+
# player_type to be "player");
|
16
|
+
#
|
17
|
+
# Any additional options passed to the method will be added as flashvars
|
18
|
+
#
|
19
|
+
# Example:
|
20
|
+
#
|
21
|
+
# Mira::Viddler.embed_code(:player_type => 'simple',
|
22
|
+
# :width => 300,
|
23
|
+
# :height => 300,
|
24
|
+
# :autoplay => 't',
|
25
|
+
# :id => "e75e65b2")
|
26
|
+
#
|
27
|
+
# Returns embed code for auto playing video e75e65b2 in simple player with 300px width and height
|
28
|
+
#
|
29
|
+
def self.embed_code(options={})
|
30
|
+
raise "hell" unless options[:id]
|
31
|
+
options = {
|
32
|
+
:player_type => 'player',
|
33
|
+
:width => 437,
|
34
|
+
:height => 370,
|
35
|
+
:autoplay => 'f',
|
36
|
+
:wmode => 'transparent'
|
37
|
+
}.merge(options)
|
38
|
+
|
39
|
+
# get non flashvars from options
|
40
|
+
player_type = options.delete(:player_type)
|
41
|
+
width = options.delete(:width)
|
42
|
+
height = options.delete(:height)
|
43
|
+
wmode = options.delete(:wmode)
|
44
|
+
id = options.delete(:id)
|
45
|
+
|
46
|
+
flashvars = options.collect{|key,value| "#{key}=#{value}"}.join('&')
|
47
|
+
|
48
|
+
html = <<-CODE
|
49
|
+
<!--[if IE]>
|
50
|
+
<object width="#{width}" height="#{height}" id="viddlerOuter-#{id}" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
|
51
|
+
<param name="movie" value="http://www.viddler.com/#{player_type}/#{id}/">
|
52
|
+
<param name="allowScriptAccess" value="always">
|
53
|
+
<param name="allowNetworking" value="all">
|
54
|
+
<param name="allowFullScreen" value="true">
|
55
|
+
<param name="wmode" value="#{wmode}" />
|
56
|
+
<param name="flashVars" value="#{flashvars}">
|
57
|
+
<object id="viddlerInner-#{id}">
|
58
|
+
<video id="viddlerVideo-#{id}" src="http://www.viddler.com/file/#{id}/html5mobile/" type="video/mp4" width="#{width}" height="#{height}" poster="http://www.viddler.com/thumbnail/#{id}/" controls="controls"></video>
|
59
|
+
</object>
|
60
|
+
</object>
|
61
|
+
<![endif]-->
|
62
|
+
<!--[if !IE]> <!-->
|
63
|
+
<object width="#{width}" height="#{height}" id="viddlerOuter-#{id}" type="application/x-shockwave-flash" data="http://www.viddler.com/player/#{id}/">
|
64
|
+
<param name="movie" value="http://www.viddler.com/#{player_type}/#{id}/">
|
65
|
+
<param name="allowScriptAccess" value="always">
|
66
|
+
<param name="allowNetworking" value="all">
|
67
|
+
<param name="allowFullScreen" value="true">
|
68
|
+
<param name="wmode" value="#{wmode}" />
|
69
|
+
<param name="flashVars" value="#{flashvars}">
|
70
|
+
<object id="viddlerInner-#{id}">
|
71
|
+
<video id="viddlerVideo-#{id}" src="http://www.viddler.com/file/#{id}/html5mobile/" type="video/mp4" width="#{width}" height="#{height}" poster="http://www.viddler.com/thumbnail/#{id}/" controls="controls"></video>
|
72
|
+
</object>
|
73
|
+
</object>
|
74
|
+
<!--<![endif]-->
|
75
|
+
CODE
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
data/lib/mira/upload.rb
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
module Mira
|
2
|
+
class ViddlerClient
|
3
|
+
|
4
|
+
# there's a certain amount of stupidity in this code, because I built it
|
5
|
+
# against specs cribbed from the official Viddler gem, which supports a
|
6
|
+
# much broader range of functionality, so this code uses a slightly inflated
|
7
|
+
# set of assumptions.
|
8
|
+
|
9
|
+
# that being said, here's documentation mostly copied from viddler-ruby...
|
10
|
+
|
11
|
+
# Upload a video to the Viddler API.
|
12
|
+
#
|
13
|
+
# file - The File you are uploading
|
14
|
+
# arguments - The Hash of arguments for the video
|
15
|
+
# :title - The String title of the video
|
16
|
+
# :tags - The String of tags for the video
|
17
|
+
# :description - The String description of the video
|
18
|
+
# :make_public - The Boolean to make the video public on
|
19
|
+
# upload. Please note that if set to false, it
|
20
|
+
# will not make your video private.
|
21
|
+
#
|
22
|
+
# Examples
|
23
|
+
#
|
24
|
+
# viddler.upload File.open('myvideo.avi'), :title => "My Video",
|
25
|
+
# :tags => "viddler, ruby",
|
26
|
+
# :description => "This is cool"
|
27
|
+
#
|
28
|
+
# Returns a Hash containing the API response.
|
29
|
+
|
30
|
+
def upload(file, params = {})
|
31
|
+
json = self.get('viddler.videos.prepareUpload')
|
32
|
+
endpoint = json["upload"]["endpoint"]
|
33
|
+
token = json["upload"]["token"]
|
34
|
+
uploaded = RestClient.post(endpoint,
|
35
|
+
upload_params(file,
|
36
|
+
params.merge!(:token => token)))
|
37
|
+
JSON.parse uploaded
|
38
|
+
end
|
39
|
+
|
40
|
+
def get(api_method, params = {})
|
41
|
+
url = 'http://api.viddler.com/api/v2/' + api_method + '.json'
|
42
|
+
JSON.parse RestClient.get(url,
|
43
|
+
:params => params.merge!(:sessionid => auth,
|
44
|
+
:method => api_method,
|
45
|
+
:api_key => @api_key))
|
46
|
+
end
|
47
|
+
|
48
|
+
def auth
|
49
|
+
return @session_id if @session_id
|
50
|
+
|
51
|
+
session_request = RestClient.get('http://api.viddler.com/api/v2/viddler.users.auth.json',
|
52
|
+
:params => {:user => @username,
|
53
|
+
:password => @password,
|
54
|
+
:api_key => @api_key})
|
55
|
+
@session_id = JSON.parse(session_request)["auth"]["sessionid"]
|
56
|
+
end
|
57
|
+
|
58
|
+
def initialize(credentials)
|
59
|
+
@username = credentials[:username]
|
60
|
+
@password = credentials[:password]
|
61
|
+
@api_key = credentials[:api_key]
|
62
|
+
end
|
63
|
+
|
64
|
+
def upload_params(file, params = {})
|
65
|
+
raise "file argument must be a File" unless file.is_a? File
|
66
|
+
ordered_arguments = ActiveSupport::OrderedHash.new
|
67
|
+
|
68
|
+
params.each {|k,v| ordered_arguments[k] = v}
|
69
|
+
|
70
|
+
ordered_arguments[:api_key] = @api_key
|
71
|
+
ordered_arguments[:sessionid] = auth
|
72
|
+
ordered_arguments[:file] = file
|
73
|
+
|
74
|
+
ordered_arguments
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
data/lib/mira/version.rb
ADDED
data/mira.gemspec
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "mira/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "mira"
|
7
|
+
s.version = Mira::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Giles Bowkett"]
|
10
|
+
s.email = ["gilesb@gmail.com"]
|
11
|
+
s.homepage = ""
|
12
|
+
s.summary = s.description = %q{Bare minimum Viddler API v2}
|
13
|
+
|
14
|
+
s.rubyforge_project = "mira"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# specs
|
22
|
+
s.add_development_dependency 'rake', '0.8.7'
|
23
|
+
s.add_development_dependency 'rspec'
|
24
|
+
|
25
|
+
# I don't understand how people can tolerate IRB without my improvements to it. I
|
26
|
+
# get that this is arrogant, but it's also absolutely sincere.
|
27
|
+
s.add_development_dependency 'utility_belt'
|
28
|
+
|
29
|
+
# api methods
|
30
|
+
s.add_runtime_dependency 'json'
|
31
|
+
s.add_runtime_dependency 'rest-client'
|
32
|
+
|
33
|
+
# ordered hash
|
34
|
+
s.add_runtime_dependency 'activesupport'
|
35
|
+
end
|
36
|
+
|
data/readme.md
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
Mira
|
2
|
+
====
|
3
|
+
|
4
|
+
Mira is a minimal Viddler client. I named it Mira because I had just created another gem with a Spanish name (buscando_el_viento) and I figured I might as well keep the momentum going. "Mira" in Spanish means "look."
|
5
|
+
|
6
|
+
I created Mira because the official Viddler gem `viddler-ruby` didn't work out of the box, and fixing whatever was wrong with it seemed like a lot more work than just writing my own.
|
7
|
+
|
8
|
+
Mira supports only a tiny subset of the Viddler API's functionality - namely the ability to upload a video, and the ability to obtain an existing video's Flash video player embed code.
|
9
|
+
|
10
|
+
code copying
|
11
|
+
------------
|
12
|
+
|
13
|
+
embed code copied from the original `viddler` gem (which was not actually written by Viddler); upload functionality and specs adapted from Viddler's official `viddler-ruby` gem.
|
14
|
+
|
15
|
+
test it out
|
16
|
+
-----------
|
17
|
+
|
18
|
+
create a `viddler.credentials` yaml file:
|
19
|
+
|
20
|
+
:api_key: 1234123412341234
|
21
|
+
:username: your_username
|
22
|
+
:password: your_password
|
23
|
+
|
24
|
+
use the `example.rb` script, or, to see every single step, pop into IRB and do this manually:
|
25
|
+
|
26
|
+
# setup
|
27
|
+
require 'yaml'
|
28
|
+
viddler = Mira::ViddlerClient.new(YAML.load(File.open("viddler.credentials")))
|
29
|
+
|
30
|
+
# optional, just if you want to see everything happen
|
31
|
+
viddler.auth
|
32
|
+
viddler.get('viddler.videos.prepareUpload')
|
33
|
+
|
34
|
+
# money shot
|
35
|
+
viddler.upload(File.new("sample.mov"),
|
36
|
+
:title => "sample",
|
37
|
+
:tags => "your mom",
|
38
|
+
:description => "whatever")
|
39
|
+
|
40
|
+
some or all of `:title`, `:tags`, and `:description` are required. API docs are not forthcoming on the subject and I couldn't care less. just throw them all in there and it'll work.
|
41
|
+
|
42
|
+
note that after uploading, Viddler will lag before displaying your video, and will not display any kind of "uploaded but still processing..." message. so you basically have to wait a minute with your dick in your hand.
|
43
|
+
|
44
|
+
TODO
|
45
|
+
====
|
46
|
+
|
47
|
+
add specs about that whole requiring title, tags, and/or description shit.
|
48
|
+
|
data/sample.mov
ADDED
Binary file
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
describe Mira::Viddler do
|
4
|
+
it "generates embed code" do
|
5
|
+
embed_code = <<-CODE
|
6
|
+
<!--[if IE]>
|
7
|
+
<object width="437" height="370" id="viddlerOuter-e75e65b2" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
|
8
|
+
<param name="movie" value="http://www.viddler.com/player/e75e65b2/">
|
9
|
+
<param name="allowScriptAccess" value="always">
|
10
|
+
<param name="allowNetworking" value="all">
|
11
|
+
<param name="allowFullScreen" value="true">
|
12
|
+
<param name="wmode" value="transparent" />
|
13
|
+
<param name="flashVars" value="autoplay=f">
|
14
|
+
<object id="viddlerInner-e75e65b2">
|
15
|
+
<video id="viddlerVideo-e75e65b2" src="http://www.viddler.com/file/e75e65b2/html5mobile/" type="video/mp4" width="437" height="370" poster="http://www.viddler.com/thumbnail/e75e65b2/" controls="controls"></video>
|
16
|
+
</object>
|
17
|
+
</object>
|
18
|
+
<![endif]-->
|
19
|
+
<!--[if !IE]> <!-->
|
20
|
+
<object width="437" height="370" id="viddlerOuter-e75e65b2" type="application/x-shockwave-flash" data="http://www.viddler.com/player/e75e65b2/">
|
21
|
+
<param name="movie" value="http://www.viddler.com/player/e75e65b2/">
|
22
|
+
<param name="allowScriptAccess" value="always">
|
23
|
+
<param name="allowNetworking" value="all">
|
24
|
+
<param name="allowFullScreen" value="true">
|
25
|
+
<param name="wmode" value="transparent" />
|
26
|
+
<param name="flashVars" value="autoplay=f">
|
27
|
+
<object id="viddlerInner-e75e65b2">
|
28
|
+
<video id="viddlerVideo-e75e65b2" src="http://www.viddler.com/file/e75e65b2/html5mobile/" type="video/mp4" width="437" height="370" poster="http://www.viddler.com/thumbnail/e75e65b2/" controls="controls"></video>
|
29
|
+
</object>
|
30
|
+
</object>
|
31
|
+
<!--<![endif]-->
|
32
|
+
CODE
|
33
|
+
Mira::Viddler.embed_code(:id => "e75e65b2").should == embed_code
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
data/spec/spec_helper.rb
ADDED
data/spec/upload_spec.rb
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
# attribution: these specs were very closely adapted from the official Viddler gem.
|
4
|
+
# however the implementation is a good deal looser.
|
5
|
+
|
6
|
+
describe Mira::ViddlerClient, "auth" do
|
7
|
+
# this example goes in a different describe block because the step it specs
|
8
|
+
# is stubbed out in the before(:each) for every other example
|
9
|
+
it "gets the session id from the Viddler API" do
|
10
|
+
@viddler_client = Mira::ViddlerClient.new(:username => "user",
|
11
|
+
:password => "s3kr3t",
|
12
|
+
:api_key => "12345")
|
13
|
+
json = '{"auth":{"sessionid":"15e3c113126b488654849545245434f52444b"}}'
|
14
|
+
RestClient.should_receive(:get).with(anything, anything).and_return(json)
|
15
|
+
@viddler_client.auth.should eq("15e3c113126b488654849545245434f52444b")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe Mira::ViddlerClient, "upload" do
|
20
|
+
before(:each) do
|
21
|
+
@file = File.new(File.expand_path("mira.gemspec"))
|
22
|
+
@endpoint = "http://upload.viddler.com/upload.json"
|
23
|
+
@viddler_client = Mira::ViddlerClient.new(:username => "user",
|
24
|
+
:password => "s3kr3t",
|
25
|
+
:api_key => "12345")
|
26
|
+
|
27
|
+
RestClient.stub!(:post).and_return('{"response":["hello","howdy"]}')
|
28
|
+
@viddler_client.stub!(:get).and_return({"upload" => {"endpoint" => @endpoint}})
|
29
|
+
@viddler_client.should_receive(:auth).and_return('some_session')
|
30
|
+
end
|
31
|
+
|
32
|
+
it "calls get with viddler.videos.prepareUpload" do
|
33
|
+
@viddler_client.should_receive(:get).with('viddler.videos.prepareUpload')
|
34
|
+
@viddler_client.upload @file,
|
35
|
+
:param1 => 'asdf',
|
36
|
+
:param2 => true # FIXME: WTF
|
37
|
+
end
|
38
|
+
|
39
|
+
it "calls RestClient.post with endpoint, params, and file" do
|
40
|
+
RestClient.should_receive(:post).with(@endpoint,
|
41
|
+
hash_including(:param1 => 'asdf',
|
42
|
+
:param2 => true,
|
43
|
+
:file => @file))
|
44
|
+
@viddler_client.upload @file, :param1 => 'asdf', :param2 => true
|
45
|
+
end
|
46
|
+
|
47
|
+
it "includes sessionid" do
|
48
|
+
RestClient.should_receive(:post).with(anything, hash_including(:sessionid => 'some_session'))
|
49
|
+
@viddler_client.upload @file, :param1 => 'asdf', :param2 => true
|
50
|
+
end
|
51
|
+
|
52
|
+
it "includes API key" do
|
53
|
+
RestClient.should_receive(:post).with(anything, hash_including(:api_key => '12345'))
|
54
|
+
@viddler_client.upload @file, :param1 => 'asdf', :param2 => true
|
55
|
+
end
|
56
|
+
|
57
|
+
it "returns result of JSON.parse" do
|
58
|
+
JSON.stub!(:parse).and_return('asdfasdf')
|
59
|
+
@viddler_client.upload(@file, :param1 => 'asdf').should == 'asdfasdf'
|
60
|
+
end
|
61
|
+
|
62
|
+
it "submits the file argument to the API last" do
|
63
|
+
acceptable_params = ActiveSupport::OrderedHash.new
|
64
|
+
acceptable_params[:argle] = :bargle
|
65
|
+
acceptable_params[:api_key] = '12345'
|
66
|
+
acceptable_params[:sessionid] = 'some_session'
|
67
|
+
acceptable_params[:file] = @file
|
68
|
+
|
69
|
+
@viddler_client.upload_params(@file, :argle => :bargle).should == acceptable_params
|
70
|
+
end
|
71
|
+
|
72
|
+
it "requires an actual File" do
|
73
|
+
lambda {@viddler_client.upload_params(@file)}.should_not raise_error
|
74
|
+
lambda {@viddler_client.upload_params("file")}.should raise_error
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
|
metadata
ADDED
@@ -0,0 +1,167 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mira
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Giles Bowkett
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-07-14 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
22
|
+
none: false
|
23
|
+
requirements:
|
24
|
+
- - "="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
hash: 49
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
- 8
|
30
|
+
- 7
|
31
|
+
version: 0.8.7
|
32
|
+
requirement: *id001
|
33
|
+
name: rake
|
34
|
+
prerelease: false
|
35
|
+
type: :development
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
46
|
+
requirement: *id002
|
47
|
+
name: rspec
|
48
|
+
prerelease: false
|
49
|
+
type: :development
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
60
|
+
requirement: *id003
|
61
|
+
name: utility_belt
|
62
|
+
prerelease: false
|
63
|
+
type: :development
|
64
|
+
- !ruby/object:Gem::Dependency
|
65
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
hash: 3
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
version: "0"
|
74
|
+
requirement: *id004
|
75
|
+
name: json
|
76
|
+
prerelease: false
|
77
|
+
type: :runtime
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
hash: 3
|
85
|
+
segments:
|
86
|
+
- 0
|
87
|
+
version: "0"
|
88
|
+
requirement: *id005
|
89
|
+
name: rest-client
|
90
|
+
prerelease: false
|
91
|
+
type: :runtime
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
hash: 3
|
99
|
+
segments:
|
100
|
+
- 0
|
101
|
+
version: "0"
|
102
|
+
requirement: *id006
|
103
|
+
name: activesupport
|
104
|
+
prerelease: false
|
105
|
+
type: :runtime
|
106
|
+
description: Bare minimum Viddler API v2
|
107
|
+
email:
|
108
|
+
- gilesb@gmail.com
|
109
|
+
executables: []
|
110
|
+
|
111
|
+
extensions: []
|
112
|
+
|
113
|
+
extra_rdoc_files: []
|
114
|
+
|
115
|
+
files:
|
116
|
+
- .gitignore
|
117
|
+
- .rvmrc
|
118
|
+
- Gemfile
|
119
|
+
- Rakefile
|
120
|
+
- example.rb
|
121
|
+
- lib/mira.rb
|
122
|
+
- lib/mira/embed_code.rb
|
123
|
+
- lib/mira/upload.rb
|
124
|
+
- lib/mira/version.rb
|
125
|
+
- mira.gemspec
|
126
|
+
- readme.md
|
127
|
+
- sample.mov
|
128
|
+
- spec/embed_code_spec.rb
|
129
|
+
- spec/spec_helper.rb
|
130
|
+
- spec/upload_spec.rb
|
131
|
+
homepage: ""
|
132
|
+
licenses: []
|
133
|
+
|
134
|
+
post_install_message:
|
135
|
+
rdoc_options: []
|
136
|
+
|
137
|
+
require_paths:
|
138
|
+
- lib
|
139
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
hash: 3
|
145
|
+
segments:
|
146
|
+
- 0
|
147
|
+
version: "0"
|
148
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
|
+
none: false
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
hash: 3
|
154
|
+
segments:
|
155
|
+
- 0
|
156
|
+
version: "0"
|
157
|
+
requirements: []
|
158
|
+
|
159
|
+
rubyforge_project: mira
|
160
|
+
rubygems_version: 1.8.3
|
161
|
+
signing_key:
|
162
|
+
specification_version: 3
|
163
|
+
summary: Bare minimum Viddler API v2
|
164
|
+
test_files:
|
165
|
+
- spec/embed_code_spec.rb
|
166
|
+
- spec/spec_helper.rb
|
167
|
+
- spec/upload_spec.rb
|