direct_inject 0.0.1

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.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/Gemfile +16 -0
  4. data/MIT-LICENSE +20 -0
  5. data/README.md +16 -0
  6. data/Rakefile +34 -0
  7. data/direct_inject.gemspec +27 -0
  8. data/lib/direct_inject/errors/asset_not_found.rb +16 -0
  9. data/lib/direct_inject/errors/not_configured.rb +16 -0
  10. data/lib/direct_inject/errors.rb +2 -0
  11. data/lib/direct_inject/internal_helpers.rb +66 -0
  12. data/lib/direct_inject/public_api.rb +76 -0
  13. data/lib/direct_inject/rails/view_helpers.rb +17 -0
  14. data/lib/direct_inject/railtie.rb +16 -0
  15. data/lib/direct_inject/templates/abstract.rb +31 -0
  16. data/lib/direct_inject/templates/image.rb +11 -0
  17. data/lib/direct_inject/templates/javascript.rb +11 -0
  18. data/lib/direct_inject/templates/stylesheet.rb +11 -0
  19. data/lib/direct_inject/templates.rb +3 -0
  20. data/lib/direct_inject/version.rb +3 -0
  21. data/lib/direct_inject.rb +22 -0
  22. data/test/dummy/Rakefile +6 -0
  23. data/test/dummy/app/assets/images/.keep +0 -0
  24. data/test/dummy/app/assets/images/headshot.png +0 -0
  25. data/test/dummy/app/assets/javascripts/application.js +1 -0
  26. data/test/dummy/app/assets/javascripts/wut.js.erb +2 -0
  27. data/test/dummy/app/assets/stylesheets/application.css +4 -0
  28. data/test/dummy/app/assets/stylesheets/wut.css.scss +5 -0
  29. data/test/dummy/app/controllers/pages_controller.rb +6 -0
  30. data/test/dummy/app/views/layouts/application.html.erb +9 -0
  31. data/test/dummy/app/views/pages/image_test.html.erb +1 -0
  32. data/test/dummy/app/views/pages/index.html.erb +6 -0
  33. data/test/dummy/app/views/pages/javascript_test.html.erb +1 -0
  34. data/test/dummy/app/views/pages/stylesheet_test.html.erb +1 -0
  35. data/test/dummy/bin/bundle +3 -0
  36. data/test/dummy/bin/rails +4 -0
  37. data/test/dummy/bin/rake +4 -0
  38. data/test/dummy/config/application.rb +24 -0
  39. data/test/dummy/config/boot.rb +3 -0
  40. data/test/dummy/config/environment.rb +2 -0
  41. data/test/dummy/config/environments/development.rb +9 -0
  42. data/test/dummy/config/environments/test.rb +11 -0
  43. data/test/dummy/config/initializers/assets.rb +1 -0
  44. data/test/dummy/config/initializers/cookies_serializer.rb +1 -0
  45. data/test/dummy/config/initializers/filter_parameter_logging.rb +1 -0
  46. data/test/dummy/config/initializers/session_store.rb +1 -0
  47. data/test/dummy/config/initializers/wrap_parameters.rb +3 -0
  48. data/test/dummy/config/routes.rb +7 -0
  49. data/test/dummy/config/secrets.yml +5 -0
  50. data/test/dummy/config.ru +4 -0
  51. data/test/dummy/log/.keep +0 -0
  52. data/test/dummy/public/404.html +67 -0
  53. data/test/dummy/public/422.html +67 -0
  54. data/test/dummy/public/500.html +66 -0
  55. data/test/dummy/public/favicon.ico +0 -0
  56. data/test/integration/image_test.rb +8 -0
  57. data/test/integration/javascript_test.rb +8 -0
  58. data/test/integration/stylesheet_test.rb +8 -0
  59. data/test/test_helper.rb +15 -0
  60. metadata +211 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b9e281f54fb9f6b80e88e0341cc921f30ac69114
