wcc-contentful-app 0.3.0.pre.rc2 → 1.0.0.pre.rc2

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 (95) hide show
  1. checksums.yaml +5 -5
  2. data/.rspec +2 -1
  3. data/Guardfile +1 -0
  4. data/README.md +11 -0
  5. data/Rakefile +125 -0
  6. data/app/assets/config/manifest.js +5 -0
  7. data/app/assets/images/down-arrow-primary.svg +3 -0
  8. data/app/assets/images/up-arrow-primary.svg +3 -0
  9. data/app/assets/javascripts/wcc/contentful/app/contact-form.js +70 -0
  10. data/app/assets/javascripts/wcc/contentful/app/index.js +1 -0
  11. data/app/assets/stylesheets/_wcc-contentful-app.scss +7 -0
  12. data/app/assets/stylesheets/components/_menu-item.scss +5 -0
  13. data/app/assets/stylesheets/sections/_faq.scss +39 -0
  14. data/app/controllers/wcc/contentful/app/contact_form_controller.rb +39 -0
  15. data/app/controllers/wcc/contentful/app/pages_controller.rb +48 -0
  16. data/app/helpers/wcc/contentful/app/menu_helper.rb +85 -0
  17. data/app/helpers/wcc/contentful/app/section_helper.rb +135 -0
  18. data/app/mailers/wcc/contentful/app/contact_mailer.rb +11 -0
  19. data/app/models/concerns/wcc/contentful/app/preview_password.rb +19 -0
  20. data/app/models/wcc/contentful/app/contact_form_submission.rb +9 -0
  21. data/app/models/wcc/contentful/app/custom_markdown_render.rb +43 -0
  22. data/app/views/components/_faq_row.html.erb +21 -0
  23. data/app/views/components/_menu-item.html.erb +41 -0
  24. data/app/views/components/_other-menu-item.html.erb +4 -0
  25. data/app/views/components/_section.html.erb +11 -0
  26. data/app/views/layouts/mailer.html.erb +9 -0
  27. data/app/views/layouts/mailer.text.erb +1 -0
  28. data/app/views/pages/show.html.erb +4 -0
  29. data/app/views/sections/_block_text.html.erb +5 -0
  30. data/app/views/sections/_code_widget.html.erb +3 -0
  31. data/app/views/sections/_contact_form.html.erb +53 -0
  32. data/app/views/sections/_faq.html.erb +36 -0
  33. data/app/views/sections/_http_error.html.erb +13 -0
  34. data/app/views/sections/_marquee_text.html.erb +12 -0
  35. data/app/views/sections/_testimonials.html.erb +38 -0
  36. data/app/views/sections/_video.html.erb +12 -0
  37. data/app/views/sections/_video_highlight.html.erb +18 -0
  38. data/app/views/wcc/contentful/app/contact_mailer/contact_form_email.html.erb +7 -0
  39. data/bin/rails +14 -0
  40. data/config/routes.rb +7 -0
  41. data/doc +1 -0
  42. data/lib/generators/wcc/model_generator.rb +16 -6
  43. data/lib/generators/wcc/templates/menu/migrations/generated_add_menus.ts +285 -0
  44. data/lib/generators/wcc/templates/menu/models/dropdown_menu.rb +19 -0
  45. data/lib/generators/wcc/templates/menu/models/menu.rb +0 -4
  46. data/lib/generators/wcc/templates/menu/models/menu_button.rb +0 -4
  47. data/lib/generators/wcc/templates/page/migrations/generated_add_pages.ts +147 -0
  48. data/lib/generators/wcc/templates/page/models/page.rb +0 -4
  49. data/lib/generators/wcc/templates/page/models/redirect.rb +19 -0
  50. data/lib/generators/wcc/templates/section-block-text/migrations/generated_add_section-block-texts.ts +40 -0
  51. data/lib/generators/wcc/templates/section-block-text/models/section_block_text.rb +19 -0
  52. data/lib/generators/wcc/templates/section-code-widget/migrations/generated_add_section-code-widget.ts +90 -0
  53. data/lib/generators/wcc/templates/section-code-widget/models/section_code_widget.rb +23 -0
  54. data/lib/generators/wcc/templates/section-contact-form/migrations/create_wcc_contentful_app_contact_form_submissions.rb +12 -0
  55. data/lib/generators/wcc/templates/section-contact-form/migrations/generated_add_section-contact-forms.ts +147 -0
  56. data/lib/generators/wcc/templates/section-contact-form/models/form_field.rb +19 -0
  57. data/lib/generators/wcc/templates/section-contact-form/models/section_contact_form.rb +19 -0
  58. data/lib/generators/wcc/templates/section-faq/migrations/generated_add_section-faqs.ts +148 -0
  59. data/lib/generators/wcc/templates/section-faq/models/section_faq.rb +19 -0
  60. data/lib/generators/wcc/templates/section-http-error/migrations/generated_add_section-http-errors.ts +87 -0
  61. data/lib/generators/wcc/templates/section-http-error/models/section_http_error.rb +19 -0
  62. data/lib/generators/wcc/templates/section-marquee-text/migrations/generated_add_section-marquee-texts.ts +64 -0
  63. data/lib/generators/wcc/templates/section-marquee-text/models/section_marquee_text.rb +19 -0
  64. data/lib/generators/wcc/templates/section-testimonial/migrations/generated_add_section-testimonials.ts +182 -0
  65. data/lib/generators/wcc/templates/section-testimonial/models/section_testimonial.rb +19 -0
  66. data/lib/generators/wcc/templates/section-video-highlight/migrations/generated_add_section-video-highlights.ts +80 -0
  67. data/lib/generators/wcc/templates/section-video-highlight/models/section_video_highlight.rb +19 -0
  68. data/lib/generators/wcc/templates/section-video/migrations/generated_add_section-videos.ts +77 -0
  69. data/lib/generators/wcc/templates/section-video/models/section_video.rb +19 -0
  70. data/lib/generators/wcc/templates/site-config/migrations/generated_add_site-configs.ts +97 -0
  71. data/lib/generators/wcc/templates/site-config/models/site_config.rb +19 -0
  72. data/lib/generators/wcc/templates/wcc_contentful.rb +1 -1
  73. data/lib/wcc/contentful/app.rb +48 -3
  74. data/lib/wcc/contentful/app/configuration.rb +60 -0
  75. data/lib/wcc/contentful/app/engine.rb +15 -0
  76. data/lib/wcc/contentful/app/exceptions.rb +9 -0
  77. data/lib/wcc/contentful/app/rails.rb +6 -0
  78. data/lib/wcc/contentful/app/version.rb +1 -1
  79. data/lib/wcc/contentful/model/dropdown_menu.rb +0 -3
  80. data/lib/wcc/contentful/model/form_field.rb +4 -0
  81. data/lib/wcc/contentful/model/menu.rb +0 -2
  82. data/lib/wcc/contentful/model/menu_button.rb +18 -5
  83. data/lib/wcc/contentful/model/page.rb +0 -4
  84. data/lib/wcc/contentful/model/redirect.rb +21 -11
  85. data/lib/wcc/contentful/model/section_contact_form.rb +42 -0
  86. data/lib/wcc/contentful/model/site_config.rb +7 -0
  87. data/wcc-contentful-app.gemspec +31 -16
  88. metadata +210 -76
  89. data/Gemfile +0 -10
  90. data/lib/generators/wcc/templates/menu/generated_add_menus.ts +0 -192
  91. data/lib/generators/wcc/templates/page/generated_add_pages.ts +0 -50
  92. data/lib/tasks/validate.rake +0 -20
  93. data/lib/wcc/contentful/app/model_validators.rb +0 -121
  94. data/lib/wcc/contentful/app/model_validators/dsl.rb +0 -166
  95. data/lib/wcc/contentful/ext/model.rb +0 -5
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WCC::Contentful::App
4
+ class Engine < ::Rails::Engine
5
+ config.assets.precompile += %w[*.jpg *.png *.svg]
6
+ config.assets.precompile +=
7
+ [
8
+ 'config/manifest.js'
9
+ ].map { |f| File.expand_path("../../../../../app/assets/#{f}", __FILE__) }
10
+
11
+ config.generators do |g|
12
+ g.test_framework :rspec, fixture: false
13
+ end
14
+ end
15
+ end
@@ -33,4 +33,13 @@ module WCC::Contentful::App
33
33
  ret.flatten(1)
34
34
  end
35
35
  end
36
+
37
+ class PageNotFoundError < StandardError
38
+ attr_reader :slug
39
+
40
+ def initialize(slug)
41
+ super("Page not found: '#{slug}'")
42
+ @slug = slug
43
+ end
44
+ end
36
45
  end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'wcc/rails'
4
+ require 'wcc/contentful/rails'
5
+ require 'wcc/contentful/app'
6
+ require 'wcc/contentful/app/engine'
@@ -3,7 +3,7 @@
3
3
  module WCC
4
4
  module Contentful
5
5
  module App
6
- VERSION = '0.3.0-rc2'
6
+ VERSION = '1.0.0-rc2'
7
7
  end
8
8
  end
9
9
  end
@@ -1,7 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class WCC::Contentful::Model::DropdownMenu < WCC::Contentful::Model
4
- validate_field :name, :String
5
- validate_field :label, :Link, link_to: 'menuButton'
6
- validate_field :items, :Array, link_to: 'menuButton'
7
4
  end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class WCC::Contentful::Model::FormField < WCC::Contentful::Model
4
+ end
@@ -1,6 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class WCC::Contentful::Model::Menu < WCC::Contentful::Model
4
- validate_field :name, :String
5
- validate_field :items, :Array, link_to: %w[dropdownMenu menuButton]
6
4
  end
@@ -1,16 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class WCC::Contentful::Model::MenuButton < WCC::Contentful::Model
4
- validate_field :text, :String, :required
5
- validate_field :icon, :Asset, :optional
6
- validate_field :external_link, :String, :optional
7
- validate_field :link, :Link, :optional, link_to: 'page'
4
+ def external_uri
5
+ @external_url ||= URI(external_link) if external_link.present?
6
+ end
7
+
8
+ # A menu link is external if `external_link` is present and not relative.
9
+ def external?
10
+ external_uri&.scheme.present?
11
+ end
8
12
 
9
13
  # Gets either the external link or the slug from the referenced page.
10
14
  # Example usage: `<%= link_to button.title, button.href %>`
11
15
  def href
12
16
  return external_link if external_link
13
17
 
14
- link&.try(:slug) || link&.try(:url)
18
+ url = (link&.try(:slug) || link&.try(:url))
19
+ return url unless fragment.present?
20
+
21
+ url = URI(url || '')
22
+ url.fragment = fragment
23
+ url.to_s
24
+ end
25
+
26
+ def fragment
27
+ WCC::Contentful::App::SectionHelper.section_id(section_link) if section_link
15
28
  end
16
29
  end
@@ -1,8 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class WCC::Contentful::Model::Page < WCC::Contentful::Model
4
- validate_field :title, :String
5
- validate_field :slug, :String
6
- validate_field :subpages, :Array, link_to: %w[page]
7
- validate_field :sections, :Array, link_to: /^section/
8
4
  end
@@ -1,19 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class WCC::Contentful::Model::Redirect < WCC::Contentful::Model
4
+ def external_uri
5
+ @external_uri ||= URI(external_link) if external_link.present?
6
+ end
7
+
8
+ # A menu link is external if `external_link` is present and not relative.
9
+ def external?
10
+ external_uri&.scheme.present?
11
+ end
12
+
13
+ # Gets either the external link or the slug from the referenced page.
14
+ # Example usage: `redirect_to redirect.href`
4
15
  def href
5
- if !url.nil?
6
- url
7
- elsif valid_page_reference?(pageReference)
8
- "/#{pageReference.url}"
9
- end
16
+ return external_link if external_link
17
+
18
+ url = (link&.try(:slug) || link&.try(:url))
19
+ return url unless fragment.present?
20
+
21
+ url = URI(url || '')
22
+ url.fragment = fragment
23
+ url.to_s
10
24
  end
11
25
 
12
- def valid_page_reference?(page_ref)
13
- if !page_ref.nil? && !defined?(page_ref.url).nil?
14
- true
15
- else
16
- false
17
- end
26
+ def fragment
27
+ WCC::Contentful::App::SectionHelper.section_id(section_link) if section_link
18
28
  end
19
29
  end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ class WCC::Contentful::Model::SectionContactForm < WCC::Contentful::Model
4
+ def send_email(data)
5
+ save_contact_form(data)
6
+
7
+ ::WCC::Contentful::App::ContactMailer.contact_form_email(data[:notification_email], data).deliver
8
+ end
9
+
10
+ def page
11
+ ::WCC::Contentful::Model::Page.find_by(sections: { id: id })
12
+ end
13
+
14
+ def to_address(email_object_id: nil)
15
+ return email_address(email_model(email_object_id)) if email_object_id.present?
16
+
17
+ notification_email
18
+ end
19
+
20
+ private
21
+
22
+ def email_address(entry)
23
+ return entry.email if defined?(entry.email)
24
+
25
+ raise ArgumentError, 'email is not defined on this entry'
26
+ end
27
+
28
+ def email_model(email_object_id)
29
+ raise ArgumentError, 'contentful entry does not exist' unless
30
+ entry = ::WCC::Contentful::Model.find(email_object_id, options: sys.context.to_h)
31
+
32
+ entry
33
+ end
34
+
35
+ def save_contact_form(data)
36
+ return unless ::WCC::Contentful::App.db_connected?
37
+ return unless ::ActiveRecord::Base.connection
38
+ .table_exists? 'wcc_contentful_app_contact_form_submissions'
39
+
40
+ ::WCC::Contentful::App::ContactFormSubmission.create!(form_id: id, data: data)
41
+ end
42
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class WCC::Contentful::Model::SiteConfig < WCC::Contentful::Model
4
+ def self.instance(preview = false)
5
+ find_by(foreign_key: 'default', options: { include: 4, preview: preview })
6
+ end
7
+ end
@@ -4,6 +4,9 @@ lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require 'wcc/contentful/app/version'
6
6
 
7
+ doc_version = Gem::Version.new(WCC::Contentful::App::VERSION).release.to_s.sub(/\.\d+$/, '')
8
+
9
+ # rubocop:disable Metrics/LineLength
7
10
  Gem::Specification.new do |spec|
8
11
  spec.name = 'wcc-contentful-app'
9
12
  spec.version = WCC::Contentful::App::VERSION
@@ -11,10 +14,14 @@ Gem::Specification.new do |spec|
11
14
  spec.email = ['dev@watermark.org']
12
15
 
13
16
  spec.summary = File.readlines(File.expand_path('README.md', __dir__)).join
14
- spec.description = 'Contentful API wrapper library exposing an ActiveRecord-like interface'
15
- spec.homepage = 'https://github.com/watermarkchurch/wcc-contentful/wcc-cms'
17
+ spec.description = 'Models, Controllers, and Views common to Watermark Church apps'
18
+ spec.homepage = 'https://github.com/watermarkchurch/wcc-contentful'
16
19
  spec.license = 'MIT'
17
20
 
21
+ spec.metadata = {
22
+ 'documentation_uri' => "https://watermarkchurch.github.io/wcc-contentful/#{doc_version}/wcc-contentful-app"
23
+ }
24
+
18
25
  spec.required_ruby_version = '>= 2.3'
19
26
 
20
27
  spec.files =
@@ -24,29 +31,37 @@ Gem::Specification.new do |spec|
24
31
 
25
32
  spec.require_paths = ['lib']
26
33
 
34
+ spec.add_development_dependency 'capybara', '~> 3.9'
35
+ spec.add_development_dependency 'coveralls'
27
36
  spec.add_development_dependency 'dotenv', '~> 2.2'
37
+ spec.add_development_dependency 'erb_lint', '~> 0.0.26'
28
38
  spec.add_development_dependency 'httplog', '~> 1.0'
29
- spec.add_development_dependency 'rake', '~> 10.0'
39
+ spec.add_development_dependency 'rails-controller-testing', '~> 1.0'
40
+ spec.add_development_dependency 'rake', '~> 13.0'
30
41
  spec.add_development_dependency 'rspec', '~> 3.0'
31
- spec.add_development_dependency 'rspec_junit_formatter', '~> 0.3.0'
32
- spec.add_development_dependency 'rubocop', '~> 0.52'
33
- spec.add_development_dependency 'vcr', '~> 4.0'
42
+ spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4.1'
43
+ spec.add_development_dependency 'rubocop', '0.68'
44
+ spec.add_development_dependency 'simplecov', '~> 0.16.1'
45
+ spec.add_development_dependency 'vcr', '~> 5.0'
34
46
  spec.add_development_dependency 'webmock', '~> 3.0'
35
47
 
48
+ # Makes testing easy via `bundle exec guard`
49
+ spec.add_development_dependency 'guard', '~> 2.14'
50
+ spec.add_development_dependency 'guard-rspec', '~> 4.7'
51
+ spec.add_development_dependency 'guard-rubocop', '~> 1.3.0'
52
+ spec.add_development_dependency 'guard-shell', '~> 0.7.1'
53
+
36
54
  # for generators
37
55
  spec.add_development_dependency 'generator_spec', '~> 0.9.4'
38
- spec.add_development_dependency 'rails', '~> 5.1'
56
+
57
+ # wcc-contentful-app needs rails to function, so require it for specs.
58
+ spec.add_development_dependency 'rails', '~> 5'
39
59
  spec.add_development_dependency 'rspec-rails', '~> 3.7'
40
- spec.add_development_dependency 'sqlite3'
60
+ spec.add_development_dependency 'sqlite3', '~> 1.3.6'
41
61
  spec.add_development_dependency 'timecop', '~> 0.9.1'
62
+ spec.add_development_dependency 'typhoeus', '~> 1.4.0'
42
63
 
43
- # optional dependencies
44
- spec.add_development_dependency 'contentful', '2.6.0'
45
- spec.add_development_dependency 'contentful-management', '2.0.2'
46
- spec.add_development_dependency 'graphql', '~> 1.7'
47
- spec.add_development_dependency 'http', '> 1.0', '< 3.0'
48
- spec.add_development_dependency 'pg', '~> 1.0'
49
- spec.add_development_dependency 'typhoeus', '~> 1.3'
50
-
64
+ spec.add_dependency 'redcarpet', '~> 3.4'
51
65
  spec.add_dependency 'wcc-contentful', "~> #{WCC::Contentful::App::VERSION}"
52
66
  end
67
+ # rubocop:enable Metrics/LineLength
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wcc-contentful-app
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0.pre.rc2
4
+ version: 1.0.0.pre.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Watermark Dev
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-12 00:00:00.000000000 Z
11
+ date: 2021-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: capybara
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.9'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.9'
27
+ - !ruby/object:Gem::Dependency
28
+ name: coveralls
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: dotenv
15
43
  requirement: !ruby/object:Gem::Requirement
@@ -24,6 +52,20 @@ dependencies:
24
52
  - - "~>"
25
53
  - !ruby/object:Gem::Version
26
54
  version: '2.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: erb_lint
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.0.26
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.0.26
27
69
  - !ruby/object:Gem::Dependency
28
70
  name: httplog
29
71
  requirement: !ruby/object:Gem::Requirement
@@ -38,20 +80,34 @@ dependencies:
38
80
  - - "~>"
39
81
  - !ruby/object:Gem::Version
40
82
  version: '1.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rails-controller-testing
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.0'
41
97
  - !ruby/object:Gem::Dependency
42
98
  name: rake
43
99
  requirement: !ruby/object:Gem::Requirement
44
100
  requirements:
45
101
  - - "~>"
46
102
  - !ruby/object:Gem::Version
47
- version: '10.0'
103
+ version: '13.0'
48
104
  type: :development
49
105
  prerelease: false
50
106
  version_requirements: !ruby/object:Gem::Requirement
51
107
  requirements:
52
108
  - - "~>"
53
109
  - !ruby/object:Gem::Version
54
- version: '10.0'
110
+ version: '13.0'
55
111
  - !ruby/object:Gem::Dependency
56
112
  name: rspec
57
113
  requirement: !ruby/object:Gem::Requirement
@@ -72,42 +128,56 @@ dependencies:
72
128
  requirements:
73
129
  - - "~>"
74
130
  - !ruby/object:Gem::Version
75
- version: 0.3.0
131
+ version: 0.4.1
76
132
  type: :development
77
133
  prerelease: false
78
134
  version_requirements: !ruby/object:Gem::Requirement
79
135
  requirements:
80
136
  - - "~>"
81
137
  - !ruby/object:Gem::Version
82
- version: 0.3.0
138
+ version: 0.4.1
83
139
  - !ruby/object:Gem::Dependency
84
140
  name: rubocop
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '='
144
+ - !ruby/object:Gem::Version
145
+ version: '0.68'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '='
151
+ - !ruby/object:Gem::Version
152
+ version: '0.68'
153
+ - !ruby/object:Gem::Dependency
154
+ name: simplecov
85
155
  requirement: !ruby/object:Gem::Requirement
86
156
  requirements:
87
157
  - - "~>"
88
158
  - !ruby/object:Gem::Version
89
- version: '0.52'
159
+ version: 0.16.1
90
160
  type: :development
91
161
  prerelease: false
92
162
  version_requirements: !ruby/object:Gem::Requirement
93
163
  requirements:
94
164
  - - "~>"
95
165
  - !ruby/object:Gem::Version
96
- version: '0.52'
166
+ version: 0.16.1
97
167
  - !ruby/object:Gem::Dependency
98
168
  name: vcr
99
169
  requirement: !ruby/object:Gem::Requirement
100
170
  requirements:
101
171
  - - "~>"
102
172
  - !ruby/object:Gem::Version
103
- version: '4.0'
173
+ version: '5.0'
104
174
  type: :development
105
175
  prerelease: false
106
176
  version_requirements: !ruby/object:Gem::Requirement
107
177
  requirements:
108
178
  - - "~>"
109
179
  - !ruby/object:Gem::Version
110
- version: '4.0'
180
+ version: '5.0'
111
181
  - !ruby/object:Gem::Dependency
112
182
  name: webmock
113
183
  requirement: !ruby/object:Gem::Requirement
@@ -123,180 +193,174 @@ dependencies:
123
193
  - !ruby/object:Gem::Version
124
194
  version: '3.0'
125
195
  - !ruby/object:Gem::Dependency
126
- name: generator_spec
196
+ name: guard
127
197
  requirement: !ruby/object:Gem::Requirement
128
198
  requirements:
129
199
  - - "~>"
130
200
  - !ruby/object:Gem::Version
131
- version: 0.9.4
201
+ version: '2.14'
132
202
  type: :development
133
203
  prerelease: false
134
204
  version_requirements: !ruby/object:Gem::Requirement
135
205
  requirements:
136
206
  - - "~>"
137
207
  - !ruby/object:Gem::Version
138
- version: 0.9.4
208
+ version: '2.14'
139
209
  - !ruby/object:Gem::Dependency
140
- name: rails
210
+ name: guard-rspec
141
211
  requirement: !ruby/object:Gem::Requirement
142
212
  requirements:
143
213
  - - "~>"
144
214
  - !ruby/object:Gem::Version
145
- version: '5.1'
215
+ version: '4.7'
146
216
  type: :development
147
217
  prerelease: false
148
218
  version_requirements: !ruby/object:Gem::Requirement
149
219
  requirements:
150
220
  - - "~>"
151
221
  - !ruby/object:Gem::Version
152
- version: '5.1'
222
+ version: '4.7'
153
223
  - !ruby/object:Gem::Dependency
154
- name: rspec-rails
224
+ name: guard-rubocop
155
225
  requirement: !ruby/object:Gem::Requirement
156
226
  requirements:
157
227
  - - "~>"
158
228
  - !ruby/object:Gem::Version
159
- version: '3.7'
229
+ version: 1.3.0
160
230
  type: :development
161
231
  prerelease: false
162
232
  version_requirements: !ruby/object:Gem::Requirement
163
233
  requirements:
164
234
  - - "~>"
165
235
  - !ruby/object:Gem::Version
166
- version: '3.7'
236
+ version: 1.3.0
167
237
  - !ruby/object:Gem::Dependency
168
- name: sqlite3
238
+ name: guard-shell
169
239
  requirement: !ruby/object:Gem::Requirement
170
240
  requirements:
171
- - - ">="
241
+ - - "~>"
172
242
  - !ruby/object:Gem::Version
173
- version: '0'
243
+ version: 0.7.1
174
244
  type: :development
175
245
  prerelease: false
176
246
  version_requirements: !ruby/object:Gem::Requirement
177
247
  requirements:
178
- - - ">="
248
+ - - "~>"
179
249
  - !ruby/object:Gem::Version
180
- version: '0'
250
+ version: 0.7.1
181
251
  - !ruby/object:Gem::Dependency
182
- name: timecop
252
+ name: generator_spec
183
253
  requirement: !ruby/object:Gem::Requirement
184
254
  requirements:
185
255
  - - "~>"
186
256
  - !ruby/object:Gem::Version
187
- version: 0.9.1
257
+ version: 0.9.4
188
258
  type: :development
189
259
  prerelease: false
190
260
  version_requirements: !ruby/object:Gem::Requirement
191
261
  requirements:
192
262
  - - "~>"
193
263
  - !ruby/object:Gem::Version
194
- version: 0.9.1
264
+ version: 0.9.4
195
265
  - !ruby/object:Gem::Dependency
196
- name: contentful
266
+ name: rails
197
267
  requirement: !ruby/object:Gem::Requirement
198
268
  requirements:
199
- - - '='
269
+ - - "~>"
200
270
  - !ruby/object:Gem::Version
201
- version: 2.6.0
271
+ version: '5'
202
272
  type: :development
203
273
  prerelease: false
204
274
  version_requirements: !ruby/object:Gem::Requirement
205
275
  requirements:
206
- - - '='
276
+ - - "~>"
207
277
  - !ruby/object:Gem::Version
208
- version: 2.6.0
278
+ version: '5'
209
279
  - !ruby/object:Gem::Dependency
210
- name: contentful-management
280
+ name: rspec-rails
211
281
  requirement: !ruby/object:Gem::Requirement
212
282
  requirements:
213
- - - '='
283
+ - - "~>"
214
284
  - !ruby/object:Gem::Version
215
- version: 2.0.2
285
+ version: '3.7'
216
286
  type: :development
217
287
  prerelease: false
218
288
  version_requirements: !ruby/object:Gem::Requirement
219
289
  requirements:
220
- - - '='
290
+ - - "~>"
221
291
  - !ruby/object:Gem::Version
222
- version: 2.0.2
292
+ version: '3.7'
223
293
  - !ruby/object:Gem::Dependency
224
- name: graphql
294
+ name: sqlite3
225
295
  requirement: !ruby/object:Gem::Requirement
226
296
  requirements:
227
297
  - - "~>"
228
298
  - !ruby/object:Gem::Version
229
- version: '1.7'
299
+ version: 1.3.6
230
300
  type: :development
231
301
  prerelease: false
232
302
  version_requirements: !ruby/object:Gem::Requirement
233
303
  requirements:
234
304
  - - "~>"
235
305
  - !ruby/object:Gem::Version
236
- version: '1.7'
306
+ version: 1.3.6
237
307
  - !ruby/object:Gem::Dependency
238
- name: http
308
+ name: timecop
239
309
  requirement: !ruby/object:Gem::Requirement
240
310
  requirements:
241
- - - ">"
242
- - !ruby/object:Gem::Version
243
- version: '1.0'
244
- - - "<"
311
+ - - "~>"
245
312
  - !ruby/object:Gem::Version
246
- version: '3.0'
313
+ version: 0.9.1
247
314
  type: :development
248
315
  prerelease: false
249
316
  version_requirements: !ruby/object:Gem::Requirement
250
317
  requirements:
251
- - - ">"
252
- - !ruby/object:Gem::Version
253
- version: '1.0'
254
- - - "<"
318
+ - - "~>"
255
319
  - !ruby/object:Gem::Version
256
- version: '3.0'
320
+ version: 0.9.1
257
321
  - !ruby/object:Gem::Dependency
258
- name: pg
322
+ name: typhoeus
259
323
  requirement: !ruby/object:Gem::Requirement
260
324
  requirements:
261
325
  - - "~>"
262
326
  - !ruby/object:Gem::Version
263
- version: '1.0'
327
+ version: 1.4.0
264
328
  type: :development
265
329
  prerelease: false
266
330
  version_requirements: !ruby/object:Gem::Requirement
267
331
  requirements:
268
332
  - - "~>"
269
333
  - !ruby/object:Gem::Version
270
- version: '1.0'
334
+ version: 1.4.0
271
335
  - !ruby/object:Gem::Dependency
272
- name: typhoeus
336
+ name: redcarpet
273
337
  requirement: !ruby/object:Gem::Requirement
274
338
  requirements:
275
339
  - - "~>"
276
340
  - !ruby/object:Gem::Version
277
- version: '1.3'
278
- type: :development
341
+ version: '3.4'
342
+ type: :runtime
279
343
  prerelease: false
