wcc-contentful 0.2.2 → 0.3.0.pre.rc

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 (66) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +0 -1
  3. data/README.md +181 -8
  4. data/app/controllers/wcc/contentful/webhook_controller.rb +42 -2
  5. data/app/jobs/wcc/contentful/delayed_sync_job.rb +52 -3
  6. data/app/jobs/wcc/contentful/webhook_enable_job.rb +43 -0
  7. data/bin/console +4 -3
  8. data/bin/rails +2 -0
  9. data/config/initializers/mime_types.rb +10 -1
  10. data/lib/wcc/contentful.rb +14 -142
  11. data/lib/wcc/contentful/client_ext.rb +17 -4
  12. data/lib/wcc/contentful/configuration.rb +25 -84
  13. data/lib/wcc/contentful/engine.rb +19 -0
  14. data/lib/wcc/contentful/exceptions.rb +25 -28
  15. data/lib/wcc/contentful/graphql.rb +0 -1
  16. data/lib/wcc/contentful/graphql/types.rb +1 -1
  17. data/lib/wcc/contentful/helpers.rb +3 -2
  18. data/lib/wcc/contentful/indexed_representation.rb +6 -0
  19. data/lib/wcc/contentful/model.rb +68 -34
  20. data/lib/wcc/contentful/model_builder.rb +65 -67
  21. data/lib/wcc/contentful/model_methods.rb +189 -0
  22. data/lib/wcc/contentful/model_singleton_methods.rb +83 -0
  23. data/lib/wcc/contentful/services.rb +146 -0
  24. data/lib/wcc/contentful/simple_client.rb +35 -33
  25. data/lib/wcc/contentful/simple_client/http_adapter.rb +9 -0
  26. data/lib/wcc/contentful/simple_client/management.rb +81 -0
  27. data/lib/wcc/contentful/simple_client/response.rb +61 -37
  28. data/lib/wcc/contentful/simple_client/typhoeus_adapter.rb +12 -0
  29. data/lib/wcc/contentful/store.rb +45 -18
  30. data/lib/wcc/contentful/store/base.rb +128 -8
  31. data/lib/wcc/contentful/store/cdn_adapter.rb +92 -22
  32. data/lib/wcc/contentful/store/lazy_cache_store.rb +94 -9
  33. data/lib/wcc/contentful/store/memory_store.rb +13 -8
  34. data/lib/wcc/contentful/store/postgres_store.rb +44 -11
  35. data/lib/wcc/contentful/sys.rb +28 -0
  36. data/lib/wcc/contentful/version.rb +1 -1
  37. data/wcc-contentful.gemspec +3 -9
  38. metadata +87 -107
  39. data/.circleci/config.yml +0 -51
  40. data/.gitignore +0 -26
  41. data/.rubocop.yml +0 -243
  42. data/.rubocop_todo.yml +0 -13
  43. data/.travis.yml +0 -5
  44. data/CHANGELOG.md +0 -45
  45. data/CODE_OF_CONDUCT.md +0 -74
  46. data/Guardfile +0 -58
  47. data/LICENSE.txt +0 -21
  48. data/Rakefile +0 -8
  49. data/lib/generators/wcc/USAGE +0 -24
  50. data/lib/generators/wcc/model_generator.rb +0 -90
  51. data/lib/generators/wcc/templates/.keep +0 -0
  52. data/lib/generators/wcc/templates/Procfile +0 -3
  53. data/lib/generators/wcc/templates/contentful_shell_wrapper +0 -385
  54. data/lib/generators/wcc/templates/menu/generated_add_menus.ts +0 -90
  55. data/lib/generators/wcc/templates/menu/models/menu.rb +0 -23
  56. data/lib/generators/wcc/templates/menu/models/menu_button.rb +0 -23
  57. data/lib/generators/wcc/templates/page/generated_add_pages.ts +0 -50
  58. data/lib/generators/wcc/templates/page/models/page.rb +0 -23
  59. data/lib/generators/wcc/templates/release +0 -9
  60. data/lib/generators/wcc/templates/wcc_contentful.rb +0 -17
  61. data/lib/wcc/contentful/model/menu.rb +0 -7
  62. data/lib/wcc/contentful/model/menu_button.rb +0 -15
  63. data/lib/wcc/contentful/model/page.rb +0 -8
  64. data/lib/wcc/contentful/model/redirect.rb +0 -19
  65. data/lib/wcc/contentful/model_validators.rb +0 -115
  66. data/lib/wcc/contentful/model_validators/dsl.rb +0 -165
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ WCC::Contentful::Sys =
4
+ Struct.new(
5
+ :id,
6
+ :type,
7
+ :locale,
8
+ :space,
9
+ :created_at,
10
+ :updated_at,
11
+ :revision,
12
+ :context
13
+ ) do
14
+
15
+ ATTRIBUTES = %i[
16
+ id
17
+ type
18
+ locale
19
+ space
20
+ created_at
21
+ updated_at
22
+ revision
23
+ context
24
+ ].freeze
25
+
26
+ undef []=
27
+ ATTRIBUTES.each { |a| __send__(:undef_method, "#{a}=") }
28
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module WCC
4
4
  module Contentful
