gdrivestrg 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +2 -0
- data/app/assets/javascripts/gdrivestrg/application.js +15 -0
- data/app/assets/javascripts/gdrivestrg/params.js +2 -0
- data/app/assets/stylesheets/gdrivestrg/application.css +13 -0
- data/app/assets/stylesheets/gdrivestrg/params.css +4 -0
- data/app/assets/stylesheets/scaffold.css +56 -0
- data/app/controllers/gdrivestrg/application_controller.rb +4 -0
- data/app/controllers/gdrivestrg/params_controller.rb +87 -0
- data/app/helpers/gdrivestrg/application_helper.rb +4 -0
- data/app/helpers/gdrivestrg/params_helper.rb +4 -0
- data/app/models/gdrivestrg/param.rb +7 -0
- data/app/models/gdrivestrg/param.rb~ +18 -0
- data/app/views/gdrivestrg/params/_form.html.erb +29 -0
- data/app/views/gdrivestrg/params/edit.html.erb +6 -0
- data/app/views/gdrivestrg/params/index.html.erb +27 -0
- data/app/views/gdrivestrg/params/new.html.erb +5 -0
- data/app/views/gdrivestrg/params/show.html.erb +20 -0
- data/app/views/layouts/gdrivestrg/application.html.erb +14 -0
- data/config/routes.rb +4 -0
- data/db/migrate/20121107140721_create_gdrivestrg_params.rb +27 -0
- data/db/migrate/20121107140721_create_gdrivestrg_params.rb~ +29 -0
- data/db/migrate/20121108121038_add_user_id_to_gdrivestrg_params.rb +5 -0
- data/db/migrate/20121108121038_add_user_id_to_gdrivestrg_params.rb~ +5 -0
- data/lib/gdrivestrg/engine.rb +7 -0
- data/lib/gdrivestrg/engine.rb~ +5 -0
- data/lib/gdrivestrg/gdrivestrg.rb +24 -21
- data/lib/gdrivestrg/gdrivestrg.rb~ +25 -22
- data/lib/gdrivestrg/version.rb +1 -1
- data/lib/gdrivestrg.rb +3 -0
- data/lib/gdrivestrg.rb~ +4 -0
- data/test/dummy/config/initializers/secret_token.rb +1 -1
- data/test/dummy/config/routes.rb +2 -56
- data/test/fixtures/gdrivestrg/params.yml +11 -0
- data/test/functional/gdrivestrg/params_controller_test.rb +51 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/unit/gdrivestrg/param_test.rb +9 -0
- data/test/unit/helpers/gdrivestrg/params_helper_test.rb +6 -0
- metadata +55 -9
- data/lib/generators/cloudstrg_generator.rb~ +0 -19
- data/lib/generators/dropboxstrg_generator.rb~ +0 -19
- data/lib/generators/gdrivestrg_generator.rb +0 -16
- data/lib/generators/gdrivestrg_generator.rb~ +0 -16
- data/lib/templates/create_gdrivestrgfields.rb +0 -17
data/Rakefile
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// the compiled file.
|
9
|
+
//
|
10
|
+
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
|
11
|
+
// GO AFTER THE REQUIRES BELOW.
|
12
|
+
//
|
13
|
+
//= require jquery
|
14
|
+
//= require jquery_ujs
|
15
|
+
//= require_tree .
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
+
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the top of the
|
9
|
+
* compiled file, but it's generally better to create a new file per style scope.
|
10
|
+
*
|
11
|
+
*= require_self
|
12
|
+
*= require_tree .
|
13
|
+
*/
|
@@ -0,0 +1,56 @@
|
|
1
|
+
body { background-color: #fff; color: #333; }
|
2
|
+
|
3
|
+
body, p, ol, ul, td {
|
4
|
+
font-family: verdana, arial, helvetica, sans-serif;
|
5
|
+
font-size: 13px;
|
6
|
+
line-height: 18px;
|
7
|
+
}
|
8
|
+
|
9
|
+
pre {
|
10
|
+
background-color: #eee;
|
11
|
+
padding: 10px;
|
12
|
+
font-size: 11px;
|
13
|
+
}
|
14
|
+
|
15
|
+
a { color: #000; }
|
16
|
+
a:visited { color: #666; }
|
17
|
+
a:hover { color: #fff; background-color:#000; }
|
18
|
+
|
19
|
+
div.field, div.actions {
|
20
|
+
margin-bottom: 10px;
|
21
|
+
}
|
22
|
+
|
23
|
+
#notice {
|
24
|
+
color: green;
|
25
|
+
}
|
26
|
+
|
27
|
+
.field_with_errors {
|
28
|
+
padding: 2px;
|
29
|
+
background-color: red;
|
30
|
+
display: table;
|
31
|
+
}
|
32
|
+
|
33
|
+
#error_explanation {
|
34
|
+
width: 450px;
|
35
|
+
border: 2px solid red;
|
36
|
+
padding: 7px;
|
37
|
+
padding-bottom: 0;
|
38
|
+
margin-bottom: 20px;
|
39
|
+
background-color: #f0f0f0;
|
40
|
+
}
|
41
|
+
|
42
|
+
#error_explanation h2 {
|
43
|
+
text-align: left;
|
44
|
+
font-weight: bold;
|
45
|
+
padding: 5px 5px 5px 15px;
|
46
|
+
font-size: 12px;
|
47
|
+
margin: -7px;
|
48
|
+
margin-bottom: 0px;
|
49
|
+
background-color: #c00;
|
50
|
+
color: #fff;
|
51
|
+
}
|
52
|
+
|
53
|
+
#error_explanation ul li {
|
54
|
+
font-size: 12px;
|
55
|
+
list-style: square;
|
56
|
+
}
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require_dependency "gdrivestrg/application_controller"
|
2
|
+
|
3
|
+
module Gdrivestrg
|
4
|
+
class ParamsController < ApplicationController
|
5
|
+
# GET /params
|
6
|
+
# GET /params.json
|
7
|
+
def index
|
8
|
+
@params = Param.all
|
9
|
+
|
10
|
+
respond_to do |format|
|
11
|
+
format.html # index.html.erb
|
12
|
+
format.json { render json: @params }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# GET /params/1
|
17
|
+
# GET /params/1.json
|
18
|
+
def show
|
19
|
+
@param = Param.find(params[:id])
|
20
|
+
|
21
|
+
respond_to do |format|
|
22
|
+
format.html # show.html.erb
|
23
|
+
format.json { render json: @param }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# GET /params/new
|
28
|
+
# GET /params/new.json
|
29
|
+
def new
|
30
|
+
@param = Param.new
|
31
|
+
|
32
|
+
respond_to do |format|
|
33
|
+
format.html # new.html.erb
|
34
|
+
format.json { render json: @param }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# GET /params/1/edit
|
39
|
+
def edit
|
40
|
+
@param = Param.find(params[:id])
|
41
|
+
end
|
42
|
+
|
43
|
+
# POST /params
|
44
|
+
# POST /params.json
|
45
|
+
def create
|
46
|
+
@param = Param.new(params[:param])
|
47
|
+
|
48
|
+
respond_to do |format|
|
49
|
+
if @param.save
|
50
|
+
format.html { redirect_to @param, notice: 'Param was successfully created.' }
|
51
|
+
format.json { render json: @param, status: :created, location: @param }
|
52
|
+
else
|
53
|
+
format.html { render action: "new" }
|
54
|
+
format.json { render json: @param.errors, status: :unprocessable_entity }
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# PUT /params/1
|
60
|
+
# PUT /params/1.json
|
61
|
+
def update
|
62
|
+
@param = Param.find(params[:id])
|
63
|
+
|
64
|
+
respond_to do |format|
|
65
|
+
if @param.update_attributes(params[:param])
|
66
|
+
format.html { redirect_to @param, notice: 'Param was successfully updated.' }
|
67
|
+
format.json { head :no_content }
|
68
|
+
else
|
69
|
+
format.html { render action: "edit" }
|
70
|
+
format.json { render json: @param.errors, status: :unprocessable_entity }
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
# DELETE /params/1
|
76
|
+
# DELETE /params/1.json
|
77
|
+
def destroy
|
78
|
+
@param = Param.find(params[:id])
|
79
|
+
@param.destroy
|
80
|
+
|
81
|
+
respond_to do |format|
|
82
|
+
format.html { redirect_to params_url }
|
83
|
+
format.json { head :no_content }
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Gdrivestrg
|
2
|
+
class Param < ActiveRecord::Base
|
3
|
+
attr_accessible :expires_in, :issued_at, :refresh_token
|
4
|
+
|
5
|
+
attr_accessor :user_email
|
6
|
+
belongs_to :user, :class_name => Gdrivestrg.user_class
|
7
|
+
|
8
|
+
before_save :set_user
|
9
|
+
|
10
|
+
private
|
11
|
+
def set_user
|
12
|
+
self.user = Gdrivestrg.user_class.constantize.find_by_email(user_email)
|
13
|
+
if not self.user
|
14
|
+
return false
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<%= form_for(@param) do |f| %>
|
2
|
+
<% if @param.errors.any? %>
|
3
|
+
<div id="error_explanation">
|
4
|
+
<h2><%= pluralize(@param.errors.count, "error") %> prohibited this param from being saved:</h2>
|
5
|
+
|
6
|
+
<ul>
|
7
|
+
<% @param.errors.full_messages.each do |msg| %>
|
8
|
+
<li><%= msg %></li>
|
9
|
+
<% end %>
|
10
|
+
</ul>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<div class="field">
|
15
|
+
<%= f.label :refresh_token %><br />
|
16
|
+
<%= f.text_field :refresh_token %>
|
17
|
+
</div>
|
18
|
+
<div class="field">
|
19
|
+
<%= f.label :expires_in %><br />
|
20
|
+
<%= f.number_field :expires_in %>
|
21
|
+
</div>
|
22
|
+
<div class="field">
|
23
|
+
<%= f.label :issued_at %><br />
|
24
|
+
<%= f.date_select :issued_at %>
|
25
|
+
</div>
|
26
|
+
<div class="actions">
|
27
|
+
<%= f.submit %>
|
28
|
+
</div>
|
29
|
+
<% end %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<h1>Listing params</h1>
|
2
|
+
|
3
|
+
<table>
|
4
|
+
<tr>
|
5
|
+
<th>Refresh token</th>
|
6
|
+
<th>Expires in</th>
|
7
|
+
<th>Issued at</th>
|
8
|
+
<th></th>
|
9
|
+
<th></th>
|
10
|
+
<th></th>
|
11
|
+
</tr>
|
12
|
+
|
13
|
+
<% @params.each do |param| %>
|
14
|
+
<tr>
|
15
|
+
<td><%= param.refresh_token %></td>
|
16
|
+
<td><%= param.expires_in %></td>
|
17
|
+
<td><%= param.issued_at %></td>
|
18
|
+
<td><%= link_to 'Show', param %></td>
|
19
|
+
<td><%= link_to 'Edit', edit_param_path(param) %></td>
|
20
|
+
<td><%= link_to 'Destroy', param, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
21
|
+
</tr>
|
22
|
+
<% end %>
|
23
|
+
</table>
|
24
|
+
|
25
|
+
<br />
|
26
|
+
|
27
|
+
<%= link_to 'New Param', new_param_path %>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<p id="notice"><%= notice %></p>
|
2
|
+
|
3
|
+
<p>
|
4
|
+
<b>Refresh token:</b>
|
5
|
+
<%= @param.refresh_token %>
|
6
|
+
</p>
|
7
|
+
|
8
|
+
<p>
|
9
|
+
<b>Expires in:</b>
|
10
|
+
<%= @param.expires_in %>
|
11
|
+
</p>
|
12
|
+
|
13
|
+
<p>
|
14
|
+
<b>Issued at:</b>
|
15
|
+
<%= @param.issued_at %>
|
16
|
+
</p>
|
17
|
+
|
18
|
+
|
19
|
+
<%= link_to 'Edit', edit_param_path(@param) %> |
|
20
|
+
<%= link_to 'Back', params_path %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Gdrivestrg</title>
|
5
|
+
<%= stylesheet_link_tag "gdrivestrg/application", :media => "all" %>
|
6
|
+
<%= javascript_include_tag "gdrivestrg/application" %>
|
7
|
+
<%= csrf_meta_tags %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<%= yield %>
|
12
|
+
|
13
|
+
</body>
|
14
|
+
</html>
|
data/config/routes.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'gdrivestrg/version'
|
2
|
+
|
3
|
+
class CreateGdrivestrgParams < ActiveRecord::Migration
|
4
|
+
def change
|
5
|
+
create_table :gdrivestrg_params do |t|
|
6
|
+
t.string :refresh_token
|
7
|
+
t.integer :expires_in
|
8
|
+
t.date :issued_at
|
9
|
+
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
|
13
|
+
plugin = Cloudstrg::Cloudstrgplugin.find_by_plugin_name("gdrive")
|
14
|
+
if not plugin
|
15
|
+
puts "Inserting Google Drive plugin"
|
16
|
+
Cloudstrg::Cloudstrgplugin.create :plugin_name => "gdrive", :version => Gdrivestrg::VERSION
|
17
|
+
else
|
18
|
+
if Gdrivestrg::VERSION > plugin.version
|
19
|
+
puts "Updating Google Drive plugin version: #{Gdrivestrg::VERSION}"
|
20
|
+
plugin.version = Gdrivestrg::VERSION
|
21
|
+
plugin.save
|
22
|
+
else
|
23
|
+
puts "Google Drive plugin is up to date"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'gdrivestrg/version'
|
2
|
+
|
3
|
+
class CreateGdrivestrgParams < ActiveRecord::Migration
|
4
|
+
def change
|
5
|
+
create_table :gdrivestrg_params do |t|
|
6
|
+
t.string :refresh_token
|
7
|
+
t.integer :expires_in
|
8
|
+
t.date :issued_at
|
9
|
+
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
|
13
|
+
plugins = Cloudstrg::Cloudstrgplugin.find_by_plugin_name("gdrive")
|
14
|
+
if not plugins
|
15
|
+
puts "Inserting Google Drive plugin"
|
16
|
+
Cloudstrg::Cloudstrgplugin.create :plugin_name => "gdrive", :version => Gdrivestrg::VERSION
|
17
|
+
else
|
18
|
+
plugins.each do |plugin|
|
19
|
+
if Gdrivestrg::VERSION > plugin.version
|
20
|
+
puts "Updating Google Drive plugin version: #{Gdrivestrg::VERSION}"
|
21
|
+
plugin.version = Gdrivestrg::VERSION
|
22
|
+
plugin.save
|
23
|
+
else
|
24
|
+
puts "Google Drive plugin is up to date"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -25,23 +25,26 @@ class GdriveStrg < CloudStrg::CloudStorage
|
|
25
25
|
def config params
|
26
26
|
@client.authorization.redirect_uri = params[:redirect]
|
27
27
|
|
28
|
-
@
|
29
|
-
|
28
|
+
@user = params[:user]
|
29
|
+
user_params = @user.gdrivestrgparams
|
30
|
+
if not user_params
|
31
|
+
user_params = @user.build_gdrivestrgparams
|
32
|
+
end
|
30
33
|
|
31
34
|
session = params[:session]
|
32
35
|
|
33
|
-
@client.authorization.update_token!(:access_token => session[:gdrive_access_token] , #:access_token =>
|
34
|
-
:refresh_token =>
|
35
|
-
:expires_in =>
|
36
|
-
:issued_at =>
|
36
|
+
@client.authorization.update_token!(:access_token => session[:gdrive_access_token] , #:access_token => user_params.access_token,
|
37
|
+
:refresh_token => user_params.refresh_token,
|
38
|
+
:expires_in => user_params.expires_in,
|
39
|
+
:issued_at => user_params.issued_at)
|
37
40
|
if @client.authorization.refresh_token && @client.authorization.expired?
|
38
41
|
@client.authorization.fetch_access_token!
|
39
42
|
session[:gdrive_access_token] = @client.authorization.access_token
|
40
43
|
# user.gdrive_access_token = @client.authorization.access_token
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
44
|
+
user_params.refresh_token = @client.authorization.refresh_token
|
45
|
+
user_params.expires_in = @client.authorization.expires_in
|
46
|
+
user_params.issued_at = @client.authorization.issued_at
|
47
|
+
user_params.save()
|
45
48
|
end
|
46
49
|
|
47
50
|
|
@@ -50,10 +53,10 @@ class GdriveStrg < CloudStrg::CloudStorage
|
|
50
53
|
|
51
54
|
session[:gdrive_access_token] = @client.authorization.access_token
|
52
55
|
# user.gdrive_access_token = @client.authorization.access_token
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
56
|
+
user_params.refresh_token = @client.authorization.refresh_token
|
57
|
+
user_params.expires_in = @client.authorization.expires_in
|
58
|
+
user_params.issued_at = @client.authorization.issued_at
|
59
|
+
user_params.save()
|
57
60
|
elsif params[:error] # User denied the oauth grant
|
58
61
|
puts "Denied: #{params[:error]}"
|
59
62
|
end
|
@@ -68,7 +71,6 @@ class GdriveStrg < CloudStrg::CloudStorage
|
|
68
71
|
|
69
72
|
def create_file params
|
70
73
|
filename = params[:filename]
|
71
|
-
filename += ".json" if not filename.include? ".json"
|
72
74
|
|
73
75
|
file = @drive_api.files.insert.request_schema.new({'title' => filename, 'description' => 'Netlab scenario', 'mimeType' => 'text/json'})
|
74
76
|
media=Google::APIClient::UploadIO.new(StringIO.new(params[:file_content]), 'text/json')
|
@@ -76,11 +78,12 @@ class GdriveStrg < CloudStrg::CloudStorage
|
|
76
78
|
if r.status != 200
|
77
79
|
return false
|
78
80
|
end
|
79
|
-
|
81
|
+
return save_remoteobject(@user, filename, params[:file_content], r.data.id)
|
82
|
+
|
80
83
|
end
|
81
84
|
|
82
|
-
def create_folder params
|
83
|
-
end
|
85
|
+
#def create_folder params
|
86
|
+
#end
|
84
87
|
|
85
88
|
def get_file params
|
86
89
|
r = @client.execute!(:api_method => @drive_api.files.get, :parameters => {'fileId' => params[:fileid]})
|
@@ -98,7 +101,6 @@ class GdriveStrg < CloudStrg::CloudStorage
|
|
98
101
|
|
99
102
|
def update_file params
|
100
103
|
filename = params[:filename]
|
101
|
-
filename += ".json" if not filename.include? ".json"
|
102
104
|
|
103
105
|
file = @drive_api.files.insert.request_schema.new({'title' => filename, 'description' => 'Netlab scenario', 'mimeType' => 'text/json'})
|
104
106
|
media=Google::APIClient::UploadIO.new(StringIO.new(params[:file_content]), 'text/json')
|
@@ -106,7 +108,8 @@ class GdriveStrg < CloudStrg::CloudStorage
|
|
106
108
|
if r.status != 200
|
107
109
|
return false
|
108
110
|
end
|
109
|
-
|
111
|
+
return save_remoteobject(@user, filename, params[:file_content], params[:file_id])
|
112
|
+
|
110
113
|
end
|
111
114
|
|
112
115
|
def remove_file params
|
@@ -121,7 +124,7 @@ class GdriveStrg < CloudStrg::CloudStorage
|
|
121
124
|
|
122
125
|
lines = []
|
123
126
|
r.data.items.each do |line|
|
124
|
-
lines.append([line.title, line.id])
|
127
|
+
lines.append([line.title, line.id])
|
125
128
|
end
|
126
129
|
return lines
|
127
130
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'cloudstrg/cloudstrg'
|
2
2
|
|
3
|
-
class
|
3
|
+
class GdriveStrg < CloudStrg::CloudStorage
|
4
4
|
require 'google/api_client'
|
5
5
|
|
6
6
|
CLIENT_ID = "867108581948.apps.googleusercontent.com"
|
@@ -25,23 +25,26 @@ class GdriveStorage < CloudStrg::CloudStorage
|
|
25
25
|
def config params
|
26
26
|
@client.authorization.redirect_uri = params[:redirect]
|
27
27
|
|
28
|
-
@
|
29
|
-
|
28
|
+
@user = params[:user]
|
29
|
+
user_params = @user.gdrivestrgparams
|
30
|
+
if not user_params
|
31
|
+
user_params = @user.gdrivestrgparams.build
|
32
|
+
end
|
30
33
|
|
31
34
|
session = params[:session]
|
32
35
|
|
33
|
-
@client.authorization.update_token!(:access_token => session[:gdrive_access_token] , #:access_token =>
|
34
|
-
:refresh_token =>
|
35
|
-
:expires_in =>
|
36
|
-
:issued_at =>
|
36
|
+
@client.authorization.update_token!(:access_token => session[:gdrive_access_token] , #:access_token => user_params.access_token,
|
37
|
+
:refresh_token => user_params.refresh_token,
|
38
|
+
:expires_in => user_params.expires_in,
|
39
|
+
:issued_at => user_params.issued_at)
|
37
40
|
if @client.authorization.refresh_token && @client.authorization.expired?
|
38
41
|
@client.authorization.fetch_access_token!
|
39
42
|
session[:gdrive_access_token] = @client.authorization.access_token
|
40
43
|
# user.gdrive_access_token = @client.authorization.access_token
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
44
|
+
user_params.refresh_token = @client.authorization.refresh_token
|
45
|
+
user_params.expires_in = @client.authorization.expires_in
|
46
|
+
user_params.issued_at = @client.authorization.issued_at
|
47
|
+
user_params.save()
|
45
48
|
end
|
46
49
|
|
47
50
|
|
@@ -50,10 +53,10 @@ class GdriveStorage < CloudStrg::CloudStorage
|
|
50
53
|
|
51
54
|
session[:gdrive_access_token] = @client.authorization.access_token
|
52
55
|
# user.gdrive_access_token = @client.authorization.access_token
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
56
|
+
user_params.refresh_token = @client.authorization.refresh_token
|
57
|
+
user_params.expires_in = @client.authorization.expires_in
|
58
|
+
user_params.issued_at = @client.authorization.issued_at
|
59
|
+
user_params.save()
|
57
60
|
elsif params[:error] # User denied the oauth grant
|
58
61
|
puts "Denied: #{params[:error]}"
|
59
62
|
end
|
@@ -68,7 +71,6 @@ class GdriveStorage < CloudStrg::CloudStorage
|
|
68
71
|
|
69
72
|
def create_file params
|
70
73
|
filename = params[:filename]
|
71
|
-
filename += ".json" if not filename.include? ".json"
|
72
74
|
|
73
75
|
file = @drive_api.files.insert.request_schema.new({'title' => filename, 'description' => 'Netlab scenario', 'mimeType' => 'text/json'})
|
74
76
|
media=Google::APIClient::UploadIO.new(StringIO.new(params[:file_content]), 'text/json')
|
@@ -76,11 +78,12 @@ class GdriveStorage < CloudStrg::CloudStorage
|
|
76
78
|
if r.status != 200
|
77
79
|
return false
|
78
80
|
end
|
79
|
-
|
81
|
+
return save_remoteobject(@user, filename, params[:file_content], r.data.id)
|
82
|
+
|
80
83
|
end
|
81
84
|
|
82
|
-
def create_folder params
|
83
|
-
end
|
85
|
+
#def create_folder params
|
86
|
+
#end
|
84
87
|
|
85
88
|
def get_file params
|
86
89
|
r = @client.execute!(:api_method => @drive_api.files.get, :parameters => {'fileId' => params[:fileid]})
|
@@ -98,7 +101,6 @@ class GdriveStorage < CloudStrg::CloudStorage
|
|
98
101
|
|
99
102
|
def update_file params
|
100
103
|
filename = params[:filename]
|
101
|
-
filename += ".json" if not filename.include? ".json"
|
102
104
|
|
103
105
|
file = @drive_api.files.insert.request_schema.new({'title' => filename, 'description' => 'Netlab scenario', 'mimeType' => 'text/json'})
|
104
106
|
media=Google::APIClient::UploadIO.new(StringIO.new(params[:file_content]), 'text/json')
|
@@ -106,7 +108,8 @@ class GdriveStorage < CloudStrg::CloudStorage
|
|
106
108
|
if r.status != 200
|
107
109
|
return false
|
108
110
|
end
|
109
|
-
|
111
|
+
return save_remoteobject(@user, filename, params[:file_content], params[:file_id])
|
112
|
+
|
110
113
|
end
|
111
114
|
|
112
115
|
def remove_file params
|
@@ -121,7 +124,7 @@ class GdriveStorage < CloudStrg::CloudStorage
|
|
121
124
|
|
122
125
|
lines = []
|
123
126
|
r.data.items.each do |line|
|
124
|
-
lines.append([line.title, line.id])
|
127
|
+
lines.append([line.title, line.id])
|
125
128
|
end
|
126
129
|
return lines
|
127
130
|
end
|
data/lib/gdrivestrg/version.rb
CHANGED
data/lib/gdrivestrg.rb
CHANGED
data/lib/gdrivestrg.rb~
ADDED
@@ -4,4 +4,4 @@
|
|
4
4
|
# If you change this key, all old signed cookies will become invalid!
|
5
5
|
# Make sure the secret is at least 30 characters and all random,
|
6
6
|
# no regular words or you'll be exposed to dictionary attacks.
|
7
|
-
Dummy::Application.config.secret_token = '
|
7
|
+
Dummy::Application.config.secret_token = '73d8e44752ea24886d813d64ace8177575cc20b31acde6bee82530d049375092ad382809cd8a43042533753d258be2e13e59b529b3a910e24d914598ca3b86bd'
|
data/test/dummy/config/routes.rb
CHANGED
@@ -1,58 +1,4 @@
|
|
1
|
-
|
2
|
-
# The priority is based upon order of creation:
|
3
|
-
# first created -> highest priority.
|
1
|
+
Rails.application.routes.draw do
|
4
2
|
|
5
|
-
|
6
|
-
# match 'products/:id' => 'catalog#view'
|
7
|
-
# Keep in mind you can assign values other than :controller and :action
|
8
|
-
|
9
|
-
# Sample of named route:
|
10
|
-
# match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
|
11
|
-
# This route can be invoked with purchase_url(:id => product.id)
|
12
|
-
|
13
|
-
# Sample resource route (maps HTTP verbs to controller actions automatically):
|
14
|
-
# resources :products
|
15
|
-
|
16
|
-
# Sample resource route with options:
|
17
|
-
# resources :products do
|
18
|
-
# member do
|
19
|
-
# get 'short'
|
20
|
-
# post 'toggle'
|
21
|
-
# end
|
22
|
-
#
|
23
|
-
# collection do
|
24
|
-
# get 'sold'
|
25
|
-
# end
|
26
|
-
# end
|
27
|
-
|
28
|
-
# Sample resource route with sub-resources:
|
29
|
-
# resources :products do
|
30
|
-
# resources :comments, :sales
|
31
|
-
# resource :seller
|
32
|
-
# end
|
33
|
-
|
34
|
-
# Sample resource route with more complex sub-resources
|
35
|
-
# resources :products do
|
36
|
-
# resources :comments
|
37
|
-
# resources :sales do
|
38
|
-
# get 'recent', :on => :collection
|
39
|
-
# end
|
40
|
-
# end
|
41
|
-
|
42
|
-
# Sample resource route within a namespace:
|
43
|
-
# namespace :admin do
|
44
|
-
# # Directs /admin/products/* to Admin::ProductsController
|
45
|
-
# # (app/controllers/admin/products_controller.rb)
|
46
|
-
# resources :products
|
47
|
-
# end
|
48
|
-
|
49
|
-
# You can have the root of your site routed with "root"
|
50
|
-
# just remember to delete public/index.html.
|
51
|
-
# root :to => 'welcome#index'
|
52
|
-
|
53
|
-
# See how all your routes lay out with "rake routes"
|
54
|
-
|
55
|
-
# This is a legacy wild controller route that's not recommended for RESTful applications.
|
56
|
-
# Note: This route will make all actions in every controller accessible via GET requests.
|
57
|
-
# match ':controller(/:action(/:id))(.:format)'
|
3
|
+
mount Gdrivestrg::Engine => "/gdrivestrg"
|
58
4
|
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Gdrivestrg
|
4
|
+
class ParamsControllerTest < ActionController::TestCase
|
5
|
+
setup do
|
6
|
+
@param = params(:one)
|
7
|
+
end
|
8
|
+
|
9
|
+
test "should get index" do
|
10
|
+
get :index
|
11
|
+
assert_response :success
|
12
|
+
assert_not_nil assigns(:params)
|
13
|
+
end
|
14
|
+
|
15
|
+
test "should get new" do
|
16
|
+
get :new
|
17
|
+
assert_response :success
|
18
|
+
end
|
19
|
+
|
20
|
+
test "should create param" do
|
21
|
+
assert_difference('Param.count') do
|
22
|
+
post :create, param: { expires_in: @param.expires_in, issued_at: @param.issued_at, refresh_token: @param.refresh_token }
|
23
|
+
end
|
24
|
+
|
25
|
+
assert_redirected_to param_path(assigns(:param))
|
26
|
+
end
|
27
|
+
|
28
|
+
test "should show param" do
|
29
|
+
get :show, id: @param
|
30
|
+
assert_response :success
|
31
|
+
end
|
32
|
+
|
33
|
+
test "should get edit" do
|
34
|
+
get :edit, id: @param
|
35
|
+
assert_response :success
|
36
|
+
end
|
37
|
+
|
38
|
+
test "should update param" do
|
39
|
+
put :update, id: @param, param: { expires_in: @param.expires_in, issued_at: @param.issued_at, refresh_token: @param.refresh_token }
|
40
|
+
assert_redirected_to param_path(assigns(:param))
|
41
|
+
end
|
42
|
+
|
43
|
+
test "should destroy param" do
|
44
|
+
assert_difference('Param.count', -1) do
|
45
|
+
delete :destroy, id: @param
|
46
|
+
end
|
47
|
+
|
48
|
+
assert_redirected_to params_path
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gdrivestrg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -34,7 +34,7 @@ dependencies:
|
|
34
34
|
requirements:
|
35
35
|
- - ~>
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 0.0.
|
37
|
+
version: 0.0.6
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,23 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 0.0.
|
45
|
+
version: 0.0.6
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: google-api-client
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.4.4
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.4.4
|
46
62
|
- !ruby/object:Gem::Dependency
|
47
63
|
name: sqlite3
|
48
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,21 +82,46 @@ executables: []
|
|
66
82
|
extensions: []
|
67
83
|
extra_rdoc_files: []
|
68
84
|
files:
|
85
|
+
- app/helpers/gdrivestrg/params_helper.rb
|
86
|
+
- app/helpers/gdrivestrg/application_helper.rb
|
87
|
+
- app/models/gdrivestrg/param.rb~
|
88
|
+
- app/models/gdrivestrg/param.rb
|
89
|
+
- app/assets/stylesheets/scaffold.css
|
90
|
+
- app/assets/stylesheets/gdrivestrg/params.css
|
91
|
+
- app/assets/stylesheets/gdrivestrg/application.css
|
92
|
+
- app/assets/javascripts/gdrivestrg/params.js
|
93
|
+
- app/assets/javascripts/gdrivestrg/application.js
|
94
|
+
- app/views/gdrivestrg/params/new.html.erb
|
95
|
+
- app/views/gdrivestrg/params/show.html.erb
|
96
|
+
- app/views/gdrivestrg/params/edit.html.erb
|
97
|
+
- app/views/gdrivestrg/params/_form.html.erb
|
98
|
+
- app/views/gdrivestrg/params/index.html.erb
|
99
|
+
- app/views/layouts/gdrivestrg/application.html.erb
|
100
|
+
- app/controllers/gdrivestrg/application_controller.rb
|
101
|
+
- app/controllers/gdrivestrg/params_controller.rb
|
102
|
+
- config/routes.rb
|
103
|
+
- db/migrate/20121107140721_create_gdrivestrg_params.rb~
|
104
|
+
- db/migrate/20121107140721_create_gdrivestrg_params.rb
|
105
|
+
- db/migrate/20121108121038_add_user_id_to_gdrivestrg_params.rb
|
106
|
+
- db/migrate/20121108121038_add_user_id_to_gdrivestrg_params.rb~
|
69
107
|
- lib/tasks/gdrivestrg_tasks.rake
|
70
|
-
- lib/
|
71
|
-
- lib/generators/dropboxstrg_generator.rb~
|
72
|
-
- lib/generators/gdrivestrg_generator.rb~
|
73
|
-
- lib/generators/cloudstrg_generator.rb~
|
108
|
+
- lib/gdrivestrg.rb~
|
74
109
|
- lib/gdrivestrg/version.rb
|
110
|
+
- lib/gdrivestrg/engine.rb
|
75
111
|
- lib/gdrivestrg/gdrivestrg.rb~
|
76
112
|
- lib/gdrivestrg/gdrivestrg.rb
|
113
|
+
- lib/gdrivestrg/engine.rb~
|
77
114
|
- lib/gdrivestrg.rb
|
78
|
-
- lib/templates/create_gdrivestrgfields.rb
|
79
115
|
- MIT-LICENSE
|
80
116
|
- Rakefile
|
81
117
|
- README.rdoc
|
118
|
+
- test/functional/gdrivestrg/params_controller_test.rb
|
82
119
|
- test/gdrivestrg_test.rb
|
120
|
+
- test/unit/helpers/gdrivestrg/params_helper_test.rb
|
121
|
+
- test/unit/gdrivestrg/param_test.rb
|
83
122
|
- test/test_helper.rb
|
123
|
+
- test/integration/navigation_test.rb
|
124
|
+
- test/fixtures/gdrivestrg/params.yml
|
84
125
|
- test/dummy/script/rails
|
85
126
|
- test/dummy/config.ru
|
86
127
|
- test/dummy/app/helpers/application_helper.rb
|
@@ -134,8 +175,13 @@ signing_key:
|
|
134
175
|
specification_version: 3
|
135
176
|
summary: Ruby plugin that installs a Google Drive driver
|
136
177
|
test_files:
|
178
|
+
- test/functional/gdrivestrg/params_controller_test.rb
|
137
179
|
- test/gdrivestrg_test.rb
|
180
|
+
- test/unit/helpers/gdrivestrg/params_helper_test.rb
|
181
|
+
- test/unit/gdrivestrg/param_test.rb
|
138
182
|
- test/test_helper.rb
|
183
|
+
- test/integration/navigation_test.rb
|
184
|
+
- test/fixtures/gdrivestrg/params.yml
|
139
185
|
- test/dummy/script/rails
|
140
186
|
- test/dummy/config.ru
|
141
187
|
- test/dummy/app/helpers/application_helper.rb
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'rails/generators'
|
2
|
-
require 'rails/generators/migration'
|
3
|
-
|
4
|
-
class CloudstrgGenerator < Rails::Generators::Base
|
5
|
-
include Rails::Generators::Migration
|
6
|
-
source_root File.expand_path('../../templates', __FILE__)
|
7
|
-
|
8
|
-
def self.next_migration_number(path)
|
9
|
-
Time.now.utc.strftime("%Y%m%d%H%M%S%6N")
|
10
|
-
end
|
11
|
-
|
12
|
-
def create_model_file
|
13
|
-
template "cloudstrglist.rb", "app/models/cloudstrglist.rb"
|
14
|
-
template "cloudstrguser.rb", "app/models/cloudstrguser.rb"
|
15
|
-
migration_template "create_cloudstrglists.rb", "db/migrate/create_cloudstrglists.rb"
|
16
|
-
migration_template "create_cloudstrgusers.rb", "db/migrate/create_cloudstrguser.rb"
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'rails/generators'
|
2
|
-
require 'rails/generators/migration'
|
3
|
-
|
4
|
-
class CloudstrgGenerator < Rails::Generators::Base
|
5
|
-
include Rails::Generators::Migration
|
6
|
-
source_root File.expand_path('../../templates', __FILE__)
|
7
|
-
|
8
|
-
def self.next_migration_number(path)
|
9
|
-
Time.now.utc.strftime("%Y%m%d%H%M%S%6N")
|
10
|
-
end
|
11
|
-
|
12
|
-
def create_model_file
|
13
|
-
template "cloudstrglist.rb", "app/models/cloudstrglist.rb"
|
14
|
-
template "cloudstrguser.rb", "app/models/cloudstrguser.rb"
|
15
|
-
migration_template "create_cloudstrglists.rb", "db/migrate/create_cloudstrglists.rb"
|
16
|
-
migration_template "create_cloudstrgusers.rb", "db/migrate/create_cloudstrgusers.rb"
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require 'rails/generators'
|
2
|
-
require 'rails/generators/migration'
|
3
|
-
|
4
|
-
class GdrivestrgGenerator < Rails::Generators::Base
|
5
|
-
include Rails::Generators::Migration
|
6
|
-
source_root File.expand_path('../../templates', __FILE__)
|
7
|
-
|
8
|
-
def self.next_migration_number(path)
|
9
|
-
Time.now.utc.strftime("%Y%m%d%H%M%S%6N")
|
10
|
-
end
|
11
|
-
|
12
|
-
def create_model_file
|
13
|
-
migration_template "create_gdrivestrgfields.rb", "db/migrate/create_gdrivestrgfields.rb"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require 'rails/generators'
|
2
|
-
require 'rails/generators/migration'
|
3
|
-
|
4
|
-
class CloudstrgGenerator < Rails::Generators::Base
|
5
|
-
include Rails::Generators::Migration
|
6
|
-
source_root File.expand_path('../../templates', __FILE__)
|
7
|
-
|
8
|
-
def self.next_migration_number(path)
|
9
|
-
Time.now.utc.strftime("%Y%m%d%H%M%S%6N")
|
10
|
-
end
|
11
|
-
|
12
|
-
def create_model_file
|
13
|
-
migration_template "create_dropboxstrgfields.rb", "db/migrate/create_dropboxstrgfields.rb"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
@@ -1,17 +0,0 @@
|
|
1
|
-
class CreateGdrivestrgfields < ActiveRecord::Migration
|
2
|
-
def up
|
3
|
-
add_column :cloudstrgusers, :gdrive_refresh_token, :string
|
4
|
-
add_column :cloudstrgusers, :gdrive_expires_in, :integer
|
5
|
-
add_column :cloudstrgusers, :gdrive_issued_at, :date
|
6
|
-
|
7
|
-
Cloudstrglist.create :plugin_name => "gdrive"
|
8
|
-
end
|
9
|
-
|
10
|
-
def down
|
11
|
-
remove_column :cloudstrgusers, :gdrive_refresh_token
|
12
|
-
remove_column :cloudstrgusers, :gdrive_expires_in
|
13
|
-
remove_column :cloudstrgusers, :gdrive_issued_at
|
14
|
-
|
15
|
-
Cloudstrglist.delete_all :plugin_name => "gdrive"
|
16
|
-
end
|
17
|
-
end
|