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
         |