browse-everything 0.10.5 → 0.11.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 +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +16 -0
- data/.rubocop_todo.yml +149 -0
- data/.travis.yml +5 -6
- data/Rakefile +2 -2
- data/app/controllers/browse_everything_controller.rb +19 -22
- data/app/helpers/bootstrap_version_helper.rb +9 -11
- data/app/helpers/browse_everything_helper.rb +11 -22
- data/app/views/browse_everything/_file.html.erb +7 -11
- data/app/views/browse_everything/_files.html.erb +4 -7
- data/app/views/browse_everything/index.html.erb +1 -1
- data/browse-everything.gemspec +37 -34
- data/config/routes.rb +3 -3
- data/lib/browse-everything.rb +1 -1
- data/lib/browse_everything.rb +9 -8
- data/lib/browse_everything/browser.rb +4 -4
- data/lib/browse_everything/driver/base.rb +14 -14
- data/lib/browse_everything/driver/box.rb +48 -59
- data/lib/browse_everything/driver/dropbox.rb +10 -11
- data/lib/browse_everything/driver/file_system.rb +19 -24
- data/lib/browse_everything/driver/google_drive.rb +58 -82
- data/lib/browse_everything/driver/s3.rb +87 -0
- data/lib/browse_everything/driver/sky_drive.rb +41 -47
- data/lib/browse_everything/engine.rb +2 -2
- data/lib/browse_everything/file_entry.rb +3 -3
- data/lib/browse_everything/retriever.rb +19 -20
- data/lib/browse_everything/version.rb +1 -1
- data/lib/generators/browse_everything/assets_generator.rb +2 -4
- data/lib/generators/browse_everything/config_generator.rb +12 -12
- data/lib/generators/browse_everything/install_generator.rb +2 -4
- data/lib/generators/browse_everything/templates/browse_everything_providers.yml.example +6 -0
- data/spec/features/select_files_spec.rb +12 -12
- data/spec/features/test_compiling_stylesheets_spec.rb +2 -2
- data/spec/helper/browse_everything_controller_helper_spec.rb +8 -8
- data/spec/javascripts/jasmine_spec.rb +5 -5
- data/spec/javascripts/support/jasmine_helper.rb +9 -9
- data/spec/spec_helper.rb +26 -23
- data/spec/support/app/controllers/file_handler_controller.rb +3 -3
- data/spec/support/rake.rb +1 -1
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +21 -22
- data/spec/unit/base_spec.rb +6 -6
- data/spec/unit/browse_everything_helper_spec.rb +9 -9
- data/spec/unit/browser_spec.rb +19 -19
- data/spec/unit/dropbox_spec.rb +44 -43
- data/spec/unit/file_entry_spec.rb +31 -31
- data/spec/unit/file_system_spec.rb +26 -26
- data/spec/unit/retriever_spec.rb +42 -43
- data/spec/unit/s3_spec.rb +77 -0
- data/spec/unit/sky_drive_spec.rb +31 -31
- data/spec/views/browse_everything/_file.html.erb_spec.rb +37 -37
- data/tasks/ci.rake +3 -3
- metadata +52 -7
- data/app/.DS_Store +0 -0
- data/app/views/.DS_Store +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd86609268e38b37eda9ee75faf2f90e5fef7637
|
4
|
+
data.tar.gz: a400f9f867fd8e000161e0af09eed01289c03e7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49c3014931d7a17505ddc3ce40ea8eff8d8380eeb4f4b3fb6936be68f25f974857fe5b5068e6f44a0bc1d3cf5f3a433a39b77bf39a2fcd0b2648d8d058b21464
|
7
|
+
data.tar.gz: 33074434868353d2f5a92bfcdf1cf9deaf97587597a66c97f9e6a76d50a978a922f62c27fd8f5ef71d747f05411a093ca558283c156b030c3aac491f601b1263
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
inherit_from: .rubocop_todo.yml
|
2
|
+
|
3
|
+
AllCops:
|
4
|
+
Exclude:
|
5
|
+
- db/migrate/**
|
6
|
+
- db/schema.rb
|
7
|
+
|
8
|
+
Rails:
|
9
|
+
Enabled: true
|
10
|
+
|
11
|
+
# Configuration parameters: AllowURI, URISchemes.
|
12
|
+
Metrics/LineLength:
|
13
|
+
Max: 180
|
14
|
+
|
15
|
+
Style/NumericLiterals:
|
16
|
+
MinDigits: 7
|
data/.rubocop_todo.yml
ADDED
@@ -0,0 +1,149 @@
|
|
1
|
+
# This configuration was generated by
|
2
|
+
# `rubocop --auto-gen-config`
|
3
|
+
# on 2016-09-28 11:47:17 -0700 using RuboCop version 0.42.0.
|
4
|
+
# The point is for the user to remove these configuration records
|
5
|
+
# one by one as the offenses are removed from the code base.
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
8
|
+
|
9
|
+
# Offense count: 1
|
10
|
+
Lint/Loop:
|
11
|
+
Exclude:
|
12
|
+
- 'lib/browse_everything/driver/google_drive.rb'
|
13
|
+
|
14
|
+
# Offense count: 10
|
15
|
+
Metrics/AbcSize:
|
16
|
+
Max: 32
|
17
|
+
|
18
|
+
# Offense count: 1
|
19
|
+
# Configuration parameters: CountComments.
|
20
|
+
Metrics/ClassLength:
|
21
|
+
Max: 101
|
22
|
+
|
23
|
+
# Offense count: 3
|
24
|
+
Metrics/CyclomaticComplexity:
|
25
|
+
Max: 7
|
26
|
+
|
27
|
+
# Offense count: 14
|
28
|
+
# Configuration parameters: CountComments.
|
29
|
+
Metrics/MethodLength:
|
30
|
+
Max: 26
|
31
|
+
|
32
|
+
# Offense count: 1
|
33
|
+
# Configuration parameters: CountKeywordArgs.
|
34
|
+
Metrics/ParameterLists:
|
35
|
+
Max: 7
|
36
|
+
|
37
|
+
# Offense count: 1
|
38
|
+
Metrics/PerceivedComplexity:
|
39
|
+
Max: 9
|
40
|
+
|
41
|
+
# Offense count: 1
|
42
|
+
Rails/OutputSafety:
|
43
|
+
Exclude:
|
44
|
+
- 'app/helpers/browse_everything_helper.rb'
|
45
|
+
|
46
|
+
# Offense count: 14
|
47
|
+
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
48
|
+
# SupportedStyles: strict, flexible
|
49
|
+
Rails/TimeZone:
|
50
|
+
Exclude:
|
51
|
+
- 'lib/browse_everything/driver/box.rb'
|
52
|
+
- 'lib/browse_everything/driver/dropbox.rb'
|
53
|
+
- 'lib/browse_everything/driver/google_drive.rb'
|
54
|
+
- 'lib/browse_everything/driver/sky_drive.rb'
|
55
|
+
- 'lib/browse_everything/retriever.rb'
|
56
|
+
- 'spec/unit/browse_everything_helper_spec.rb'
|
57
|
+
- 'spec/unit/file_entry_spec.rb'
|
58
|
+
- 'spec/unit/retriever_spec.rb'
|
59
|
+
- 'spec/unit/sky_drive_spec.rb'
|
60
|
+
- 'spec/views/browse_everything/_file.html.erb_spec.rb'
|
61
|
+
|
62
|
+
# Offense count: 3
|
63
|
+
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
64
|
+
# SupportedStyles: nested, compact
|
65
|
+
Style/ClassAndModuleChildren:
|
66
|
+
Exclude:
|
67
|
+
- 'lib/generators/browse_everything/assets_generator.rb'
|
68
|
+
- 'lib/generators/browse_everything/config_generator.rb'
|
69
|
+
- 'lib/generators/browse_everything/install_generator.rb'
|
70
|
+
|
71
|
+
# Offense count: 18
|
72
|
+
Style/Documentation:
|
73
|
+
Enabled: false
|
74
|
+
|
75
|
+
# Offense count: 1
|
76
|
+
# Configuration parameters: ExpectMatchingDefinition, Regex, IgnoreExecutableScripts.
|
77
|
+
Style/FileName:
|
78
|
+
Exclude:
|
79
|
+
- 'lib/browse-everything.rb'
|
80
|
+
|
81
|
+
# Offense count: 5
|
82
|
+
# Configuration parameters: MinBodyLength.
|
83
|
+
Style/GuardClause:
|
84
|
+
Exclude:
|
85
|
+
- 'lib/browse_everything/driver/box.rb'
|
86
|
+
- 'lib/browse_everything/driver/dropbox.rb'
|
87
|
+
- 'lib/browse_everything/driver/file_system.rb'
|
88
|
+
- 'lib/browse_everything/driver/google_drive.rb'
|
89
|
+
- 'lib/browse_everything/driver/sky_drive.rb'
|
90
|
+
|
91
|
+
# Offense count: 1
|
92
|
+
Style/MultilineBlockChain:
|
93
|
+
Exclude:
|
94
|
+
- 'lib/browse_everything/driver/google_drive.rb'
|
95
|
+
|
96
|
+
# Offense count: 1
|
97
|
+
# Cop supports --auto-correct.
|
98
|
+
Style/MultilineBlockLayout:
|
99
|
+
Exclude:
|
100
|
+
- 'spec/unit/dropbox_spec.rb'
|
101
|
+
|
102
|
+
# Offense count: 2
|
103
|
+
# Cop supports --auto-correct.
|
104
|
+
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
105
|
+
# SupportedStyles: symmetrical, new_line, same_line
|
106
|
+
Style/MultilineHashBraceLayout:
|
107
|
+
Exclude:
|
108
|
+
- 'spec/unit/sky_drive_spec.rb'
|
109
|
+
|
110
|
+
# Offense count: 4
|
111
|
+
# Cop supports --auto-correct.
|
112
|
+
# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
|
113
|
+
# SupportedStyles: aligned, indented, indented_relative_to_receiver
|
114
|
+
Style/MultilineMethodCallIndentation:
|
115
|
+
Exclude:
|
116
|
+
- 'spec/unit/sky_drive_spec.rb'
|
117
|
+
|
118
|
+
# Offense count: 1
|
119
|
+
# Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist.
|
120
|
+
# NamePrefix: is_, has_, have_
|
121
|
+
# NamePrefixBlacklist: is_, has_, have_
|
122
|
+
# NameWhitelist: is_a?
|
123
|
+
Style/PredicateName:
|
124
|
+
Exclude:
|
125
|
+
- 'spec/**/*'
|
126
|
+
- 'app/helpers/browse_everything_helper.rb'
|
127
|
+
|
128
|
+
# Offense count: 2
|
129
|
+
# Cop supports --auto-correct.
|
130
|
+
# Configuration parameters: EnforcedStyle, SupportedStyles, AllowInnerSlashes.
|
131
|
+
# SupportedStyles: slashes, percent_r, mixed
|
132
|
+
Style/RegexpLiteral:
|
133
|
+
Exclude:
|
134
|
+
- 'lib/browse_everything/driver/box.rb'
|
135
|
+
- 'lib/browse_everything/driver/dropbox.rb'
|
136
|
+
|
137
|
+
# Offense count: 1
|
138
|
+
# Cop supports --auto-correct.
|
139
|
+
Style/RescueModifier:
|
140
|
+
Exclude:
|
141
|
+
- 'lib/browse_everything/driver/file_system.rb'
|
142
|
+
|
143
|
+
# Offense count: 1
|
144
|
+
# Cop supports --auto-correct.
|
145
|
+
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
146
|
+
# SupportedStyles: use_perl_names, use_english_names
|
147
|
+
Style/SpecialGlobalVars:
|
148
|
+
Exclude:
|
149
|
+
- 'browse-everything.gemspec'
|
data/.travis.yml
CHANGED
@@ -4,7 +4,6 @@ cache:
|
|
4
4
|
bundler: true
|
5
5
|
directories:
|
6
6
|
- "travis_phantomjs"
|
7
|
-
|
8
7
|
before_install:
|
9
8
|
- "phantomjs --version"
|
10
9
|
- "export PATH=$PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64/bin:$PATH"
|
@@ -14,20 +13,20 @@ before_install:
|
|
14
13
|
- "if [ $(phantomjs --version) != '2.1.1' ]; then tar -xvf $PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C $PWD/travis_phantomjs; fi"
|
15
14
|
- "phantomjs --version"
|
16
15
|
rvm:
|
17
|
-
- 2.2
|
16
|
+
- "2.2.2"
|
17
|
+
# rack 2 requires Ruby version >= 2.2.2
|
18
18
|
env:
|
19
19
|
global:
|
20
20
|
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true
|
21
21
|
matrix:
|
22
22
|
- "RAILS_VERSION=4.1.10"
|
23
23
|
- "RAILS_VERSION=4.2.1"
|
24
|
-
|
24
|
+
- "RAILS_VERSION=5.0.0.1"
|
25
25
|
matrix:
|
26
26
|
include:
|
27
|
+
- rvm: "2.3.0"
|
28
|
+
env: "RAILS_VERSION=5.0.0.1"
|
27
29
|
- rvm: 2.1
|
28
30
|
env: "RAILS_VERSION=4.2.1"
|
29
31
|
- rvm: 2.0
|
30
32
|
env: "RAILS_VERSION=4.2.1"
|
31
|
-
|
32
|
-
notifications:
|
33
|
-
irc: "irc.freenode.org#projecthydra"
|
data/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
|
-
require
|
2
|
+
require 'bundler/gem_tasks'
|
3
3
|
|
4
4
|
Dir.glob('tasks/*.rake').each { |r| import r }
|
5
5
|
|
@@ -15,4 +15,4 @@ task :setup_test_server do
|
|
15
15
|
EngineCart.load_application!
|
16
16
|
end
|
17
17
|
|
18
|
-
task :
|
18
|
+
task default: [:ci]
|
@@ -1,36 +1,35 @@
|
|
1
|
-
require File.expand_path('../../helpers/browse_everything_helper',__FILE__)
|
1
|
+
require File.expand_path('../../helpers/browse_everything_helper', __FILE__)
|
2
2
|
|
3
3
|
class BrowseEverythingController < ActionController::Base
|
4
4
|
layout 'browse_everything'
|
5
5
|
helper BrowseEverythingHelper
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
after_action { session["#{provider_name}_token"] = provider.token unless provider.nil? }
|
8
|
+
|
9
9
|
def index
|
10
|
-
render :
|
10
|
+
render layout: !request.xhr?
|
11
11
|
end
|
12
12
|
|
13
13
|
def show
|
14
|
-
render :
|
14
|
+
render layout: !request.xhr?
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def auth
|
18
|
-
|
19
|
-
session["#{provider_name}_token"] = provider.connect(params,session["#{provider_name}_data"])
|
18
|
+
session["#{provider_name}_token"] = provider.connect(params, session["#{provider_name}_data"])
|
20
19
|
end
|
21
20
|
|
22
21
|
def resolve
|
23
22
|
selected_files = params[:selected_files] || []
|
24
|
-
@links = selected_files.collect
|
25
|
-
p,f = file.split(/:/)
|
26
|
-
(url,extra) = browser.providers[p].link_for(f)
|
23
|
+
@links = selected_files.collect do |file|
|
24
|
+
p, f = file.split(/:/)
|
25
|
+
(url, extra) = browser.providers[p].link_for(f)
|
27
26
|
result = { url: url }
|
28
27
|
result.merge!(extra) unless extra.nil?
|
29
28
|
result
|
30
|
-
|
31
|
-
respond_to do |format|
|
32
|
-
format.html { render :
|
33
|
-
format.json { render :
|
29
|
+
end
|
30
|
+
respond_to do |format|
|
31
|
+
format.html { render layout: false }
|
32
|
+
format.json { render json: @links }
|
34
33
|
end
|
35
34
|
end
|
36
35
|
|
@@ -38,13 +37,11 @@ class BrowseEverythingController < ActionController::Base
|
|
38
37
|
|
39
38
|
def auth_link
|
40
39
|
@auth_link ||= if provider.present?
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
nil
|
47
|
-
end
|
40
|
+
link, data = provider.auth_link
|
41
|
+
session["#{provider_name}_data"] = data
|
42
|
+
link = "#{link}&state=#{provider.key}" unless link.to_s.include?('state')
|
43
|
+
link
|
44
|
+
end # else nil, implicitly
|
48
45
|
end
|
49
46
|
|
50
47
|
def browser
|
@@ -1,35 +1,33 @@
|
|
1
1
|
module BootstrapVersionHelper
|
2
|
-
|
3
2
|
def bootstrap_three?
|
4
3
|
Bundler.environment.specs['bootstrap-sass'].first.version >= Gem::Version.new('3')
|
5
4
|
end
|
6
5
|
|
7
6
|
def bs2(if2)
|
8
|
-
bs2or3(if2,'')
|
7
|
+
bs2or3(if2, '')
|
9
8
|
end
|
10
9
|
|
11
10
|
def bs3(if3)
|
12
|
-
bs2or3('',if3)
|
11
|
+
bs2or3('', if3)
|
13
12
|
end
|
14
13
|
|
15
|
-
def bs2or3(if2,if3)
|
14
|
+
def bs2or3(if2, if3)
|
16
15
|
bootstrap_three? ? if3 : if2
|
17
16
|
end
|
18
17
|
|
19
18
|
def font_awesome_four?
|
20
19
|
Bundler.environment.specs['font-awesome-rails'].first.version >= Gem::Version.new('4')
|
21
20
|
end
|
22
|
-
|
21
|
+
|
23
22
|
def fa3(if3)
|
24
|
-
fa3or4(if3,'')
|
23
|
+
fa3or4(if3, '')
|
25
24
|
end
|
26
|
-
|
25
|
+
|
27
26
|
def fa4(if4)
|
28
|
-
fa3or4('',if4)
|
27
|
+
fa3or4('', if4)
|
29
28
|
end
|
30
|
-
|
31
|
-
def fa3or4(if3,if4)
|
29
|
+
|
30
|
+
def fa3or4(if3, if4)
|
32
31
|
font_awesome_four? ? if4 : if3
|
33
32
|
end
|
34
|
-
|
35
33
|
end
|
@@ -1,36 +1,25 @@
|
|
1
1
|
module BrowseEverythingHelper
|
2
|
-
|
3
|
-
def array_to_hidden_fields(array,key)
|
2
|
+
def array_to_hidden_fields(array, key)
|
4
3
|
fields = array.to_query(key).split(Rack::Utils::DEFAULT_SEP).collect do |pair|
|
5
|
-
key,value=pair.split('=', 2).map { |str| Rack::Utils.unescape(str) }
|
6
|
-
hidden_field_tag(key,value)
|
4
|
+
key, value = pair.split('=', 2).map { |str| Rack::Utils.unescape(str) }
|
5
|
+
hidden_field_tag(key, value)
|
7
6
|
end
|
8
7
|
fields.join("\n").html_safe
|
9
8
|
end
|
10
9
|
|
11
|
-
# Extracted from Rack::Mime 1.5.2 for use with earlier versions
|
12
|
-
#
|
10
|
+
# Extracted from Rack::Mime 1.5.2 for use with earlier versions of Rack/Rails
|
11
|
+
# @param [String] value
|
12
|
+
# @param [String] matcher
|
13
|
+
# @return [TrueClass,FalseClass]
|
13
14
|
def mime_match?(value, matcher)
|
14
15
|
v1, v2 = value.split('/', 2)
|
15
16
|
m1, m2 = matcher.split('/', 2)
|
16
|
-
|
17
|
-
|
18
|
-
if m2.nil? || m2 == '*'
|
19
|
-
return true
|
20
|
-
elsif m2 == v2
|
21
|
-
return true
|
22
|
-
else
|
23
|
-
return false
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
return false if v1 != m1
|
28
|
-
|
29
|
-
return true if m2.nil? || m2 == '*'
|
30
|
-
|
31
|
-
m2 == v2
|
17
|
+
return false if m1 != '*' && v1 != m1
|
18
|
+
m2.nil? || m2 == '*' || m2 == v2
|
32
19
|
end
|
33
20
|
|
21
|
+
# @param [BrowseEverything::FileEntry] file
|
22
|
+
# @return [TrueClass,FalseClass]
|
34
23
|
def is_acceptable?(file)
|
35
24
|
acceptable = params[:accept] || '*/*'
|
36
25
|
acceptable_types = acceptable.split(/,\s*/)
|
@@ -1,13 +1,10 @@
|
|
1
|
-
<%
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
end
|
9
|
-
%>
|
10
|
-
|
1
|
+
<% if file.container? || provider.config[:max_upload_file_size].blank? # never disable a folder or if no maximum is set
|
2
|
+
disabled = false
|
3
|
+
else
|
4
|
+
max_size = provider.config[:max_upload_file_size].to_i
|
5
|
+
disabled = file.size > max_size
|
6
|
+
end
|
7
|
+
%>
|
11
8
|
<tr role="row" tabindex="-1" data-ev-location="<%= file.location %>" data-tt-id="<%=path%>" data-tt-parent-id="<%=parent%>" data-tt-branch="<%=file.container? ? 'true' : 'false'%>">
|
12
9
|
<td role="gridcell" class="<%=file.container? ? 'ev-container' : 'ev-file'%> ev-file-name">
|
13
10
|
<% if disabled %>
|
@@ -36,4 +33,3 @@
|
|
36
33
|
<%= file.mtime.strftime('%F %R') %>
|
37
34
|
</td>
|
38
35
|
</tr>
|
39
|
-
<% end %>
|
@@ -1,4 +1,3 @@
|
|
1
|
-
<% if provider.present? %>
|
2
1
|
<div class="progress" id="loading_progress" aria-live="polite">
|
3
2
|
<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 100%;">
|
4
3
|
100% Complete
|
@@ -14,11 +13,9 @@
|
|
14
13
|
<th role="columnheader">Modified</th>
|
15
14
|
</tr>
|
16
15
|
</thead>
|
17
|
-
<% provider.contents(browse_path).each_with_index do |file,index| %>
|
18
|
-
<% if
|
19
|
-
|
20
|
-
|
21
|
-
<% end %>
|
16
|
+
<% provider.contents(browse_path).each_with_index do |file, index| %>
|
17
|
+
<% next if file.relative_parent_path? %>
|
18
|
+
<%= render :partial => 'file', :locals => { :file => file, :index => index,
|
19
|
+
:path => browse_everything_engine.contents_path(provider_name, file.id), :parent => params[:parent] } %>
|
22
20
|
<% end %>
|
23
21
|
</table>
|
24
|
-
<% end %>
|