5
- VERSION = '0.2.2'
5
+ VERSION = '0.3.0-rc'
6
6
  end
7
7
  end
@@ -10,9 +10,9 @@ Gem::Specification.new do |spec|
10
10
  spec.authors = ['Watermark Dev']
11
11
  spec.email = ['dev@watermark.org']
12
12
 
13
- spec.summary = File.readlines('README.md').join
14
- spec.description = 'Contentful API wrapper library for Watermark apps'
15
- spec.homepage = 'https://github.com/watermarkchurch/wcc-contentful'
13
+ 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-contentful'
16
16
  spec.license = 'MIT'
17
17
 
18
18
  spec.required_ruby_version = '>= 2.3'
@@ -29,15 +29,9 @@ Gem::Specification.new do |spec|
29
29
  spec.add_development_dependency 'rake', '~> 10.0'
30
30
  spec.add_development_dependency 'rspec', '~> 3.0'
31
31
  spec.add_development_dependency 'rspec_junit_formatter', '~> 0.3.0'
32
- spec.add_development_dependency 'rubocop', '~> 0.52'
33
32
  spec.add_development_dependency 'vcr', '~> 4.0'
34
33
  spec.add_development_dependency 'webmock', '~> 3.0'
35
34
 
36
- # Makes testing easy via `bundle exec guard`
37
- spec.add_development_dependency 'guard', '~> 2.14'
38
- spec.add_development_dependency 'guard-rspec', '~> 4.7'
39
- spec.add_development_dependency 'guard-rubocop', '~> 1.3.0'
40
-
41
35
  # for generators
42
36
  spec.add_development_dependency 'generator_spec', '~> 0.9.4'
43
37
  spec.add_development_dependency 'rails', '~> 5.1'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wcc-contentful
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0.pre.rc
5
5
  platform: ruby
6
6
  authors:
7
7
  - Watermark Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-20 00:00:00.000000000 Z
11
+ date: 2018-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -80,20 +80,6 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.3.0
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '0.52'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '0.52'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: vcr
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -122,48 +108,6 @@ dependencies:
122
108
  - - "~>"
123
109
  - !ruby/object:Gem::Version
124
110
  version: '3.0'
125
- - !ruby/object:Gem::Dependency
126
- name: guard
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '2.14'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '2.14'
139
- - !ruby/object:Gem::Dependency
140
- name: guard-rspec
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '4.7'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '4.7'
153
- - !ruby/object:Gem::Dependency
154
- name: guard-rubocop
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: 1.3.0
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: 1.3.0
167
111
  - !ruby/object:Gem::Dependency
168
112
  name: generator_spec
169
113
  requirement: !ruby/object:Gem::Requirement
@@ -366,47 +310,26 @@ dependencies:
366
310
  - - "~>"
367
311
  - !ruby/object:Gem::Version
368
312
  version: 0.3.1
369
- description: Contentful API wrapper library for Watermark apps
313
+ description: Contentful API wrapper library exposing an ActiveRecord-like interface
370
314
  email:
371
315
  - dev@watermark.org
372
316
  executables: []
373
317
  extensions: []
374
318
  extra_rdoc_files: []
375
319
  files:
376
- - ".circleci/config.yml"
377
- - ".gitignore"
378
320
  - ".rspec"
379
- - ".rubocop.yml"
380
- - ".rubocop_todo.yml"
381
- - ".travis.yml"
382
- - CHANGELOG.md
383
- - CODE_OF_CONDUCT.md
384
321
  - Gemfile
385
- - Guardfile
386
- - LICENSE.txt
387
322
  - README.md
388
- - Rakefile
389
323
  - app/controllers/wcc/contentful/application_controller.rb
390
324
  - app/controllers/wcc/contentful/webhook_controller.rb
391
325
  - app/jobs/wcc/contentful/delayed_sync_job.rb
326
+ - app/jobs/wcc/contentful/webhook_enable_job.rb
392
327
  - bin/console
393
328
  - bin/rails
394
329
  - bin/rspec
395
330
  - bin/setup
396
331
  - config/initializers/mime_types.rb
397
332
  - config/routes.rb
398
- - lib/generators/wcc/USAGE
399
- - lib/generators/wcc/model_generator.rb
400
- - lib/generators/wcc/templates/.keep
401
- - lib/generators/wcc/templates/Procfile
402
- - lib/generators/wcc/templates/contentful_shell_wrapper
403
- - lib/generators/wcc/templates/menu/generated_add_menus.ts
404
- - lib/generators/wcc/templates/menu/models/menu.rb
405
- - lib/generators/wcc/templates/menu/models/menu_button.rb
406
- - lib/generators/wcc/templates/page/generated_add_pages.ts
407
- - lib/generators/wcc/templates/page/models/page.rb
408
- - lib/generators/wcc/templates/release
409
- - lib/generators/wcc/templates/wcc_contentful.rb
410
333
  - lib/wcc/contentful.rb
411
334
  - lib/wcc/contentful/client_ext.rb
412
335
  - lib/wcc/contentful/configuration.rb
@@ -419,16 +342,14 @@ files:
419
342
  - lib/wcc/contentful/helpers.rb
420
343
  - lib/wcc/contentful/indexed_representation.rb
421
344
  - lib/wcc/contentful/model.rb
422
- - lib/wcc/contentful/model/menu.rb
423
- - lib/wcc/contentful/model/menu_button.rb
424
- - lib/wcc/contentful/model/page.rb
425
- - lib/wcc/contentful/model/redirect.rb
426
345
  - lib/wcc/contentful/model_builder.rb
427
- - lib/wcc/contentful/model_validators.rb
428
- - lib/wcc/contentful/model_validators/dsl.rb
346
+ - lib/wcc/contentful/model_methods.rb
347
+ - lib/wcc/contentful/model_singleton_methods.rb
429
348
  - lib/wcc/contentful/rails.rb
349
+ - lib/wcc/contentful/services.rb
430
350
  - lib/wcc/contentful/simple_client.rb
431
351
  - lib/wcc/contentful/simple_client/http_adapter.rb
352
+ - lib/wcc/contentful/simple_client/management.rb
432
353
  - lib/wcc/contentful/simple_client/response.rb
433
354
  - lib/wcc/contentful/simple_client/typhoeus_adapter.rb
434
355
  - lib/wcc/contentful/store.rb
@@ -437,9 +358,10 @@ files:
437
358
  - lib/wcc/contentful/store/lazy_cache_store.rb
438
359
  - lib/wcc/contentful/store/memory_store.rb
439
360
  - lib/wcc/contentful/store/postgres_store.rb
361
+ - lib/wcc/contentful/sys.rb
440
362
  - lib/wcc/contentful/version.rb
441
363
  - wcc-contentful.gemspec
442
- homepage: https://github.com/watermarkchurch/wcc-contentful
364
+ homepage: https://github.com/watermarkchurch/wcc-contentful/wcc-contentful
443
365
  licenses:
444
366
  - MIT
445
367
  metadata: {}
@@ -454,34 +376,92 @@ required_ruby_version: !ruby/object:Gem::Requirement
454
376
  version: '2.3'
455
377
  required_rubygems_version: !ruby/object:Gem::Requirement
456
378
  requirements:
457
- - - ">="
379
+ - - ">"
458
380
  - !ruby/object:Gem::Version
459
- version: '0'
381
+ version: 1.3.1
460
382
  requirements: []
461
383
  rubyforge_project:
462
384
  rubygems_version: 2.6.11
463
385
  signing_key:
464
386
  specification_version: 4
465
- summary: '# WCC::Contentful ## Installation Add this line to your application''s
466
- Gemfile: ```ruby gem ''wcc-contentful'', require: ''wcc/contentful/rails'' ``` And
467
- then execute: $ bundle Or install it yourself as: $ gem install wcc-contentful ##
468
- Configure ```ruby WCC::Contentful.configure do |config| config.access_token = <CONTENTFUL_ACCESS_TOKEN>
469
- config.preview_token = <CONTENTFUL_PREVIEW_TOKEN> config.space = <CONTENTFUL_SPACE_ID>
470
- config.default_locale = "en-US" end ``` ## Usage ```ruby redirect_object = WCC::Contentful::Model::Redirect.find_by({slug:
471
- ''published-redirect''}, preview: false) redirect_object.href preview_redirect_object
472
- = WCC::Contentful::Model::Redirect.find_by({slug: ''draft-redirect''}, preview:
473
- true) preview_redirect_object.href ``` ## Development After checking out the repo,
474
- run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests.
475
- You can also run `bin/console` for an interactive prompt that will allow you to
476
- experiment. To install this gem onto your local machine, run `bundle exec rake
477
- install`. To release a new version, update the version number in `version.rb`, and
478
- then run `bundle exec rake release`, which will create a git tag for the version,
479
- push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). ##
480
- Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/wcc-contentful.
387
+ summary: '[![Gem Version](https://badge.fury.io/rb/wcc-contentful.svg)](https://badge.fury.io/rb/wcc-contentful)
388
+ [![CircleCI](https://circleci.com/gh/watermarkchurch/wcc-contentful.svg?style=svg)](https://circleci.com/gh/watermarkchurch/wcc-contentful) Full
389
+ documentation: https://www.rubydoc.info/github/watermarkchurch/wcc-contentful #
390
+ WCC::Contentful ## Installation Add this line to your application''s Gemfile: ```ruby
391
+ gem ''wcc-contentful'', require: ''wcc/contentful/rails'' ``` And then execute: $
392
+ bundle Or install it yourself as: $ gem install wcc-contentful ## Configure ```ruby
393
+ WCC::Contentful.configure do |config| config.access_token = <CONTENTFUL_ACCESS_TOKEN>
394
+ config.space = <CONTENTFUL_SPACE_ID> end WCC::Contentful.init! ``` ## Usage ###
395
+ WCC::Contentful::Model API The WCC::Contentful::Model API exposes Contentful data
396
+ as a set of dynamically generated Ruby objects. These objects are based on the
397
+ content types in your Contentful space. All these objects are generated by WCC::Contentful.init! The
398
+ following examples show how to use this API to find entries of the `page` content
399
+ type: ```ruby # Find objects by id WCC::Contentful::Model::Page.find(''1E2ucWSdacxxf233sfa3'')
400
+ # => #<WCC::Contentful::Model::Page:0x0000000005c71a78 @created_at=2018-04-16 18:41:17
401
+ UTC...> # Find objects by field WCC::Contentful::Model::Page.find_by(slug: ''/some-slug'')
402
+ # => #<WCC::Contentful::Model::Page:0x0000000005c71a78 @created_at=2018-04-16 18:41:17
403
+ UTC...> # Use operators to filter by a field # must use full notation for sys attributes
404
+ (except ID) WCC::Contentful::Model::Page.find_all(''sys.created_at'' => { lte: Date.today
405
+ }) # => [#<WCC::Contentful::Model::Page:0x0000000005c71a78 @created_at=2018-04-16
406
+ 18:41:17 UTC...>, ... ] # Nest queries to mimick joins WCC::Contentful::Model::Page.find_by(subpages:
407
+ { slug: ''/some-slug'' }) # => #<WCC::Contentful::Model::Page:0x0000000005c71a78
408
+ @created_at=2018-04-16 18:41:17 UTC...> # Pass the preview flag to use the preview
409
+ client (must have set preview_token config param) preview_redirect = WCC::Contentful::Model::Redirect.find_by({
410
+ slug: ''draft-redirect'' }, preview: true) # => #<WCC::Contentful::Model::Redirect:0x0000000005d879ad
411
+ @created_at=2018-04-16 18:41:17 UTC...> preview_redirect_object.href # => ''http://www.somesite.com/slug-for-redirect''
412
+ ``` See the {WCC::Contentful::Model} documentation for more details. ### Store
413
+ API The Store layer is used by the Model API to access Contentful data in a raw
414
+ form. The Store layer returns entries as hashes parsed from JSON, conforming to
415
+ the object structure returned from the Contentful CDN. The following examples show
416
+ how to use the Store API to retrieve raw data from the store: ```ruby store = WCC::Contentful::Services.instance.store
417
+ # => #<WCC::Contentful::Store::CDNAdapter:0x00007fb92a221498 store.find(''5FsqsbMECsM62e04U8sY4Y'')
418
+ # => {"sys"=> # ... # "fields"=> # ...} store.find_by(content_type: ''page'',
419
+ filter: { slug: ''/some-slug'' }) # => {"sys"=> # ... # "fields"=> # ...} query
420
+ = store.find_all(content_type: ''page'').eq(''group'', ''some-group'') # => #<WCC::Contentful::Store::CDNAdapter::Query:0x00007fa3d40b84f0
421
+ query.first # => {"sys"=> # ... # "fields"=> # ...} query.result # => #<Enumerator::Lazy:
422
+ ...> query.result.force # => [{"sys"=> ...}, {"sys"=> ...}, ...] ``` See the {WCC::Contentful::Store}
423
+ documentation for more details. ### Direct CDN API (SimpleClient) The SimpleClient
424
+ is the bottom layer, and is used to get raw data directly from the Contentful CDN. It
425
+ handles response parsing and paging, but does not resolve links or transform the
426
+ result into a Model class. The following examples show how to use the SimpleClient
427
+ to retrieve data directly from the Contentful CDN: ```ruby client = WCC::Contentful::Services.instance.client
428
+ # => #<WCC::Contentful::SimpleClient::Cdn:0x00007fa3cde89310 response = client.entry(''5FsqsbMECsM62e04U8sY4Y'')
429
+ # => #<WCC::Contentful::SimpleClient::Response:0x00007fa3d103a4e0 response.body
430
+ # => "{\n \"sys\": {\n ... response.raw # => {"sys"=> # ... # "fields"=> # ...} client.asset(''5FsqsbMECsM62e04U8sY4Y'').raw
431
+ # => {"sys"=> # ... # "fields"=> # ...} response = client.entries(''fields.group''
432
+ => ''some-group'', ''limit'' => 5) # => #<WCC::Contentful::SimpleClient::Response:0x00007fa3d103a4e0
433
+ response.count # => 99 response.first # => {"sys"=> # ... # "fields"=> # ...} response.items
434
+ => #<Enumerator::Lazy: ...> response.items.count # Careful! This evaluates the
435
+ lazy iterator and gets all pages # => 99 response.includes # => {"4xNnFJ77egkSMEogE2yISa"=>
436
+ # {"sys"=> ...} # "6Fwukxxkxa6qQCC04WCaqg"=> # {"sys"=> ...} # ...} ``` The
437
+ client handles Paging automatically within the lazy iterator returned by #items.
438
+ This lazy iterator does not respect the `limit` param - that param is only passed
439
+ through to the API to set the page size. Entries included via the `include` parameter
440
+ are made available on the #includes field. This is a hash of `<entry ID> => <raw
441
+ entry>` and makes it easy to grab links. This hash is added to lazily as you enumerate
442
+ the pages. See the {WCC::Contentful::SimpleClient} documentation for more details. ###
443
+ Accessing the APIs within application code The Model API is best exposed by defining
444
+ your own model classes in the `app/models` directory which inherit from the WCC::Contentful
445
+ models. ```ruby # app/models/page.rb class Page < WCC::Contentful::Model::Page #
446
+ You can add additional methods here end # app/controllers/pages_controller.rb class
447
+ PagesController < ApplicationController def show @page = Page.find_by(slug: params[:slug])
448
+ raise Exceptions::PageNotFoundError, params[:slug] unless @page end end ``` The
449
+ {WCC::Contentful::Services} singleton gives access to the other configured services.
450
+ You can also include the {WCC::Contentful::ServiceAccessors} concern to define these
451
+ services as attributes in a class. ```ruby class MyJob < ApplicationJob include
452
+ WCC::Contentful::ServiceAccessors def perform Page.find(...) store.find(...) client.entries(...)
453
+ end end ``` ## Development After checking out the repo, run `bin/setup` to install
454
+ dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console`
455
+ for an interactive prompt that will allow you to experiment. To install this gem
456
+ onto your local machine, run `bundle exec rake install`. To release a new version,
457
+ update the version number in `version.rb`, and then run `bundle exec rake release`,
458
+ which will create a git tag for the version, push git commits and tags, and push
459
+ the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing Bug reports
460
+ and pull requests are welcome on GitHub at https://github.com/watermarkchurch/wcc-contentful.
481
461
  This project is intended to be a safe, welcoming space for collaboration, and contributors
