podium 0.4.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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: