browse-everything 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/HISTORY.md +4 -0
- data/README.md +71 -81
- data/app/assets/stylesheets/browse_everything.css.scss +3 -1
- data/browse-everything.gemspec +1 -0
- data/lib/browse_everything/driver/file_system.rb +1 -1
- data/lib/browse_everything/version.rb +1 -1
- data/lib/generators/browse_everything/config_generator.rb +31 -0
- data/lib/generators/browse_everything/templates/browse_everything_providers.yml.example +16 -0
- data/spec/fixtures/vcr_cassettes/dropbox.yml +78 -0
- data/spec/support/lib/generators/test_app_generator.rb +5 -10
- metadata +18 -4
- data/spec/support/config/browse_everything_providers.yml.example +0 -15
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OGZmMTA5NTFiMmVjY2M2YWUzMTU0Mzc0NzI3ZWJmZDFjY2ZjYTkzNg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MDUwODBiZWQ1NDRiMDRmZThlNWJmN2I3NDU5MjM5YzMzMmMyMGE4OA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZWE3YjBiNTM5OWNlOWI2ZDU3ZTJhYTYzMTE2MWQ3M2I1ZjBiZWRjMTRkYmY5
|
10
|
+
MzZjMjI0ZThmNWJiOTM2ZThjMTA2Njc5ZDFiZTc4ZTJhNTFmZTk3ODRkOGFh
|
11
|
+
ODE2YzQxMTFkOWQzMmUwNDFlMDMxMWU2MzRjMWZkYzBlOGE4NjE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZGI3OGRhYmYwODgwMGYyOTA3Nzk0MzgwZmEzNmYwMjFiYjc0NTY2OTkxMjY5
|
14
|
+
NWUyNDA2NDYwNDExNDJkNWU5MzBhM2JmMTYyMDEyOGY3MDMxYzU2MjhkNWFh
|
15
|
+
YTM4MDFhOTI0NGE3NDY3ODMyZDg5MzhiNzc4NzIxNDU2ZWMyMmQ=
|
data/HISTORY.md
CHANGED
data/README.md
CHANGED
@@ -25,75 +25,36 @@ And then execute:
|
|
25
25
|
Or install it yourself as:
|
26
26
|
|
27
27
|
$ gem install browse-everything
|
28
|
+
|
29
|
+
### Configuring the gem
|
30
|
+
|
31
|
+
After installing the gem, run the generator
|
28
32
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
To use the gem you will need to configure the providers by providing applcation keys that are required by each provider
|
34
|
-
|
35
|
-
An example config/browse_everything_providers.yml:
|
36
|
-
|
37
|
-
```yaml
|
38
|
-
---
|
39
|
-
file_system:
|
40
|
-
:home: /<location for server file drop>
|
41
|
-
sky_drive:
|
42
|
-
:client_id: <your client id>
|
43
|
-
:client_secret: <your client secret>
|
44
|
-
box:
|
45
|
-
:client_id: <your client id>
|
46
|
-
:client_secret: <your client secret>
|
47
|
-
drop_box:
|
48
|
-
:app_key: <your client id>
|
49
|
-
:app_secret: <your app secret>
|
50
|
-
google_drive:
|
51
|
-
:client_id: <your client id>
|
52
|
-
:client_secret: <your client secret>
|
53
|
-
```
|
33
|
+
$ rails g browse_anything:config
|
34
|
+
|
35
|
+
This generator will set up the _config/browse_everything_providers.yml_ file and add the browse-everything engine to your application's routes.
|
54
36
|
|
55
|
-
|
37
|
+
If you prefer not to use the generator, or need info on how to set up providers in the browse_everything_providers.yml, use the info on [Configuring browse-everything](https://github.com/projecthydra/browse-everything/wiki/Configuring-browse-everything).
|
56
38
|
|
57
|
-
|
58
|
-
* Dropbox: [https://www.dropbox.com/developers/apps/create](https://www.dropbox.com/developers/apps/create)
|
59
|
-
* Box: [https://app.box.com/developers/services/edit/](https://app.box.com/developers/services/edit/)
|
60
|
-
* GoogleDrive: [https://code.google.com/apis/console](https://code.google.com/apis/console)
|
61
|
-
|
62
|
-
### CSS and JavaScript Modifications
|
39
|
+
### Include the CSS and JavaScript
|
63
40
|
|
64
41
|
Add `@import "browse_everything";` to your application.css.scss
|
65
42
|
|
66
43
|
Add `//= require browse_everything` to your application.js
|
67
44
|
|
68
|
-
|
45
|
+
## Usage
|
69
46
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
```
|
47
|
+
### Adding Providers
|
48
|
+
In order to connect to a provider like [DropBox](http://www.dropbox.com),
|
49
|
+
[Skydrive](https://skydrive.live.com/), [Google Drive](http://drive.google.com), or
|
50
|
+
[Box](http://www.box.com), you must provide API keys in _config/browse_everything_providers.yml_. For info on how to edit this file, see [Configuring browse-everything](https://github.com/projecthydra/browse-everything/wiki/Configuring-browse-everything)
|
75
51
|
|
76
52
|
### Views
|
77
53
|
|
78
|
-
browse-everything can be triggered in
|
79
|
-
|
80
|
-
#### Via data attributes
|
81
|
-
|
82
|
-
```html
|
83
|
-
<button type="button" data-toggle="browse-everything" data-route="<%=browse_everything_engine.root_path%>"
|
84
|
-
data-target="#myForm" class="btn btn-large btn-success" id="browse">Browse!</button>
|
85
|
-
```
|
86
|
-
|
87
|
-
#### Via JavaScript
|
88
|
-
|
89
|
-
```javascript
|
90
|
-
$('#browse').browseEverything(options)
|
91
|
-
```
|
54
|
+
browse-everything can be triggered in two ways -- either via data attributes in an HTML tag or via JavaScript. Either way, it accepts the same options:
|
92
55
|
|
93
56
|
#### Options
|
94
57
|
|
95
|
-
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to `data-`,
|
96
|
-
as in `data-target="#myForm"`.
|
97
58
|
|
98
59
|
| Name | type | default | description |
|
99
60
|
|-----------------|-----------------|-----------------|----------------------------------------------------------------|
|
@@ -101,45 +62,40 @@ as in `data-target="#myForm"`.
|
|
101
62
|
| target | xpath or jQuery | null | A form object to add the results to as hidden fields. |
|
102
63
|
|
103
64
|
If a `target` is provided, browse-everything will automatically convert the JSON response to a series of hidden form fields
|
104
|
-
that can be posted back to Rails to re-create the array on the server side.
|
65
|
+
that can be posted back to Rails to re-create the array on the server side.
|
105
66
|
|
106
|
-
#### Methods
|
107
67
|
|
108
|
-
|
68
|
+
#### Via data attributes
|
109
69
|
|
110
|
-
|
70
|
+
To trigger browse-everything using data attributes, set the _data-toggle_ attribute to "browse-everything" on the HTML tag. This tells the javascript where to attach the browse-everything behaviors. Pass in the options using the _data-route_ and _data-target_ attributes, as in `data-target="#myForm"`.
|
71
|
+
|
72
|
+
For example:
|
73
|
+
|
74
|
+
```html
|
75
|
+
<button type="button" data-toggle="browse-everything" data-route="<%=browse_everything_engine.root_path%>"
|
76
|
+
data-target="#myForm" class="btn btn-large btn-success" id="browse">Browse!</button>
|
77
|
+
```
|
78
|
+
|
79
|
+
#### Via JavaScript
|
80
|
+
|
81
|
+
To trigger browse-everything via javascript, use the .browseEverything() method to attach the behaviors to DOM elements.
|
111
82
|
|
83
|
+
```javascript
|
84
|
+
$('#browse').browseEverything(options)
|
85
|
+
```
|
86
|
+
|
87
|
+
The options argument should be a JSON object with the route and (optionally) target values set. For example:
|
112
88
|
```javascript
|
113
89
|
$('#browse').browseEverything({
|
114
90
|
route: "/browse",
|
115
91
|
target: "#myForm"
|
116
|
-
})
|
117
|
-
// User has submitted files; data contains an array of URLs and their options
|
118
|
-
}).cancel(function() {
|
119
|
-
// User cancelled the browse operation
|
120
|
-
}).fail(function(status, error, text) {
|
121
|
-
// URL retrieval experienced a techical failure
|
122
|
-
});
|
92
|
+
})
|
123
93
|
```
|
124
94
|
|
125
|
-
|
126
|
-
|
127
|
-
Returns the existing callback object for the receiver, allowing for a mix of data attribute and JavaScript modes.
|
128
|
-
|
129
|
-
```html
|
130
|
-
<button type="button" data-toggle="browse-everything" data-route="/browse"
|
131
|
-
data-target="#myForm" class="btn btn-large btn-success" id="browse">Browse!</button>
|
95
|
+
See [JavaScript Methods](https://github.com/projecthydra/browse-everything/wiki/JavaScript-Methods) for more info on using javascript to trigger browse-everything.
|
132
96
|
|
133
|
-
<script>
|
134
|
-
$(document).ready(function() {
|
135
|
-
$('#browse').browseEverything().done(function(data) {
|
136
|
-
// Set the "done" callback for the already-defined #browse button
|
137
|
-
})
|
138
|
-
});
|
139
|
-
</script>
|
140
|
-
```
|
141
97
|
|
142
|
-
|
98
|
+
### The Results (Data Structure)
|
143
99
|
|
144
100
|
browse-everything returns a JSON data structure consisting of an array of URL specifications. Each URL specification
|
145
101
|
is a plain object with the following properties:
|
@@ -151,6 +107,40 @@ is a plain object with the following properties:
|
|
151
107
|
| expires | The expiration date/time of the specified URL. |
|
152
108
|
| file_name | The base name (filename.ext) of the selected file. |
|
153
109
|
|
110
|
+
For example, after picking two files from dropbox,
|
111
|
+
|
112
|
+
If you initialized browse-everything via JavaScript, the results data passed to the `.done()` callback will look like this:
|
113
|
+
```json
|
114
|
+
[
|
115
|
+
{
|
116
|
+
"url": "https://dl.dropbox.com/fake/filepicker-demo.txt.txt",
|
117
|
+
"expires": "2014-03-31T20:37:36.214Z",
|
118
|
+
"file_name": "filepicker-demo.txt.txt"
|
119
|
+
}, {
|
120
|
+
"url": "https://dl.dropbox.com/fake/Getting%20Started.pdf",
|
121
|
+
"expires": "2014-03-31T20:37:36.731Z",
|
122
|
+
"file_name": "Getting+Started.pdf"
|
123
|
+
}
|
124
|
+
]
|
125
|
+
```
|
126
|
+
See [JavaScript Methods](https://github.com/projecthydra/browse-everything/wiki/JavaScript-Methods) for more info on using javascript to trigger browse-everything.
|
127
|
+
|
128
|
+
If you initialized browse-everything via data-attributes and set the _target_ option (via the _data-target_ attribute or via the _target_ option on the javascript method), the results data be written as hidden fields in the `<form>` you've specified as the target. When the user submits that form, the results will look like this:
|
129
|
+
```ruby
|
130
|
+
"selected_files" => {
|
131
|
+
"0"=>{
|
132
|
+
"url"=>"https://dl.dropbox.com/fake/filepicker-demo.txt.txt",
|
133
|
+
"expires"=>"2014-03-31T20:37:36.214Z",
|
134
|
+
"file_name"=>"filepicker-demo.txt.txt"
|
135
|
+
},
|
136
|
+
"1"=>{
|
137
|
+
"url"=>"https://dl.dropbox.com/fake/Getting%20Started.pdf",
|
138
|
+
"expires"=>"2014-03-31T20:37:36.731Z",
|
139
|
+
"file_name"=>"Getting+Started.pdf"
|
140
|
+
}
|
141
|
+
}
|
142
|
+
```
|
143
|
+
|
154
144
|
### Examples
|
155
145
|
|
156
146
|
See `spec/support/app/views/file_handler/index.html` for an example use case. You can also run `rake app:generate` to
|
data/browse-everything.gemspec
CHANGED
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'rails/generators'
|
3
|
+
|
4
|
+
class BrowseEverything::ConfigGenerator < Rails::Generators::Base
|
5
|
+
desc """
|
6
|
+
This generator makes the following changes to your application:
|
7
|
+
1. Creates config/browse_everything_providers.yml with a placeholder value
|
8
|
+
2. Modifies your app's routes.rb to mount BrowseEverything at /browse
|
9
|
+
"""
|
10
|
+
source_root File.expand_path('../templates', __FILE__)
|
11
|
+
|
12
|
+
def inject_routes
|
13
|
+
insert_into_file "config/routes.rb", :after => ".draw do" do
|
14
|
+
%{
|
15
|
+
mount BrowseEverything::Engine => '/browse'}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def copy_example_config
|
20
|
+
copy_file "browse_everything_providers.yml.example", "config/browse_everything_providers.yml"
|
21
|
+
end
|
22
|
+
|
23
|
+
def insert_file_system_path
|
24
|
+
insert_into_file "config/browse_everything_providers.yml", :before => "# drop_box:" do
|
25
|
+
YAML.dump({ 'file_system' => { :home => Rails.root.to_s }})
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#
|
2
|
+
# To make browse-everything aware of a provider, uncomment the info for that provider and add your API key information.
|
3
|
+
# The file_system provider can be a path to any directory on the server where your application is running.
|
4
|
+
#
|
5
|
+
# drop_box:
|
6
|
+
# :app_key: YOUR_DROPBOX_APP_KEY
|
7
|
+
# :app_secret: YOUR_DROPBOX_APP_SECRET
|
8
|
+
# box:
|
9
|
+
# :client_id: YOUR_BOX_CLIENT_ID
|
10
|
+
# :client_secret: YOUR_BOX_CLIENT_SECRET
|
11
|
+
# google_drive:
|
12
|
+
# :client_id: YOUR_GOOGLE_API_CLIENT_ID
|
13
|
+
# :client_secret: YOUR_GOOGLE_API_CLIENT_SECRET
|
14
|
+
# sky_drive:
|
15
|
+
# :client_id: YOUR_MS_LIVE_CONNECT_CLIENT_ID
|
16
|
+
# :client_secret: YOUR_MS_LIVE_CONNECT_CLIENT_SECRET
|
@@ -189,6 +189,45 @@ http_interactions:
|
|
189
189
|
"expires": "Fri, 20 Sep 2013 19:39:01 +0000"}'
|
190
190
|
http_version: '1.1'
|
191
191
|
recorded_at: Fri, 20 Sep 2013 15:39:01 GMT
|
192
|
+
- request:
|
193
|
+
method: get
|
194
|
+
uri: https://api.dropbox.com/1/media/auto/Writer/Writer%20FAQ.txt
|
195
|
+
body:
|
196
|
+
encoding: UTF-8
|
197
|
+
string: ''
|
198
|
+
headers:
|
199
|
+
Accept: ! '*/*'
|
200
|
+
User-Agent: OfficialDropboxRubySDK/1.6.1
|
201
|
+
Authorization: Bearer FakeDropboxAccessToken01234567890ABCDEF_AAAAAAA987654321
|
202
|
+
Connection: close
|
203
|
+
Host: api.dropbox.com
|
204
|
+
response:
|
205
|
+
status:
|
206
|
+
code: '200'
|
207
|
+
message: OK
|
208
|
+
headers:
|
209
|
+
Server: nginx
|
210
|
+
Date: Fri, 20 Sep 2013 15:39:01 GMT
|
211
|
+
Content-Type: text/javascript
|
212
|
+
Transfer-Encoding: chunked
|
213
|
+
Connection: close
|
214
|
+
set-cookie: ! 'gvc=MjEyNTM5NjUyNDAyMDIwODUzNTU0MTY0NzA0ODU4MzczNTU0NDI%3D; expires=Wed,
|
215
|
+
19 Sep 2018 15:39:01
|
216
|
+
|
217
|
+
GMT; Path=/; httponly'
|
218
|
+
x-server-response-time: '68'
|
219
|
+
x-dropbox-request-id: d8dbc2e2080168d6e34d85165aa69c0e
|
220
|
+
pragma: no-cache
|
221
|
+
cache-control: no-cache
|
222
|
+
x-dropbox-http-protocol: None
|
223
|
+
x-frame-options: SAMEORIGIN
|
224
|
+
X-RequestId: e03a6c0ded5f7088ba59ecd9e97234a6
|
225
|
+
body:
|
226
|
+
encoding: UTF-8
|
227
|
+
string: ! '{"url": "https://dl.dropboxusercontent.com/1/view/FakeDropboxAccessPath/Writer/Writer%20FAQ.txt",
|
228
|
+
"expires": "Fri, 20 Sep 2013 19:39:01 +0000"}'
|
229
|
+
http_version: '1.1'
|
230
|
+
recorded_at: Fri, 20 Sep 2013 15:39:01 GMT
|
192
231
|
- request:
|
193
232
|
method: get
|
194
233
|
uri: https://api.dropbox.com/1/media/auto/Writer/Markdown%20Test.txt?
|
@@ -228,4 +267,43 @@ http_interactions:
|
|
228
267
|
"expires": "Fri, 20 Sep 2013 19:39:02 +0000"}'
|
229
268
|
http_version: '1.1'
|
230
269
|
recorded_at: Fri, 20 Sep 2013 15:39:02 GMT
|
270
|
+
- request:
|
271
|
+
method: get
|
272
|
+
uri: https://api.dropbox.com/1/media/auto/Writer/Markdown%20Test.txt
|
273
|
+
body:
|
274
|
+
encoding: UTF-8
|
275
|
+
string: ''
|
276
|
+
headers:
|
277
|
+
Accept: ! '*/*'
|
278
|
+
User-Agent: OfficialDropboxRubySDK/1.6.1
|
279
|
+
Authorization: Bearer FakeDropboxAccessToken01234567890ABCDEF_AAAAAAA987654321
|
280
|
+
Connection: close
|
281
|
+
Host: api.dropbox.com
|
282
|
+
response:
|
283
|
+
status:
|
284
|
+
code: '200'
|
285
|
+
message: OK
|
286
|
+
headers:
|
287
|
+
Server: nginx
|
288
|
+
Date: Fri, 20 Sep 2013 15:39:02 GMT
|
289
|
+
Content-Type: text/javascript
|
290
|
+
Transfer-Encoding: chunked
|
291
|
+
Connection: close
|
292
|
+
set-cookie: ! 'gvc=NjgwODYwOTI2NTA5OTAyNzE3NzE4MDU3MzY0NTQ3NTYyNTYyNDE%3D; expires=Wed,
|
293
|
+
19 Sep 2018 15:39:02
|
294
|
+
|
295
|
+
GMT; Path=/; httponly'
|
296
|
+
x-server-response-time: '78'
|
297
|
+
x-dropbox-request-id: b6fd9a3c039d2aea3def25f8f2f5ac3a
|
298
|
+
pragma: no-cache
|
299
|
+
cache-control: no-cache
|
300
|
+
x-dropbox-http-protocol: None
|
301
|
+
x-frame-options: SAMEORIGIN
|
302
|
+
X-RequestId: 30d2c0cf0122795ebce9bd5f26ce0c60
|
303
|
+
body:
|
304
|
+
encoding: UTF-8
|
305
|
+
string: ! '{"url": "https://dl.dropboxusercontent.com/1/view/FakeDropboxAccessPath/Writer/Markdown%20Test.txt",
|
306
|
+
"expires": "Fri, 20 Sep 2013 19:39:02 +0000"}'
|
307
|
+
http_version: '1.1'
|
308
|
+
recorded_at: Fri, 20 Sep 2013 15:39:02 GMT
|
231
309
|
recorded_with: Charles Proxy
|
@@ -2,6 +2,11 @@ require 'rails/generators'
|
|
2
2
|
|
3
3
|
class TestAppGenerator < Rails::Generators::Base
|
4
4
|
source_root File.expand_path("../../../../support", __FILE__)
|
5
|
+
|
6
|
+
def run_config_generator
|
7
|
+
generate "browse_everything:config"
|
8
|
+
end
|
9
|
+
|
5
10
|
def inject_css
|
6
11
|
copy_file "../internal/app/assets/stylesheets/application.css", "app/assets/stylesheets/application.css.scss"
|
7
12
|
remove_file "app/assets/stylesheets/application.css"
|
@@ -26,25 +31,15 @@ class TestAppGenerator < Rails::Generators::Base
|
|
26
31
|
insert_into_file "config/routes.rb", :after => ".draw do" do
|
27
32
|
%{
|
28
33
|
|
29
|
-
mount BrowseEverything::Engine => '/browse'
|
30
34
|
root :to => "file_handler#index"
|
31
35
|
post '/file', :to => "file_handler#update"
|
32
36
|
}
|
33
37
|
end
|
34
38
|
end
|
35
39
|
|
36
|
-
def create_bev_configuration
|
37
|
-
create_file "config/browse_everything_providers.yml" do
|
38
|
-
YAML.dump({ 'file_system' => { :home => Rails.root.to_s }})
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
40
|
def create_test_route
|
43
41
|
copy_file "app/controllers/file_handler_controller.rb", "app/controllers/file_handler_controller.rb"
|
44
42
|
copy_file "app/views/file_handler/index.html.erb", "app/views/file_handler/index.html.erb"
|
45
43
|
end
|
46
44
|
|
47
|
-
def copy_example_config
|
48
|
-
copy_file "config/browse_everything_providers.yml.example", "config/browse_everything_providers.yml.example"
|
49
|
-
end
|
50
45
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browse-everything
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carolyn Cole
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2014-
|
15
|
+
date: 2014-04-01 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rails
|
@@ -266,6 +266,20 @@ dependencies:
|
|
266
266
|
- - ! '>='
|
267
267
|
- !ruby/object:Gem::Version
|
268
268
|
version: '0'
|
269
|
+
- !ruby/object:Gem::Dependency
|
270
|
+
name: factory_girl_rails
|
271
|
+
requirement: !ruby/object:Gem::Requirement
|
272
|
+
requirements:
|
273
|
+
- - ! '>='
|
274
|
+
- !ruby/object:Gem::Version
|
275
|
+
version: '0'
|
276
|
+
type: :development
|
277
|
+
prerelease: false
|
278
|
+
version_requirements: !ruby/object:Gem::Requirement
|
279
|
+
requirements:
|
280
|
+
- - ! '>='
|
281
|
+
- !ruby/object:Gem::Version
|
282
|
+
version: '0'
|
269
283
|
description: AJAX/Rails engine file browser for cloud storage services
|
270
284
|
email:
|
271
285
|
- cam156@psu.edu
|
@@ -317,6 +331,8 @@ files:
|
|
317
331
|
- lib/browse_everything/engine.rb
|
318
332
|
- lib/browse_everything/file_entry.rb
|
319
333
|
- lib/browse_everything/version.rb
|
334
|
+
- lib/generators/browse_everything/config_generator.rb
|
335
|
+
- lib/generators/browse_everything/templates/browse_everything_providers.yml.example
|
320
336
|
- spec/fixtures/file_system/dir_1/dir_3/file_3.m4v
|
321
337
|
- spec/fixtures/file_system/dir_1/file_2.txt
|
322
338
|
- spec/fixtures/file_system/dir_2/file_4.docx
|
@@ -327,7 +343,6 @@ files:
|
|
327
343
|
- spec/spec_helper.rb.orig
|
328
344
|
- spec/support/app/controllers/file_handler_controller.rb
|
329
345
|
- spec/support/app/views/file_handler/index.html.erb
|
330
|
-
- spec/support/config/browse_everything_providers.yml.example
|
331
346
|
- spec/support/lib/generators/test_app_generator.rb
|
332
347
|
- spec/unit/base_spec.rb
|
333
348
|
- spec/unit/browser_spec.rb
|
@@ -372,7 +387,6 @@ test_files:
|
|
372
387
|
- spec/spec_helper.rb.orig
|
373
388
|
- spec/support/app/controllers/file_handler_controller.rb
|
374
389
|
- spec/support/app/views/file_handler/index.html.erb
|
375
|
-
- spec/support/config/browse_everything_providers.yml.example
|
376
390
|
- spec/support/lib/generators/test_app_generator.rb
|
377
391
|
- spec/unit/base_spec.rb
|
378
392
|
- spec/unit/browser_spec.rb
|
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
file_system:
|
3
|
-
:home: SERVER_SIDE_BROWSE_ROOT
|
4
|
-
box:
|
5
|
-
:client_id: YOUR_BOX_CLIENT_ID
|
6
|
-
:client_secret: YOUR_BOX_CLIENT_SECRET
|
7
|
-
drop_box:
|
8
|
-
:app_key: YOUR_DROPBOX_APP_KEY
|
9
|
-
:app_secret: YOUR_DROPBOX_APP_SECRET
|
10
|
-
google_drive:
|
11
|
-
:client_id: YOUR_GOOGLE_API_CLIENT_ID
|
12
|
-
:client_secret: YOUR_GOOGLE_API_CLIENT_SECRET
|
13
|
-
sky_drive:
|
14
|
-
:client_id: YOUR_MS_LIVE_CONNECT_CLIENT_ID
|
15
|
-
:client_secret: YOUR_MS_LIVE_CONNECT_CLIENT_SECRET
|