482
462
  are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org)
483
463
  code of conduct. ## License The gem is available as open source under the terms
484
464
  of the [MIT License](http://opensource.org/licenses/MIT). ## Code of Conduct Everyone
485
465
  interacting in the WCC::Contentful project''s codebases, issue trackers, chat rooms
486
- and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/wcc-contentful/blob/master/CODE_OF_CONDUCT.md).'
466
+ and mailing lists is expected to follow the [code of conduct](https://github.com/watermarkchurch/wcc-contentful/blob/master/CODE_OF_CONDUCT.md).'
487
467
  test_files: []
data/.circleci/config.yml DELETED
@@ -1,51 +0,0 @@
1
- version: 2
2
- jobs:
3
- build:
4
- docker:
5
- - image: circleci/ruby:2.3.3-node
6
- environment:
7
- RAILS_ENV: test
8
- POSTGRES_CONNECTION: postgresql://ubuntu:@127.0.0.1:5432/circle_ruby_test
9
- - image: postgres:10
10
- environment:
11
- - POSTGRES_USER: ubuntu
12
- - POSTGRES_DB: circle_ruby_test
13
- steps:
14
- - checkout
15
- # Restore bundle cache
16
- - restore_cache:
17
- key: rails-{{ checksum "wcc-contentful.gemspec" }}
18
-
19
- # Bundle install dependencies
20
- - run: bundle install --path /tmp/vendor/bundle
21
-
22
- # Store bundle cache
23
- - save_cache:
24
- key: rails-{{ checksum "wcc-contentful.gemspec" }}
25
- paths:
26
- - /tmp/vendor/bundle
27
-
28
- # run Danger
29
- # - type: shell
30
- # command: |
31
- # bundle exec danger
32
-
33
- # run rubocop
34
- - type: shell
35
- command: |
36
- bundle exec rubocop
37
-
38
- # Run rspec in parallel
39
- - type: shell
40
- command: |
41
- bundle exec rspec --profile 10 \
42
- --format RspecJunitFormatter \
43
- --out test_results/rspec.xml \
44
- --format documentation \
45
- --order rand \
46
- $(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)
47
-
48
- # Save test results for timing analysis
49
- - store_test_results:
50
- path: test_results
51
-
data/.gitignore DELETED
@@ -1,26 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
9
-
10
- # rspec failure tracking
11
- .rspec_status
12
-
13
- Gemfile.lock
14
-
15
- # exports and error logs from contentful
16
- contentful-export*
17
- contentful-*-error-log-*
18
-
19
- # User local env
20
- .envrc
21
- .env*
22
-
23
- node_modules
24
-
25
- log/
26
- tmp/
data/.rubocop.yml DELETED
@@ -1,243 +0,0 @@
1
- inherit_from: .rubocop_todo.yml
2
-
3
- AllCops:
4
- DisplayCopNames: true
5
- TargetRubyVersion: 2.3
6
- Exclude:
7
- # generated by rails/binstubs
8
- - 'bin/**/*'
9
-
10
- # auto generated by rails
11
-
12
- # Config files
13
- - 'Guardfile'
14
- - 'Dangerfile'
15
-
16
- # 3rd party
17
- - 'vendor/**/*'
18
-
19
- # generator templates
20
- - '**/templates/**/*'
21
- - 'tmp/**/*'
22
-
23
- # dummy app for testing
24
- - 'spec/dummy/**/*'
25
-
26
- Style/Documentation:
27
- Enabled: false
28
-
29
- Style/BlockDelimiters:
30
- Exclude:
31
- # we like the `let(:foo) {}` syntax in specs
32
- - 'spec/**/*.rb'
33
-
34
- Style/ClassAndModuleChildren:
35
- EnforcedStyle: compact
36
- Exclude:
37
- - 'lib/wcc/contentful/version.rb'
38
- # Generators need to define the "Wcc" module so it doesnt get underscored.
39
- - 'lib/generators/**/*.rb'
40
-
41
- Style/FormatStringToken:
42
- EnforcedStyle: template
43
-
44
- Metrics/BlockLength:
45
- Exclude:
46
- # config files where we expect long blocks
47
- - 'danger-wcc.gemspec'
48
- # spec files that might have a big describe
49
- - 'spec/**/*.rb'
50
- # dsl files https://stackoverflow.com/a/41187163
51
-
52
- Metrics/CyclomaticComplexity:
53
- Enabled: false
54
-
55
- Metrics/AbcSize:
56
- Enabled: false
57
-
58
- Metrics/PerceivedComplexity:
59
- Enabled: false
60
-
61
- Metrics/BlockLength:
62
- Enabled: false
63
-
64
- Metrics/MethodLength:
65
- Enabled: false
66
-
67
- Metrics/ClassLength:
68
- Enabled: false
69
-
70
- Metrics/ModuleLength:
71
- Exclude:
72
- - 'spec/**/*.rb'
73
-
74
- Performance/UnfreezeString:
75
- Exclude:
76
- - 'spec/**/*.rb'
77
-
78
- Style/BracesAroundHashParameters:
79
- Enabled: false
80
-
81
- Lint/AssignmentInCondition:
82
- Enabled: false
83
-
84
- Lint/AmbiguousBlockAssociation:
85
- Exclude:
86
- - 'spec/generators/**/*.rb'
87
-
88
- Style/EmptyMethod:
89
- EnforcedStyle: expanded
90
-
91
- Style/Alias:
92
- EnforcedStyle: prefer_alias_method
93
-
94
- Style/NumericPredicate:
95
- EnforcedStyle: comparison
96
-
97
- Style/RegexpLiteral:
98
- Enabled: false
99
-
100
- Style/ModuleFunction:
101
- EnforcedStyle: extend_self
102
-
103
- # Danger uses the 'fail' keyword for reporting errors
104
- Style/SignalException:
105
- Enabled: false
106
-
107
- Layout/AlignParameters:
108
- EnforcedStyle: with_fixed_indentation
109
-
110
- Layout/IndentHash:
111
- EnforcedStyle: consistent
112
-
113
- Layout/AlignHash:
114
- # allow coder to get around alignment rules by explicitly defining the hash param
115
- EnforcedLastArgumentHashStyle: ignore_explicit
116
-
117
- Layout/MultilineMethodCallIndentation:
118
- EnforcedStyle: indented
119
-
120
- Layout/MultilineOperationIndentation:
121
- EnforcedStyle: indented
122
-
123
-
124
- # These are all the cops that are disabled in the default configuration.
125
-
126
- Layout/FirstArrayElementLineBreak:
127
- Description: >-
128
- Checks for a line break before the first element in a
129
- multi-line array.
130
- Enabled: true
131
-
132
- Layout/FirstHashElementLineBreak:
133
- Description: >-
134
- Checks for a line break before the first element in a
135
- multi-line hash.
136
- Enabled: true
137
-
138
- Layout/FirstMethodArgumentLineBreak:
139
- Description: >-
140
- Checks for a line break before the first argument in a
141
- multi-line method call.
142
- Enabled: false
143
-
144
- Layout/FirstMethodParameterLineBreak:
145
- Description: >-
146
- Checks for a line break before the first parameter in a
147
- multi-line method parameter definition.
148
- Enabled: true
149
-
150
- Layout/MultilineAssignmentLayout:
151
- Description: 'Check for a newline after the assignment operator in multi-line assignments.'
152
- StyleGuide: '#indent-conditional-assignment'
153
- Enabled: true
154
-
155
- Lint/MissingCopEnableDirective:
156
- Exclude:
157
- - 'spec/fixtures/**/*'
158
-
159
- Style/AutoResourceCleanup:
160
- Description: 'Suggests the usage of an auto resource cleanup version of a method (if available).'
161
- Enabled: true
162
-
163
- Style/CollectionMethods:
164
- Description: 'Preferred collection methods.'
165
- StyleGuide: '#map-find-select-reduce-size'
166
- Enabled: true
167
-
168
- Style/Copyright:
169
- Description: 'Include a copyright notice in each file before any code.'
170
- Enabled: false
171
-
172
- Style/DocumentationMethod:
173
- Description: 'Public methods.'
174
- Enabled: false
175
- Exclude:
176
- - 'spec/**/*'
177
- - 'test/**/*'
178
-
179
- Style/ImplicitRuntimeError:
180
- Description: >-
181
- Use `raise` or `fail` with an explicit exception class and
182
- message, rather than just a message.
183
- Enabled: true
184
-
185
- Style/InlineComment:
186
- Description: 'Avoid trailing inline comments.'
187
- Enabled: true
188
-
189
-
190
- Style/Lambda:
191
- EnforcedStyle: literal
192
-
193
- Style/MethodCallWithArgsParentheses:
194
- Description: 'Use parentheses for method calls with arguments.'
195
- StyleGuide: '#method-invocation-parens'
196
- Enabled: false
197
-
198
- Style/MethodCalledOnDoEndBlock:
199
- Description: 'Avoid chaining a method call on a do...end block.'
200
- StyleGuide: '#single-line-blocks'
201
- Enabled: true
202
- Exclude:
203
- - 'spec/**/*'
204
-
205
- Style/MissingElse:
206
- Description: >-
207
- Require if/case expressions to have an else branches.
208
- If enabled, it is recommended that
209
- Style/UnlessElse and Style/EmptyElse be enabled.
210
- This will conflict with Style/EmptyElse if
211
- Style/EmptyElse is configured to style "both"
212
- Enabled: false
213
- EnforcedStyle: both
214
- SupportedStyles:
215
- # if - warn when an if expression is missing an else branch
216
- # case - warn when a case expression is missing an else branch
217
- # both - warn when an if or case expression is missing an else branch
218
- - if
219
- - case
220
- - both
221
-
222
- Style/OptionHash:
223
- Description: "Don't use option hashes when you can use keyword arguments."
224
- Enabled: false
225
-
226
- Style/ReturnNil:
227
- Description: 'Use return instead of return nil.'
228
- Enabled: true
229
-
230
- Style/Send:
231
- Description: 'Prefer `Object#__send__` or `Object#public_send` to `send`, as `send` may overlap with existing methods.'
232
- StyleGuide: '#prefer-public-send'
233
- Enabled: true
234
- Exclude:
235
- - 'spec/**/*'
236
-
237
- Style/StringMethods:
238
- Description: 'Checks if configured preferred methods are used over non-preferred.'
239
- Enabled: false
240
-
241
- Style/SingleLineBlockParams:
242
- Description: 'Enforces the names of some block params.'
243
- Enabled: false