podium 0.4.0 → 0.8.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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +6 -6
  3. data/.ruby-version +1 -1
  4. data/Gemfile +9 -6
  5. data/MIT-LICENSE +20 -0
  6. data/Rakefile +13 -4
  7. data/app/assets/config/podium_manifest.js +0 -0
  8. data/app/assets/images/podium/.keep +0 -0
  9. data/app/assets/stylesheets/podium/.keep +0 -0
  10. data/app/controllers/.keep +0 -0
  11. data/app/controllers/concerns/.keep +0 -0
  12. data/app/controllers/podium/podlet_preview_controller.rb +26 -0
  13. data/app/helpers/.keep +0 -0
  14. data/app/helpers/podium/layout_helper.rb +19 -0
  15. data/app/jobs/.keep +0 -0
  16. data/app/mailers/.keep +0 -0
  17. data/app/models/.keep +0 -0
  18. data/app/models/concerns/.keep +0 -0
  19. data/app/views/.keep +0 -0
  20. data/bin/rails +14 -0
  21. data/bin/test +5 -0
  22. data/config/routes.rb +2 -0
  23. data/lib/generators/podium/install_generator.rb +44 -0
  24. data/lib/generators/podium/podlet_generator.rb +90 -0
  25. data/lib/generators/podium/templates/content.html.erb.tt +1 -0
  26. data/lib/generators/podium/templates/podium.rb.tt +6 -0
  27. data/lib/generators/podium/templates/podlet_controller.rb.tt +10 -0
  28. data/lib/generators/podium/templates/podlet_preview_controller.rb.tt +3 -0
  29. data/lib/podium/client.rb +4 -4
  30. data/lib/podium/configuration.rb +19 -0
  31. data/lib/podium/controller_helpers.rb +15 -0
  32. data/lib/podium/core_ext.rb +25 -0
  33. data/lib/podium/engine.rb +4 -0
  34. data/lib/podium/podlet_helpers.rb +59 -0
  35. data/lib/podium/podlet_preview.rb +11 -0
  36. data/lib/podium/version.rb +1 -1
  37. data/lib/podium.rb +31 -6
  38. data/lib/tasks/podium_tasks.rake +4 -0
  39. data/podium.gemspec +1 -5
  40. metadata +47 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8fe3049980e26404467c390e3c924daf6a3a1e4fba2551604b32bed951cc93bf
4
- data.tar.gz: 0673c2d91a92122c0201a2e7e180c266a30ef9eaacba58f42329795a74a8ff53
3
+ metadata.gz: 16cf9d8391da15771a0a8037bf7208bbd41f1df1d59ca2f7e59f72ce82272e6a
4
+ data.tar.gz: 5b048971454d125419a63818aa921e630ed857f4623a3754b58e6f09633c0af0
5
5
  SHA512:
6
- metadata.gz: 56054bac669a535d64f36067fa9b878ebbd1b7e77d80ee1b629d501cff46c491bd8ee71a35efb4440c94ad5c6e6ea77e5ba0105321d6fdd939200ec66315672c
7
- data.tar.gz: 9d38ca4c64dc8e2e331008b46b4899e416f2536a7fb12bce207249d0b047c5ee19b3ca0ee7e8d56e0f698e52ba3d09906dd1e4dea9af900d84ae97ec96909af1
6
+ metadata.gz: 10f4b94115cf02bd34fe85d88781b3ee445e493de1b2e6bd1fe764f5ef66fb77d4a23702bd8349aa86c9f118dc899bd171b06bbabbb9cec34b2b5e12cbb53add
7
+ data.tar.gz: 49ce6a17e730ea03ef2608530b0088b58df6a30e24c6d500cb38d427c8ccbbcf065538ceac0bb00aa8c2eeaa3b20cc69d763052ca3c8421cf0f562e44aa8d8e6
data/.gitignore CHANGED
@@ -1,12 +1,12 @@
1
1
  /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
2
  /doc/