280
344
  version_requirements: !ruby/object:Gem::Requirement
281
345
  requirements:
282
346
  - - "~>"
283
347
  - !ruby/object:Gem::Version
284
- version: '1.3'
348
+ version: '3.4'
285
349
  - !ruby/object:Gem::Dependency
286
350
  name: wcc-contentful
287
351
  requirement: !ruby/object:Gem::Requirement
288
352
  requirements:
289
353
  - - "~>"
290
354
  - !ruby/object:Gem::Version
291
- version: 0.3.0.pre.rc2
355
+ version: 1.0.0.pre.rc2
292
356
  type: :runtime
293
357
  prerelease: false
294
358
  version_requirements: !ruby/object:Gem::Requirement
295
359
  requirements:
296
360
  - - "~>"
297
361
  - !ruby/object:Gem::Version
298
- version: 0.3.0.pre.rc2
299
- description: Contentful API wrapper library exposing an ActiveRecord-like interface
362
+ version: 1.0.0.pre.rc2
363
+ description: Models, Controllers, and Views common to Watermark Church apps
300
364
  email:
301
365
  - dev@watermark.org
302
366
  executables: []
@@ -304,38 +368,102 @@ extensions: []
304
368
  extra_rdoc_files: []
305
369
  files:
306
370
  - ".rspec"
307
- - Gemfile
371
+ - Guardfile
308
372
  - README.md
373
+ - Rakefile
374
+ - app/assets/config/manifest.js
375
+ - app/assets/images/down-arrow-primary.svg
376
+ - app/assets/images/up-arrow-primary.svg
377
+ - app/assets/javascripts/wcc/contentful/app/contact-form.js
378
+ - app/assets/javascripts/wcc/contentful/app/index.js
379
+ - app/assets/stylesheets/_wcc-contentful-app.scss
380
+ - app/assets/stylesheets/components/_menu-item.scss
381
+ - app/assets/stylesheets/sections/_faq.scss
382
+ - app/controllers/wcc/contentful/app/contact_form_controller.rb
383
+ - app/controllers/wcc/contentful/app/pages_controller.rb
384
+ - app/helpers/wcc/contentful/app/menu_helper.rb
385
+ - app/helpers/wcc/contentful/app/section_helper.rb
386
+ - app/mailers/wcc/contentful/app/contact_mailer.rb
387
+ - app/models/concerns/wcc/contentful/app/preview_password.rb
388
+ - app/models/wcc/contentful/app/contact_form_submission.rb
389
+ - app/models/wcc/contentful/app/custom_markdown_render.rb
390
+ - app/views/components/_faq_row.html.erb
391
+ - app/views/components/_menu-item.html.erb
392
+ - app/views/components/_other-menu-item.html.erb
393
+ - app/views/components/_section.html.erb
394
+ - app/views/layouts/mailer.html.erb
395
+ - app/views/layouts/mailer.text.erb
396
+ - app/views/pages/show.html.erb
397
+ - app/views/sections/_block_text.html.erb
398
+ - app/views/sections/_code_widget.html.erb
399
+ - app/views/sections/_contact_form.html.erb
400
+ - app/views/sections/_faq.html.erb
401
+ - app/views/sections/_http_error.html.erb
402
+ - app/views/sections/_marquee_text.html.erb
403
+ - app/views/sections/_testimonials.html.erb
404
+ - app/views/sections/_video.html.erb
405
+ - app/views/sections/_video_highlight.html.erb
406
+ - app/views/wcc/contentful/app/contact_mailer/contact_form_email.html.erb
407
+ - bin/rails
408
+ - config/routes.rb
409
+ - doc
309
410
  - lib/generators/wcc/USAGE
310
411
  - lib/generators/wcc/model_generator.rb
311
412
  - lib/generators/wcc/templates/.keep
312
413
  - lib/generators/wcc/templates/Procfile
313
414
  - lib/generators/wcc/templates/contentful_shell_wrapper
314
- - lib/generators/wcc/templates/menu/generated_add_menus.ts
415
+ - lib/generators/wcc/templates/menu/migrations/generated_add_menus.ts
416
+ - lib/generators/wcc/templates/menu/models/dropdown_menu.rb
315
417
  - lib/generators/wcc/templates/menu/models/menu.rb
316
418
  - lib/generators/wcc/templates/menu/models/menu_button.rb
317
- - lib/generators/wcc/templates/page/generated_add_pages.ts
419
+ - lib/generators/wcc/templates/page/migrations/generated_add_pages.ts
318
420
  - lib/generators/wcc/templates/page/models/page.rb
421
+ - lib/generators/wcc/templates/page/models/redirect.rb
319
422
  - lib/generators/wcc/templates/release
423
+ - lib/generators/wcc/templates/section-block-text/migrations/generated_add_section-block-texts.ts
424
+ - lib/generators/wcc/templates/section-block-text/models/section_block_text.rb
425
+ - lib/generators/wcc/templates/section-code-widget/migrations/generated_add_section-code-widget.ts
426
+ - lib/generators/wcc/templates/section-code-widget/models/section_code_widget.rb
427
+ - lib/generators/wcc/templates/section-contact-form/migrations/create_wcc_contentful_app_contact_form_submissions.rb
428
+ - lib/generators/wcc/templates/section-contact-form/migrations/generated_add_section-contact-forms.ts
429
+ - lib/generators/wcc/templates/section-contact-form/models/form_field.rb
430
+ - lib/generators/wcc/templates/section-contact-form/models/section_contact_form.rb
431
+ - lib/generators/wcc/templates/section-faq/migrations/generated_add_section-faqs.ts
432
+ - lib/generators/wcc/templates/section-faq/models/section_faq.rb
433
+ - lib/generators/wcc/templates/section-http-error/migrations/generated_add_section-http-errors.ts
434
+ - lib/generators/wcc/templates/section-http-error/models/section_http_error.rb
435
+ - lib/generators/wcc/templates/section-marquee-text/migrations/generated_add_section-marquee-texts.ts
436
+ - lib/generators/wcc/templates/section-marquee-text/models/section_marquee_text.rb
437
+ - lib/generators/wcc/templates/section-testimonial/migrations/generated_add_section-testimonials.ts
438
+ - lib/generators/wcc/templates/section-testimonial/models/section_testimonial.rb
439
+ - lib/generators/wcc/templates/section-video-highlight/migrations/generated_add_section-video-highlights.ts
440
+ - lib/generators/wcc/templates/section-video-highlight/models/section_video_highlight.rb
441
+ - lib/generators/wcc/templates/section-video/migrations/generated_add_section-videos.ts
442
+ - lib/generators/wcc/templates/section-video/models/section_video.rb
443
+ - lib/generators/wcc/templates/site-config/migrations/generated_add_site-configs.ts
444
+ - lib/generators/wcc/templates/site-config/models/site_config.rb
320
445
  - lib/generators/wcc/templates/wcc_contentful.rb
321
- - lib/tasks/validate.rake
322
446
  - lib/wcc/contentful/app.rb
447
+ - lib/wcc/contentful/app/configuration.rb
448
+ - lib/wcc/contentful/app/engine.rb
323
449
  - lib/wcc/contentful/app/exceptions.rb
324
- - lib/wcc/contentful/app/model_validators.rb
325
- - lib/wcc/contentful/app/model_validators/dsl.rb
450
+ - lib/wcc/contentful/app/rails.rb
326
451
  - lib/wcc/contentful/app/version.rb
327
- - lib/wcc/contentful/ext/model.rb
328
452
  - lib/wcc/contentful/model/dropdown_menu.rb
453
+ - lib/wcc/contentful/model/form_field.rb
329
454
  - lib/wcc/contentful/model/menu.rb
330
455
  - lib/wcc/contentful/model/menu_button.rb
331
456
  - lib/wcc/contentful/model/page.rb
332
457
  - lib/wcc/contentful/model/redirect.rb
458
+ - lib/wcc/contentful/model/section_contact_form.rb
459
+ - lib/wcc/contentful/model/site_config.rb
333
460
  - wcc-contentful-app.gemspec
334
- homepage: https://github.com/watermarkchurch/wcc-contentful/wcc-cms
461
+ homepage: https://github.com/watermarkchurch/wcc-contentful
335
462
  licenses:
336
463
  - MIT
337
- metadata: {}
338
- post_install_message:
464
+ metadata:
465
+ documentation_uri: https://watermarkchurch.github.io/wcc-contentful/1.0/wcc-contentful-app
466
+ post_install_message:
339
467
  rdoc_options: []
340
468
  require_paths:
341
469
  - lib
@@ -350,9 +478,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
350
478
  - !ruby/object:Gem::Version
351
479
  version: 1.3.1
352
480
  requirements: []
353
- rubyforge_project:
354
- rubygems_version: 2.6.11
355
- signing_key:
481
+ rubyforge_project:
482
+ rubygems_version: 2.7.6.2
483
+ signing_key:
356
484
  specification_version: 4
357
- summary: ''
485
+ summary: "[![Gem Version](https://badge.fury.io/rb/wcc-contentful-app.svg)](https://rubygems.org/gems/wcc-contentful-app)
486
+ [![Build Status](https://travis-ci.org/watermarkchurch/wcc-contentful.svg?branch=master)](https://travis-ci.org/watermarkchurch/wcc-contentful)
487
+ [![Coverage Status](https://coveralls.io/repos/github/watermarkchurch/wcc-contentful/badge.svg?branch=master)](https://coveralls.io/github/watermarkchurch/wcc-contentful?branch=master)
488
+ \ # WCC::Contentful::App This gem specifies default models, controllers, views,
489
+ and javascripts that get installed into all Watermarkchurch apps that use contentful.
490
+ \ It is a highly opinionated starting point for a very flexible site design using
491
+ Contentful. You probably should not use this."
358
492
  test_files: []