4
+ data.tar.gz: bc35d48472e01577272e3af63e25eba9bb30cc7c
5
+ SHA512:
6
+ metadata.gz: 30d7c17427ecce6b6a226d4a76d6665c07cc84044ea5329a8b719a822364b57d8a653470e13ceac92b1b63603df82175f6d62f7119fe9a3b82f8b60228c98536
7
+ data.tar.gz: b93c1a99a8c07585381b69f2d53d1df5908abd49f243a5dee527d46647957e2db47cc7fef8d3d7021c4817e81b73055ae5700a3419982d983131aed8e5afc933
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ .bundle
2
+ Gemfile.lock
3
+ log/*.log
4
+ pkg
5
+ test/dummy/.sass-cache
6
+ test/dummy/db/*.sqlite3
7
+ test/dummy/db/*.sqlite3-journal
8
+ test/dummy/log/*.log
9
+ test/dummy/tmp
data/Gemfile ADDED
@@ -0,0 +1,16 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Declare your gem's dependencies in direct_inject.gemspec.
4
+ # Bundler will treat runtime dependencies like base dependencies, and
5
+ # development dependencies will be added by default to the :development group.
6
+ gemspec
7
+
8
+ # Declare any dependencies that are still in development here instead of in
9
+ # your gemspec. These might include edge Rails or gems from your path or
10
+ # Git. Remember to move these dependencies to your gemspec before releasing
11
+ # your gem to rubygems.org.
12
+
13
+ # To use debugger
14
+ # gem 'debugger'
15
+ gem 'pry'
16
+ gem 'sass-rails', '5.0.0.beta1'
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2014 Ryan Cook
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,16 @@
1
+ DirectInject
2
+ ============
3
+
4
+ A Sprockets add-on helping you inject assets into your HTML inline.
5
+
6
+ ## Installation
7
+
8
+ WIP
9
+
10
+ ## Usage
11
+
12
+ WIP
13
+
14
+ ## License
15
+
16
+ MIT. See: MIT-LICENSE
data/Rakefile ADDED
@@ -0,0 +1,34 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'DirectInject'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.rdoc')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+ APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
18
+ load 'rails/tasks/engine.rake'
19
+
20
+
21
+
22
+ Bundler::GemHelper.install_tasks
23
+
24
+ require 'rake/testtask'
25
+
26
+ Rake::TestTask.new(:test) do |t|
27
+ t.libs << 'lib'
28
+ t.libs << 'test'
29
+ t.pattern = 'test/**/*_test.rb'
30
+ t.verbose = false
31
+ end
32
+
33
+
34
+ task default: :test
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'direct_inject/version'
5
+
6
+ Gem::Specification.new do | spec |
7
+ spec.name = 'direct_inject'
8
+ spec.version = DirectInject::VERSION
9
+ spec.authors = [ 'Ryan Cook' ]
10
+ spec.email = [ 'cookrn@gmail.com' ]
11
+ spec.homepage = 'https://github.com/cookrn/direct_inject'
12
+ spec.summary = %q{Sprockets/Rails helpers for directly injecting assets onto the page.}
13
+ spec.description = %q{Sprockets/Rails helpers for directly injecting assets onto the page as an alternative to linking/sourcing an asset by URL.}
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = [ 'lib' ]
20
+
21
+ spec.add_dependency 'map'
22
+ spec.add_dependency 'tagz'
23
+
24
+ spec.add_development_dependency 'bundler' , '~> 1.7'
25
+ spec.add_development_dependency 'rails' , '>= 3.1'
26
+ spec.add_development_dependency 'rake' , '~> 10.0'
27
+ end
@@ -0,0 +1,16 @@
1
+ module DirectInject
2
+ module Errors
3
+ class AssetNotFound < StandardError
4
+ attr_accessor :missing_source
5
+
6
+ def initialize( missing_source )
7
+ self.missing_source = missing_source
8
+ super message_template % missing_source
9
+ end
10
+
11
+ def message_template
12
+ 'Unable to find "%s" in your Sprockets environment!'
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module DirectInject
2
+ module Errors
3
+ class NotConfigured < StandardError
4
+ attr_accessor :missing_property
5
+
6
+ def initialize( missing_property )
7
+ self.missing_property = missing_property
8
+ super message_template % missing_property
9
+ end
10
+
11
+ def message_template
12
+ 'Unable to determine "%s". Please double check your configuration!'
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,2 @@
1
+ require 'direct_inject/errors/asset_not_found'
2
+ require 'direct_inject/errors/not_configured'
@@ -0,0 +1,66 @@
1
+ require 'direct_inject'
2
+ require 'direct_inject/errors'
3
+ require 'map'
4
+
5
+ module DirectInject
6
+ module InternalHelpers
7
+ ASSET_EXTENSIONS =
8
+ {
9
+ :javascript => '.js',
10
+ :stylesheet => '.css'
11
+ }
12
+
13
+ private
14
+
15
+ def asset_for!( source , options )
16
+ environment =
17
+ options.fetch 'sprockets_environment' do
18
+ DirectInject.sprockets_environment
19
+ end
20
+
21
+ path = source
22
+
23
+ if extname = compute_asset_extname( path , options )
24
+ path = "#{ path }#{ extname }"
25
+ end
26
+
27
+ asset = environment.find_asset path
28
+
29
+ if asset.nil?
30
+ raise Errors::AssetNotFound , source
31
+ end
32
+
33
+ asset
34
+ end
35
+
36
+ def compute_asset_extname(source, options = {})
37
+ return if options[ :extname ] == false
38
+ extname = options[ :extname ] || ASSET_EXTENSIONS[ options[ :type ] ]
39
+ extname if extname && File.extname( source ) != extname
40
+ end
41
+
42
+ def image_prefix_for( asset )
43
+ "data:image/#{ asset.pathname.extname[ 1 .. -1 ] };base64,"
44
+ end
45
+
46
+ def render( *sources )
47
+ options = Map.opts! sources
48
+
49
+ sources.map do | source |
50
+ asset = asset_for! source , options
51
+
52
+ options.set \
53
+ 'data',
54
+ 'direct_inject_source',
55
+ source
56
+
57
+ result =
58
+ if block_given?
59
+ yield( asset , options ).to_s
60
+ else
61
+ ''
62
+ end
63
+ end.join "\n"
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,76 @@
1
+ require 'base64'
2
+ require 'direct_inject/internal_helpers'
3
+ require 'direct_inject/templates'
4
+ require 'map'
5
+
6
+ module DirectInject
7
+ module PublicApi
8
+ include InternalHelpers
9
+
10
+ def render_image( *sources )
11
+ render *sources do | asset , options |
12
+ options.set \
13
+ 'data',
14
+ 'direct_inject_type',
15
+ 'image'
16
+
17
+ prefix = image_prefix_for asset
18
+ encoded = "#{ prefix }#{ Base64.encode64( asset.to_s ) }"
19
+
20
+ Templates::Image.render \
21
+ encoded,
22
+ options
23
+ end
24
+ end
25
+
26
+ def render_javascript( *sources )
27
+ options = Map.opts! sources
28
+
29
+ options.set \
30
+ 'type',
31
+ :javascript
32
+
33
+ sources.push options
34
+
35
+ render *sources do | asset , options |
36
+ options.set \
37
+ 'data',
38
+ 'direct_inject_type',
39
+ 'javascript'
40
+
41
+ options.set \
42
+ 'type',
43
+ 'text/javascript'
44
+
45
+ Templates::Javascript.render \
46
+ asset.to_s,
47
+ options
48
+ end
49
+ end
50
+
51
+ def render_stylesheet( *sources )
52
+ options = Map.opts! sources
53
+
54
+ options.set \
55
+ 'type',
56
+ :stylesheet
57
+
58
+ sources.push options
59
+
60
+ render *sources do | asset , options |
61
+ options.set \
62
+ 'data',
63
+ 'direct_inject_type',
64
+ 'stylesheet'
65
+
66
+ options.set \
67
+ 'type',
68
+ 'text/css'
69
+
70
+ Templates::Stylesheet.render \
71
+ asset.to_s,
72
+ options
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,17 @@
1
+ module DirectInject
2
+ module Rails
3
+ module ViewHelpers
4
+ def direct_inject_image( *sources )
5
+ DirectInject.render_image( *sources ).html_safe
6
+ end
7
+
8
+ def direct_inject_javascript( *sources )
9
+ DirectInject.render_javascript( *sources ).html_safe
10
+ end
11
+
12
+ def direct_inject_stylesheet( *sources )
13
+ DirectInject.render_stylesheet( *sources ).html_safe
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,16 @@
1
+ require 'direct_inject/rails/view_helpers'
2
+ require 'rails/railtie'
3
+
4
+ module DirectInject
5
+ class Railtie < ::Rails::Railtie
6
+ initializer 'direct_inject.sprockets_environment' do | app |
7
+ DirectInject.sprockets_environment = app.assets
8
+ end
9
+
10
+ initializer 'direct_inject.view_helpers' do
11
+ ActiveSupport.on_load :action_view do
12
+ include Rails::ViewHelpers
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,31 @@
1
+ require 'map'
2
+ require 'tagz'
3
+
4
+ Tagz.i_know_what_the_hell_i_am_doing!
5
+
6
+ module DirectInject
7
+ module Templates
8
+ class Abstract
9
+ include Tagz
10
+
11
+ def self.render( *args , &block )
12
+ new( *args , &block ).render
13
+ end
14
+
15
+ attr_reader \
16
+ :source,
17
+ :options
18
+
19
+ def initialize( source , options )
20
+ @source = source
21
+ @options = options
22
+ end
23
+
24
+ def tag_options( options )
25
+ map_options = Map.for options
26
+ options_keys = map_options.depth_first_keys.map { | k | k.map( &:to_s ).join '-' }
27
+ Hash[ options_keys.zip map_options.depth_first_values ]
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,11 @@
1
+ require 'direct_inject/templates/abstract'
2
+
3
+ module DirectInject
4
+ module Templates
5
+ class Image < Abstract
6
+ def render
7
+ tagz { img_ tag_options( options ).merge( :src => source ) }
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'direct_inject/templates/abstract'
2
+
3
+ module DirectInject
4
+ module Templates
5
+ class Javascript < Abstract
6
+ def render
7
+ tagz { script_( tag_options( options ) ){ source } }
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'direct_inject/templates/abstract'
2
+
3
+ module DirectInject
4
+ module Templates
5
+ class Stylesheet < Abstract
6
+ def render
7
+ tagz { style_( tag_options( options ) ){ source } }
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ require 'direct_inject/templates/image'
2
+ require 'direct_inject/templates/javascript'
3
+ require 'direct_inject/templates/stylesheet'
@@ -0,0 +1,3 @@
1
+ module DirectInject
2
+ VERSION = '0.0.1'
3
+ end
@@ -0,0 +1,22 @@
1
+ require 'direct_inject/errors'
2
+ require 'direct_inject/public_api'
3
+
4
+ module DirectInject
5
+ extend \
6
+ self,
7
+ PublicApi
8
+
9
+ attr_writer :sprockets_environment
10
+
11
+ def sprockets_environment
12
+ if @sprockets_environment.nil?
13
+ raise \
14
+ Errors::NotConfigured,
15
+ :sprockets_environment
16
+ end
17
+
18
+ @sprockets_environment
19
+ end
20
+ end
21
+
22
+ require 'direct_inject/railtie' if defined?( Rails::Railtie )
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require File.expand_path('../config/application', __FILE__)
5
+
6
+ Rails.application.load_tasks
File without changes
@@ -0,0 +1 @@
1
+ //= require_tree .
@@ -0,0 +1,2 @@
1
+ window.wuuuut = '';
2
+ window.assets_version = '<%= Rails.application.config.assets.version %>';
@@ -0,0 +1,4 @@
1
+ /*
2
+ *= require_tree .
3
+ *= require_self
4
+ */
@@ -0,0 +1,5 @@
1
+ body {
2
+ span {
3
+ color: red;
4
+ }
5
+ }
@@ -0,0 +1,6 @@
1
+ class PagesController < ActionController::Base
2
+ def image_test; end
3
+ def index; end
4
+ def javascript_test; end
5
+ def stylesheet_test; end
6
+ end
@@ -0,0 +1,9 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Dummy</title>
5
+ </head>
6
+ <body>
7
+ <%= yield %>
8
+ </body>
9
+ </html>
@@ -0,0 +1 @@
1
+ <%= direct_inject_image 'headshot.png' %>
@@ -0,0 +1,6 @@
1
+ <h1>Links</h1>
2
+ <ul>
3
+ <li><%= link_to 'Image Test' , image_test_path %></li>
4
+ <li><%= link_to 'Javascript Test' , javascript_test_path %></li>
5
+ <li><%= link_to 'Stylesheet Test' , stylesheet_test_path %></li>
6
+ </ul>
@@ -0,0 +1 @@
1
+ <%= direct_inject_javascript 'application' %>
@@ -0,0 +1 @@
1
+ <%= direct_inject_stylesheet 'application' %>
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3
+ load Gem.bin_path('bundler', 'bundle')
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
3
+ require_relative '../config/boot'
4
+ require 'rails/commands'
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../config/boot'
3
+ require 'rake'
4
+ Rake.application.run
@@ -0,0 +1,24 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ require 'rails'
4
+
5
+ %w(
6
+ action_controller
7
+ action_view
8
+ rails/test_unit
9
+ sprockets
10
+ ).each do | framework |
11
+ begin
12
+ require "#{ framework }/railtie"
13
+ rescue LoadError
14
+ end
15
+ end
16
+
17
+ Bundler.require(*Rails.groups)
18
+ require 'direct_inject'
19
+
20
+ module Dummy
21
+ class Application < Rails::Application
22
+ end
23
+ end
24
+
@@ -0,0 +1,3 @@
1
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)
2
+ require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
3
+ $LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__)
@@ -0,0 +1,2 @@
1
+ require File.expand_path('../application', __FILE__)
2
+ Rails.application.initialize!
@@ -0,0 +1,9 @@
1
+ Rails.application.configure do
2
+ config.cache_classes = false
3
+ config.eager_load = false
4
+ config.consider_all_requests_local = true
5
+ config.action_controller.perform_caching = false
6
+ config.active_support.deprecation = :log
7
+ config.assets.debug = true
8
+ config.assets.raise_runtime_errors = true
9
+ end
@@ -0,0 +1,11 @@
1
+ Rails.application.configure do
2
+ config.cache_classes = true
3
+ config.eager_load = false
4
+ config.serve_static_assets = true
5
+ config.static_cache_control = 'public, max-age=3600'
6
+ config.consider_all_requests_local = true
7
+ config.action_controller.perform_caching = false
8
+ config.action_dispatch.show_exceptions = false
9
+ config.action_controller.allow_forgery_protection = false
10
+ config.active_support.deprecation = :stderr
11
+ end
@@ -0,0 +1 @@
1
+ Rails.application.config.assets.version = '1.0'
@@ -0,0 +1 @@
1
+ Rails.application.config.action_dispatch.cookies_serializer = :json
@@ -0,0 +1 @@
1
+ Rails.application.config.filter_parameters += [:password]
@@ -0,0 +1 @@
1
+ Rails.application.config.session_store :cookie_store, key: '_dummy_session'
@@ -0,0 +1,3 @@
1
+ ActiveSupport.on_load(:action_controller) do
2
+ wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
3
+ end
@@ -0,0 +1,7 @@
1
+ Rails.application.routes.draw do
2
+ root 'pages#index'
3
+
4
+ get 'test/image' => 'pages#image_test' , :as => :image_test
5
+ get 'test/javascript' => 'pages#javascript_test' , :as => :javascript_test
6
+ get 'test/stylesheet' => 'pages#stylesheet_test' , :as => :stylesheet_test
7
+ end
@@ -0,0 +1,5 @@
1
+ development:
2
+ secret_key_base: e00fd0db4a1d4b8638150b393d02b34438282c19bced06b396ccf42b6453382bd518ed3d28eb787010f5054dd4c8aa09af0b13025fa2d40b8f35bc16732566cf
3
+
4
+ test:
5
+ secret_key_base: a22cb0a872752609d8fd6ea9d54101044ee016b1bc79eadccc44adeebd7b51efb61523ecf2c66e7a30c4ca1454e5c0471784b53350f8e56cced4cd320eb922c7
@@ -0,0 +1,4 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require ::File.expand_path('../config/environment', __FILE__)
4
+ run Rails.application
File without changes
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,8 @@
1
+ require 'test_helper'
2
+
3
+ class ImageTest < ActionDispatch::IntegrationTest
4
+ test 'renders image inline' do
5
+ get 'test/image'
6
+ assert_response :success
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'test_helper'
2
+
3
+ class JavascriptTest < ActionDispatch::IntegrationTest
4
+ test 'renders javascript inline' do
5
+ get 'test/javascript'
6
+ assert_response :success
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require 'test_helper'
2
+
3
+ class StylesheetTest < ActionDispatch::IntegrationTest
4
+ test 'renders stylesheet inline' do
5
+ get 'test/stylesheet'
6
+ assert_response :success
7
+ end
8
+ end
@@ -0,0 +1,15 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ Rails.backtrace_cleaner.remove_silencers!
8
+
9
+ # Load support files
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
+
12
+ # Load fixtures from the engine
13
+ if ActiveSupport::TestCase.method_defined?(:fixture_path=)
14
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
15
+ end
metadata ADDED
@@ -0,0 +1,211 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: direct_inject
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Ryan Cook
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-11-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: map
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: tagz
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.7'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.7'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '3.1'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '3.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '10.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '10.0'
83
+ description: Sprockets/Rails helpers for directly injecting assets onto the page as
84
+ an alternative to linking/sourcing an asset by URL.
85
+ email:
86
+ - cookrn@gmail.com
87
+ executables: []
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - ".gitignore"
92
+ - Gemfile
93
+ - MIT-LICENSE
94
+ - README.md
95
+ - Rakefile
96
+ - direct_inject.gemspec
97
+ - lib/direct_inject.rb
98
+ - lib/direct_inject/errors.rb
99
+ - lib/direct_inject/errors/asset_not_found.rb
100
+ - lib/direct_inject/errors/not_configured.rb
101
+ - lib/direct_inject/internal_helpers.rb
102
+ - lib/direct_inject/public_api.rb
103
+ - lib/direct_inject/rails/view_helpers.rb
104
+ - lib/direct_inject/railtie.rb
105
+ - lib/direct_inject/templates.rb
106
+ - lib/direct_inject/templates/abstract.rb
107
+ - lib/direct_inject/templates/image.rb
108
+ - lib/direct_inject/templates/javascript.rb
109
+ - lib/direct_inject/templates/stylesheet.rb
110
+ - lib/direct_inject/version.rb
111
+ - test/dummy/Rakefile
112
+ - test/dummy/app/assets/images/.keep
113
+ - test/dummy/app/assets/images/headshot.png
114
+ - test/dummy/app/assets/javascripts/application.js
115
+ - test/dummy/app/assets/javascripts/wut.js.erb
116
+ - test/dummy/app/assets/stylesheets/application.css
117
+ - test/dummy/app/assets/stylesheets/wut.css.scss
118
+ - test/dummy/app/controllers/pages_controller.rb
119
+ - test/dummy/app/views/layouts/application.html.erb
120
+ - test/dummy/app/views/pages/image_test.html.erb
121
+ - test/dummy/app/views/pages/index.html.erb
122
+ - test/dummy/app/views/pages/javascript_test.html.erb
123
+ - test/dummy/app/views/pages/stylesheet_test.html.erb
124
+ - test/dummy/bin/bundle
125
+ - test/dummy/bin/rails
126
+ - test/dummy/bin/rake
127
+ - test/dummy/config.ru
128
+ - test/dummy/config/application.rb
129
+ - test/dummy/config/boot.rb
130
+ - test/dummy/config/environment.rb
131
+ - test/dummy/config/environments/development.rb
132
+ - test/dummy/config/environments/test.rb
133
+ - test/dummy/config/initializers/assets.rb
134
+ - test/dummy/config/initializers/cookies_serializer.rb
135
+ - test/dummy/config/initializers/filter_parameter_logging.rb
136
+ - test/dummy/config/initializers/session_store.rb
137
+ - test/dummy/config/initializers/wrap_parameters.rb
138
+ - test/dummy/config/routes.rb
139
+ - test/dummy/config/secrets.yml
140
+ - test/dummy/log/.keep
141
+ - test/dummy/public/404.html
142
+ - test/dummy/public/422.html
143
+ - test/dummy/public/500.html
144
+ - test/dummy/public/favicon.ico
145
+ - test/integration/image_test.rb
146
+ - test/integration/javascript_test.rb
147
+ - test/integration/stylesheet_test.rb
148
+ - test/test_helper.rb
149
+ homepage: https://github.com/cookrn/direct_inject
150
+ licenses:
151
+ - MIT
152
+ metadata: {}
153
+ post_install_message:
154
+ rdoc_options: []
155
+ require_paths:
156
+ - lib
157
+ required_ruby_version: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ required_rubygems_version: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ requirements: []
168
+ rubyforge_project:
169
+ rubygems_version: 2.4.3
170
+ signing_key:
171
+ specification_version: 4
172
+ summary: Sprockets/Rails helpers for directly injecting assets onto the page.
173
+ test_files:
174
+ - test/dummy/Rakefile
175
+ - test/dummy/app/assets/images/.keep
176
+ - test/dummy/app/assets/images/headshot.png
177
+ - test/dummy/app/assets/javascripts/application.js
178
+ - test/dummy/app/assets/javascripts/wut.js.erb
179
+ - test/dummy/app/assets/stylesheets/application.css
180
+ - test/dummy/app/assets/stylesheets/wut.css.scss
181
+ - test/dummy/app/controllers/pages_controller.rb
182
+ - test/dummy/app/views/layouts/application.html.erb
183
+ - test/dummy/app/views/pages/image_test.html.erb
184
+ - test/dummy/app/views/pages/index.html.erb
185
+ - test/dummy/app/views/pages/javascript_test.html.erb
186
+ - test/dummy/app/views/pages/stylesheet_test.html.erb
187
+ - test/dummy/bin/bundle
188
+ - test/dummy/bin/rails
189
+ - test/dummy/bin/rake
190
+ - test/dummy/config.ru
191
+ - test/dummy/config/application.rb
192
+ - test/dummy/config/boot.rb
193
+ - test/dummy/config/environment.rb
194
+ - test/dummy/config/environments/development.rb
195
+ - test/dummy/config/environments/test.rb
196
+ - test/dummy/config/initializers/assets.rb
197
+ - test/dummy/config/initializers/cookies_serializer.rb
198
+ - test/dummy/config/initializers/filter_parameter_logging.rb
199
+ - test/dummy/config/initializers/session_store.rb
200
+ - test/dummy/config/initializers/wrap_parameters.rb
201
+ - test/dummy/config/routes.rb
202
+ - test/dummy/config/secrets.yml
203
+ - test/dummy/log/.keep
204
+ - test/dummy/public/404.html
205
+ - test/dummy/public/422.html
206
+ - test/dummy/public/500.html
207
+ - test/dummy/public/favicon.ico
208
+ - test/integration/image_test.rb
209
+ - test/integration/javascript_test.rb
210
+ - test/integration/stylesheet_test.rb
211
+ - test/test_helper.rb