3
+ /log/*.log
6
4
  /pkg/
7
- /spec/reports/
8
5
  /tmp/
6
+ /test/dummy/db/*.sqlite3
7
+ /test/dummy/db/*.sqlite3-*
8
+ /test/dummy/log/*.log
9
+ /test/dummy/storage/
10
+ /test/dummy/tmp/
9
11
 
10
- # rspec failure tracking
11
- .rspec_status
12
12
  Gemfile.lock
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.0.0
1
+ 3.0.2
data/Gemfile CHANGED
@@ -1,12 +1,15 @@
1
- # frozen_string_literal: true
2
-
3
1
  source "https://rubygems.org"
2
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
4
3
 
5
- # Specify your gem's dependencies in podium.gemspec
4
+ # Specify your gem's dependencies in podium.gemspec.
6
5
  gemspec
7
6
 
8
- gem "rake", "~> 13.0"
7
+ group :development do
8
+ gem "sqlite3"
9
+ end
9
10
 
10
- gem "rspec", "~> 3.0"
11
+ # Start debugger with binding.b -- Read more: https://github.com/ruby/debug
12
+ gem "debug", ">= 1.0.0", group: %i[ development test ]
11
13
 
12
- gem "webmock", "~> 3.12"
14
+ gem "rake"
15
+ gem "webmock"
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2021 Max Brosnahan
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/Rakefile CHANGED
@@ -1,8 +1,17 @@
1
- # frozen_string_literal: true
1
+ require "bundler/setup"
2
+
3
+ APP_RAKEFILE = File.expand_path("test/dummy/Rakefile", __dir__)
4
+ load "rails/tasks/engine.rake"
5
+
6
+ load "rails/tasks/statistics.rake"
2
7
 
3
8
  require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
9
+ require "rake/testtask"
5
10
 
6
- RSpec::Core::RakeTask.new(:spec)
11
+ Rake::TestTask.new(:test) do |t|
12
+ t.libs << "test"
13
+ t.pattern = "test/**/*_test.rb"
14
+ t.verbose = false
15
+ end
7
16
 
8
- task default: :spec
17
+ task default: :test
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,26 @@
1
+ module Podium
2
+ class PodletPreviewController < ActionController::Base
3
+ def index
4
+ @podlets = Podium::PodletPreview.podlets
5
+ links = @podlets.map do |podlet|
6
+ name = podlet.to_s.underscore
7
+ %(<li><a href="#{podlet_preview_path}/#{name.dasherize}"> #{name.humanize}</a></li>)
8
+ end.join("\n")
9
+ render html: <<-HTML.html_safe
10
+ <h1>Podlet Preview</h1>
11
+ <ul>
12
+ #{links}
13
+ </ul>
14
+ HTML
15
+ end
16
+
17
+ private
18
+
19
+ def podlet_resource(name, uri: nil)
20
+ podium_name = name.to_s.dasherize
21
+ uri ||= URI(request.url).tap { |u| u.path = "/#{podium_name}" }
22
+
23
+ Podium::Resource.new(uri, podium_name)
24
+ end
25
+ end
26
+ end
data/app/helpers/.keep ADDED
File without changes
@@ -0,0 +1,19 @@
1
+ module Podium
2
+ module LayoutHelper
3
+ def podlet_content!(name)
4
+ @podlet_content.fetch(name).html_safe
5
+ end
6
+
7
+ def podlet_assets(type)
8
+ Podium.instance.podlet_resources(@podlet_content.keys).flat_map do |resource|
9
+ resource.manifest.public_send(type)
10
+ end
11
+ end
12
+
13
+ def podlet_js_tags
14
+ podlet_assets(:js).map do |data|
15
+ javascript_tag(nil, src: data.fetch("value"), type: data.fetch("type"))
16
+ end.join("\n").html_safe
17
+ end
18
+ end
19
+ end
data/app/jobs/.keep ADDED
File without changes
data/app/mailers/.keep ADDED
File without changes
data/app/models/.keep ADDED
File without changes
File without changes
data/app/views/.keep ADDED
File without changes
data/bin/rails ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails gems
3
+ # installed from the root of your application.
4
+
5
+ ENGINE_ROOT = File.expand_path("..", __dir__)
6
+ ENGINE_PATH = File.expand_path("../lib/podium/engine", __dir__)
7
+ APP_PATH = File.expand_path("../test/dummy/config/application", __dir__)
8
+
9
+ # Set up gems listed in the Gemfile.
10
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
11
+ require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"])
12
+
13
+ require "rails/all"
14
+ require "rails/engine/commands"
data/bin/test ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+ $: << File.expand_path("../test", __dir__)
3
+
4
+ require "bundler/setup"
5
+ require "rails/plugin/test"
data/config/routes.rb ADDED
@@ -0,0 +1,2 @@
1
+ Rails.application.routes.draw do
2
+ end
@@ -0,0 +1,44 @@
1
+ require "rails/generators"
2
+
3
+ module Podium
4
+ class InstallGenerator < ::Rails::Generators::Base
5
+ APP_CONTROLLER_PATH = "app/controllers/application_controller.rb"
6
+ LAYOUT_PATH = "app/views/layouts/application.html.erb"
7
+
8
+ source_root File.expand_path("templates", __dir__)
9
+
10
+ desc "Sets up your application for integrating with podium"
11
+
12
+ def copy_initializer
13
+ template "podium.rb", "config/initializers/podium.rb"
14
+
15
+ inside do
16
+ setup_app_controller
17
+ end
18
+ end
19
+
20
+ def add_podlets_to_layout
21
+ return if File.read(LAYOUT_PATH).include?("podlet_content!")
22
+ inject_into_file LAYOUT_PATH, "<%= podlet_content!(:header) %>\n ", before: "<%= yield %>"
23
+ inject_into_file LAYOUT_PATH, " <%= podlet_content!(:footer) %>\n", after: "<%= yield %>\n"
24
+ inject_into_file LAYOUT_PATH, " <%= podlet_js_tags %>\n ", before: "</head>\n"
25
+ end
26
+
27
+ private
28
+
29
+ def setup_app_controller
30
+ return unless File.exists?(APP_CONTROLLER_PATH)
31
+
32
+ return if File.read(APP_CONTROLLER_PATH).include?("Podium::ControllerHelpers")
33
+
34
+ new_content = <<-'RUBY'
35
+ include Podium::ControllerHelpers
36
+
37
+ def podlets
38
+ [:header, :footer]
39
+ end
40
+ RUBY
41
+ inject_into_class APP_CONTROLLER_PATH, "ApplicationController", new_content
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,90 @@
1
+ require "rails/generators"
2
+
3
+ module Podium
4
+ class PodletGenerator < ::Rails::Generators::NamedBase
5
+ APP_CONTROLLER_PATH = "app/controllers/application_controller.rb"
6
+ PREVIEW_CONTROLLER_PATH = "app/controllers/podlet_preview_controller.rb"
7
+ LAYOUT_PATH = "app/views/layouts/application.html.erb"
8
+
9
+ source_root File.expand_path("templates", __dir__)
10
+
11
+ desc "Generate boilerplate for a podlet"
12
+
13
+ def create_controller
14
+ template "podlet_controller.rb", "app/controllers/#{controller_file_name}"
15
+ end
16
+
17
+ def create_views
18
+ template "content.html.erb", "app/views/#{folder_name}/content.html.erb"
19
+ end
20
+
21
+ def prepare_assets
22
+ create_file "app/assets/javascripts/#{folder_name}/podlet.js"
23
+ create_file "app/assets/stylesheets/#{folder_name}/podlet.css"
24
+ return if contents("app/assets/config/manifest.js").include?(folder_name)
25
+ append_to_file "app/assets/config/manifest.js", "//= link_directory ../javascripts/#{folder_name} .js\n"
26
+ append_to_file "app/assets/config/manifest.js", "//= link_directory ../stylesheets/#{folder_name} .css\n"
27
+ end
28
+
29
+ def setup_routes
30
+ route = "podlet :#{podlet_name}"
31
+ return if route_present?(route)
32
+ if route_present?("podlet_preview")
33
+ inject_into_file "config/routes.rb", "\n #{route}", before: "\n podlet_preview"
34
+ else
35
+ inject_into_file "config/routes.rb", "\n #{route}", before: "\nend"
36
+ inject_into_file "config/routes.rb", "\n podlet_preview if Rails.env.development?", before: "\nend"
37
+ end
38
+ end
39
+
40
+ def setup_preview
41
+ unless preview_exists?
42
+ template "podlet_preview_controller.rb", PREVIEW_CONTROLLER_PATH
43
+ end
44
+ return if contents(PREVIEW_CONTROLLER_PATH).include?(podlet_name)
45
+
46
+ podlet_action = <<-RUBY
47
+ \ndef #{podlet_name}
48
+ resource = podlet_resource(:#{podlet_name})
49
+ render html: resource.fetch({}).html_safe
50
+ end
51
+ RUBY
52
+
53
+ inject_into_file PREVIEW_CONTROLLER_PATH, podlet_action, before: "\nend"
54
+ end
55
+
56
+ private
57
+
58
+ def preview_exists?
59
+ inside do
60
+ return File.exist?(PREVIEW_CONTROLLER_PATH)
61
+ end
62
+ end
63
+
64
+ def route_present?(route)
65
+ contents("config/routes.rb").include?(route)
66
+ end
67
+
68
+ def contents(path)
69
+ inside do
70
+ return File.read(path)
71
+ end
72
+ end
73
+
74
+ def folder_name
75
+ "#{podlet_name}_podlet"
76
+ end
77
+
78
+ def podlet_name
79
+ name.underscore
80
+ end
81
+
82
+ def controller_file_name
83
+ "#{controller_name.underscore}.rb"
84
+ end
85
+
86
+ def controller_name
87
+ "#{name.underscore.camelcase}PodletController"
88
+ end
89
+ end
90
+ end
@@ -0,0 +1 @@
1
+ <strong>hello from podlet</strong>
@@ -0,0 +1,6 @@
1
+ Podium.configure do |config|
2
+ config.register(:header)
3
+ config.register(:footer)
4
+ # config.register(:widget_a, "http://widget.com/widget_a")
5
+ config.name_to_url = -> (name) { "http://#{name}.my-podlet-host" }
6
+ end
@@ -0,0 +1,10 @@
1
+ class <%= controller_name %> < ActionController::Base
2
+ include Podium::PodletHelpers
3
+
4
+ def content
5
+ end
6
+
7
+ def fallback
8
+ render html: ""
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ class PodletPreviewController < Podium::PodletPreviewController
2
+
3
+ end
data/lib/podium/client.rb CHANGED
@@ -20,6 +20,10 @@ module Podium
20
20
  end
21
21
  end
22
22
 
23
+ def podlet_resources(names)
24
+ names.map { |name| resources[name] ||= Resource.new(podlet_uri(name), name) }
25
+ end
26
+
23
27
  private
24
28
 
25
29
  attr_reader :name_to_url, :resources
@@ -34,9 +38,5 @@ module Podium
34
38
  def podlet_uri(name)
35
39
  podlet_mapping.fetch(name)
36
40
  end
37
-
38
- def podlet_resources(names)
39
- names.map { |name| resources[name] ||= Resource.new(podlet_uri(name), name) }
40
- end
41
41
  end
42
42
  end
@@ -0,0 +1,19 @@
1
+ module Podium
2
+ class Configuration
3
+ attr_reader :podlets
4
+
5
+ attr_writer :name_to_url
6
+
7
+ def initialize
8
+ @podlets = {}
9
+ end
10
+
11
+ def register(name, url = nil)
12
+ @podlets[name] = url
13
+ end
14
+
15
+ def name_to_url
16
+ @name_to_url || ->(name) { raise "name_to_url not configured. Set name_to_url in podium configuration." }
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ module Podium
2
+ module ControllerHelpers
3
+ def self.included(base)
4
+ base.before_action :load_podlet_content
5
+ end
6
+
7
+ def load_podlet_content
8
+ @podlet_content = Podium.instance.load_content_for_podlets(podlets, podlet_context)
9
+ end
10
+
11
+ def podlet_context
12
+ {}
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,25 @@
1
+ module ActionDispatch
2
+ module Routing
3
+ class Mapper
4
+ def podlet(name)
5
+ Podium::PodletPreview.register(name)
6
+ prefix = "#{name}_podlet"
7
+ scope name.to_s.dasherize, as: prefix do
8
+ get "/", to: "#{prefix}#content", as: "content"
9
+ get "/fallback", to: "#{prefix}#fallback"
10
+ get "/manifest.json", to: "#{prefix}#manifest", as: "manifest"
11
+ end
12
+ end
13
+
14
+ def podlet_preview
15
+ scope "podlet-preview" do
16
+ get "/", to: "podlet_preview#index", as: "podlet_preview"
17
+
18
+ Podium::PodletPreview.podlets.each do |name|
19
+ get "/#{name.to_s.dasherize}", to: "podlet_preview##{name}"
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,4 @@
1
+ module Podium
2
+ class Engine < ::Rails::Engine
3
+ end
4
+ end
@@ -0,0 +1,59 @@
1
+ module Podium
2
+ module PodletHelpers
3
+ def self.included(base)
4
+ base.layout false
5
+ base.extend(ClassMethods)
6
+ base.before_action :set_podium_headers, only: [:content, :fallback]
7
+ end
8
+
9
+ def manifest
10
+ render json: self.class.podlet_manifest.to_json
11
+ end
12
+
13
+ def set_podium_headers
14
+ response.set_header("podlet-version", self.class.version)
15
+ end
16
+
17
+ def podium_params
18
+ @podium_params ||= ActionController::Parameters.new(podium_header_params)
19
+ end
20
+
21
+ def podium_header_params
22
+ request.headers
23
+ .select { |(k)| k.start_with?("HTTP_PODIUM_") }
24
+ .reduce({}) do |acc, (header, value)|
25
+ key = header.gsub("HTTP_PODIUM_", "").underscore
26
+ acc[key] = value
27
+ acc
28
+ end
29
+ end
30
+
31
+ module ClassMethods
32
+ def podlet_manifest
33
+ @podlet_manifest ||= {
34
+ name: self.class.name.gsub("PodletController", "").underscore.dasherize,
35
+ version: version,
36
+ content: "/",
37
+ fallback: "/fallback",
38
+ proxy: {},
39
+
40
+ }.merge(assets)
41
+ end
42
+
43
+ def assets
44
+ {
45
+ assets: {
46
+ js: "",
47
+ css: "",
48
+ },
49
+ js: [],
50
+ css: [],
51
+ }
52
+ end
53
+
54
+ def version
55
+ @version ||= ENV.fetch("VERSION", DateTime.now().to_i.to_s)
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,11 @@
1
+ module Podium
2
+ module PodletPreview
3
+ def self.register(name)
4
+ podlets << name
5
+ end
6
+
7
+ def self.podlets
8
+ @podlets ||= []
9
+ end
10
+ end
11
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Podium
4
- VERSION = "0.4.0"
4
+ VERSION = "0.8.0"
5
5
  end
data/lib/podium.rb CHANGED
@@ -1,12 +1,37 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "podium/version"
4
- require_relative "podium/client"
5
- require_relative "podium/resource"
6
- require_relative "podium/manifest"
3
+ require "podium/version"
4
+ require "podium/client"
5
+ require "podium/resource"
6
+ require "podium/manifest"
7
+ require "podium/configuration"
8
+ require "podium/controller_helpers"
9
+ require "podium/podlet_preview"
10
+ require "podium/podlet_helpers"
11
+ require "podium/core_ext"
12
+ require "podium/engine"
7
13
 
8
14
  module Podium
9
- class Error < StandardError; end
15
+ class NotConfiguredError < StandardError; end
10
16
 
11
- # Your code goes here...
17
+ def self.configuration
18
+ @configuration || (raise NotConfiguredError, "Did you forget to run Podium.configure ?")
19
+ end
20
+
21
+ def self.configure
22
+ @configuration ||= Configuration.new
23
+ yield(configuration)
24
+ end
25
+
26
+ def self.instance
27
+ @instance ||= build_instance
28
+ end
29
+
30
+ def self.build_instance
31
+ client = Podium::Client.new(name_to_url: configuration.name_to_url)
32
+ configuration.podlets.each do |key, url|
33
+ client.register(key, url)
34
+ end
35
+ client
36
+ end
12
37
  end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :podium do
3
+ # # Task goes here
4
+ # end
data/podium.gemspec CHANGED
@@ -28,9 +28,5 @@ Gem::Specification.new do |spec|
28
28
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
29
29
  spec.require_paths = ["lib"]
30
30
 
31
- # Uncomment to register a new dependency of your gem
32
- # spec.add_dependency "example-gem", "~> 1.0"
33
-
34
- # For more information and examples about making a new gem, checkout our
35
- # guide at: https://bundler.io/guides/creating_gem.html
31
+ spec.add_dependency "rails", "> 6.1"
36
32
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: podium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max Brosnahan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-27 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2021-10-02 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: '6.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">"
25
+ - !ruby/object:Gem::Version
26
+ version: '6.1'
13
27
  description:
14
28
  email:
15
29
  - maximilianbrosnahan@gmail.com
@@ -25,15 +39,45 @@ files:
25
39
  - CODE_OF_CONDUCT.md
26
40
  - Gemfile
27
41
  - LICENSE.txt
42
+ - MIT-LICENSE
28
43
  - README.md
29
44
  - Rakefile
45
+ - app/assets/config/podium_manifest.js
46
+ - app/assets/images/podium/.keep
47
+ - app/assets/stylesheets/podium/.keep
48
+ - app/controllers/.keep
49
+ - app/controllers/concerns/.keep
50
+ - app/controllers/podium/podlet_preview_controller.rb
51
+ - app/helpers/.keep
52
+ - app/helpers/podium/layout_helper.rb
53
+ - app/jobs/.keep
54
+ - app/mailers/.keep
55
+ - app/models/.keep
56
+ - app/models/concerns/.keep
57
+ - app/views/.keep
30
58
  - bin/console
59
+ - bin/rails
31
60
  - bin/setup
61
+ - bin/test
62
+ - config/routes.rb
63
+ - lib/generators/podium/install_generator.rb
64
+ - lib/generators/podium/podlet_generator.rb
65
+ - lib/generators/podium/templates/content.html.erb.tt
66
+ - lib/generators/podium/templates/podium.rb.tt
67
+ - lib/generators/podium/templates/podlet_controller.rb.tt
68
+ - lib/generators/podium/templates/podlet_preview_controller.rb.tt
32
69
  - lib/podium.rb
33
70
  - lib/podium/client.rb
71
+ - lib/podium/configuration.rb
72
+ - lib/podium/controller_helpers.rb
73
+ - lib/podium/core_ext.rb
74
+ - lib/podium/engine.rb
34
75
  - lib/podium/manifest.rb
76
+ - lib/podium/podlet_helpers.rb
77
+ - lib/podium/podlet_preview.rb
35
78
  - lib/podium/resource.rb
36
79
  - lib/podium/version.rb
80
+ - lib/tasks/podium_tasks.rake
37
81
  - podium.gemspec
38
82
  homepage: https://github.com/gingermusketeer/podium
39
83
  licenses: