gdrivestrg 0.0.1 → 0.0.2
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/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
|