active_path 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c266106395a8b3ddf51e549973c80c6ec6dc7579
4
+ data.tar.gz: 2e87efdefac0cbaf5ea7beeff94d6c72e0288fab
5
+ SHA512:
6
+ metadata.gz: b4404aac557635185c5137d150998b1109d157f1483fef74e607c407a66c8d35c113e6d12a7c0d975d1d886e764df1424309b3798d8f7abeccdacb8b4649df5f
7
+ data.tar.gz: 66bd5809c1fad03f9ac28ab528b6018bc4b7d908e33b74746d3c3535a8647e6195d79accd5ebf6eaf45f7d55c957cfb4689962747fea7a561a8d98e62509723b
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ .idea
data/README.md ADDED
@@ -0,0 +1,86 @@
1
+ # ActivePath:
2
+ View injection and path hints for Rails 5.
3
+
4
+
5
+ ##Installation
6
+
7
+ Add to your Gemfile:
8
+
9
+ ```ruby
10
+ gem 'active_path'
11
+ ```
12
+
13
+ Add the initializer `config/initializers/active_path.rb` and enable `ActivePath`:
14
+
15
+ ```ruby
16
+
17
+ ActivePath.configure do |config|
18
+
19
+ config.enabled = true
20
+
21
+ end
22
+
23
+ ```
24
+
25
+
26
+ ##Configuration
27
+
28
+ **Basic view injection.**
29
+
30
+ ```ruby
31
+
32
+ ActivePath.configure do |config|
33
+
34
+ ...
35
+
36
+ config.partials.prepend('page_content').with('example/test')
37
+
38
+ end
39
+
40
+ ```
41
+
42
+ The above example assumes your application renders a partial called 'page_content' and you want to `prepend` a partial called 'example/test'.
43
+
44
+ Your partial will have the same local parameters access as the prepended partial.
45
+
46
+ --
47
+
48
+ **More ways to inject content into views**
49
+
50
+ ```ruby
51
+
52
+ ActivePath.configure do |config|
53
+
54
+ ...
55
+
56
+ config.partials.prepend('page_content').with(
57
+ partial: 'example/test',
58
+ helper: ExampleHelper
59
+ )
60
+
61
+ end
62
+
63
+ ```
64
+
65
+ The above example is similar to the first but also adds your helper to the view.
66
+
67
+ --
68
+
69
+ **Path hints:** (use in development only)
70
+
71
+
72
+ ```ruby
73
+
74
+ ActivePath.configure do |config|
75
+
76
+ ...
77
+
78
+ config.path_hints = true
79
+
80
+ end
81
+
82
+ ```
83
+
84
+ All partials will be wrapped in a border, red for uncached, green for cached.
85
+
86
+ Feel free to [submit issues](https://github.com/ryaan-anthony/active-path/issues) or [help make it better](https://github.com/ryaan-anthony/active-path/pulls).
data/Rakefile ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env rake
2
+
3
+ $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
4
+ require 'active_path/version'
5
+
6
+ desc "Release version #{ActivePath::VERSION} of the gem"
7
+ task :release do
8
+
9
+ system "git tag -a v#{ActivePath::VERSION} -m 'Tagging #{ActivePath::VERSION}'"
10
+ system 'git push --tags'
11
+
12
+ system "gem build active_path.gemspec"
13
+ system "gem push active_path-#{ActivePath::VERSION}.gem"
14
+ system "rm active_path-#{ActivePath::VERSION}.gem"
15
+ end
@@ -0,0 +1,16 @@
1
+ $:.push File.expand_path('../lib', __FILE__)
2
+ require 'active_path/version'
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = 'active_path'
6
+ s.version = ActivePath::VERSION
7
+ s.date = '2018-04-28'
8
+ s.summary = "ActivePath"
9
+ s.description = "Path hints and layout injection"
10
+ s.authors = ["Ryan Tulino"]
11
+ s.email = 'rtulino@gmail.com'
12
+ s.files = `git ls-files`.split("\n")
13
+ s.homepage = 'http://rubygems.org/gems/active_path'
14
+ s.required_ruby_version = '>= 2.2.0'
15
+ s.add_dependency 'rails', '~> 5'
16
+ end
@@ -0,0 +1,12 @@
1
+ require 'active_path/engine'
2
+ require 'active_path/configuration'
3
+
4
+ module ActivePath
5
+ def self.config
6
+ Configuration.config
7
+ end
8
+
9
+ def self.configure
10
+ yield(config)
11
+ end
12
+ end
@@ -0,0 +1,19 @@
1
+ require 'active_path/configuration/partials'
2
+ module ActivePath
3
+ module Configuration
4
+ class << self
5
+ def setup_defaults
6
+ configuration.active_path = ActiveSupport::Configurable::Configuration.new
7
+ configuration.active_path.partials = Partials.new
8
+ end
9
+
10
+ def config
11
+ configuration.active_path
12
+ end
13
+
14
+ def configuration
15
+ Rails.configuration
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,16 @@
1
+ module ActivePath
2
+ module Configuration
3
+ class Partial
4
+ attr_reader :attachments
5
+
6
+ def initialize(key)
7
+ @key = key
8
+ @attachments = []
9
+ end
10
+
11
+ def with(args)
12
+ @attachments << args
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,26 @@
1
+ require 'active_path/configuration/partial'
2
+ module ActivePath
3
+ module Configuration
4
+ class Partials
5
+ attr_reader :partials
6
+
7
+ def initialize
8
+ @partials = {}
9
+ end
10
+
11
+ def prepend(key)
12
+ partial(key, true)
13
+ end
14
+
15
+ def append(key)
16
+ partial(key, false)
17
+ end
18
+
19
+ private
20
+
21
+ def partial(key, prepend = true)
22
+ @partials["#{key}/#{prepend}"] ||= Partial.new(key)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,16 @@
1
+ require 'active_path/helpers/rendering_helper'
2
+ module ActivePath
3
+ class Engine < Rails::Engine
4
+ isolate_namespace ActivePath
5
+
6
+ config.before_configuration do
7
+ Configuration.setup_defaults
8
+
9
+ # Include the render helper in the controller
10
+ ActiveSupport.on_load(:action_controller_base) do
11
+ next unless ActivePath.config.enabled
12
+ _helpers.module_eval { include ActivePath::Helpers::RenderingHelper }
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ require 'active_path/renderer/partial_renderer'
2
+ module ActivePath
3
+ module Helpers
4
+ module RenderingHelper
5
+ extend ActionView::Helpers::RenderingHelper
6
+ def render(options = {}, locals = {}, &block)
7
+ active_path_renderer(options, locals).render do
8
+ super
9
+ end
10
+ end
11
+
12
+ private
13
+
14
+ def active_path_renderer(options, locals)
15
+ Renderer::PartialRenderer.new(options, locals)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,7 @@
1
+ module ActivePath
2
+ module PathHints
3
+
4
+ #TODO
5
+
6
+ end
7
+ end
@@ -0,0 +1,37 @@
1
+ module ActivePath
2
+ module Renderer
3
+ class PartialRenderer
4
+ attr_reader :options, :locals
5
+
6
+ def initialize(options, locals)
7
+ @options = options
8
+ @locals = locals
9
+ end
10
+
11
+ def render
12
+ buffer = yield
13
+ before.each { |output| buffer.prepend(output) }
14
+ after.each { |output| buffer.concat(output) }
15
+ buffer
16
+ end
17
+
18
+ def before
19
+ partials.prepend(partial).attachments
20
+ end
21
+
22
+ def after
23
+ partials.append(partial).attachments
24
+ end
25
+
26
+ private
27
+
28
+ def partials
29
+ ActivePath.config.partials
30
+ end
31
+
32
+ def partial
33
+ options.is_a?(Hash) ? options[:partial] : options.to_s
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,3 @@
1
+ module ActivePath
2
+ VERSION = '0.0.1'
3
+ end
metadata ADDED
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: active_path
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Ryan Tulino
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-04-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '5'
27
+ description: Path hints and layout injection
28
+ email: rtulino@gmail.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - ".gitignore"
34
+ - README.md
35
+ - Rakefile
36
+ - active_path.gemspec
37
+ - lib/active_path.rb
38
+ - lib/active_path/configuration.rb
39
+ - lib/active_path/configuration/partial.rb
40
+ - lib/active_path/configuration/partials.rb
41
+ - lib/active_path/engine.rb
42
+ - lib/active_path/helpers/rendering_helper.rb
43
+ - lib/active_path/path_hints.rb
44
+ - lib/active_path/renderer/partial_renderer.rb
45
+ - lib/active_path/version.rb
46
+ homepage: http://rubygems.org/gems/active_path
47
+ licenses: []
48
+ metadata: {}
49
+ post_install_message:
50
+ rdoc_options: []
51
+ require_paths:
52
+ - lib
53
+ required_ruby_version: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: 2.2.0
58
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ requirements: []
64
+ rubyforge_project:
65
+ rubygems_version: 2.6.11
66
+ signing_key:
67
+ specification_version: 4
68
+ summary: ActivePath
69
+ test_files: []