front_matter_parser 0.2.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a44ac54ad879c510b24c28d9319b693205e8a23fe2c9da8243e3002d2d5cbf09
4
- data.tar.gz: e6d5f1b27f027bc8ce55ed8a5cfeb55855ad556130b0c224c27b2d1ca86370a7
3
+ metadata.gz: a904dbf5bade2127e0bb2b9abb7106f179ce22876ca6e57aa9dc7c89730d2898
4
+ data.tar.gz: b43330122a6496888be51b937fc06749dd0b256394227425736b88a0e9e9f781
5
5
  SHA512:
6
- metadata.gz: 9d73bd59751664532d32e4275f11cb5f4ec3c9c645adb0e561c9b8a3c079b1a87298d420c1e3b88f605577910513d2243d2420306bb0e986e2fc4b530654b6fa
7
- data.tar.gz: 538b56e768dffac9e9a281233a3037383cd6f6297c6201769b713c757a3cbb1a3458d9be44d335bba3eb8e44cea400eab2439074ee527a38f0c0d1d145265b9b
6
+ metadata.gz: bf46ac330a47187dc37041b4c25ec6dd8500761ec18feaa2102659e19cda516f03be66b3ac32a9a530406b9d4fe598a86666916418ddf54f5380d9c164787095
7
+ data.tar.gz: 1d359953cd78bac9bf7186eb5b16e22f95a4d01ddaaf3d9e643580c7d407332f6730573733aa55423fd06c147e7816873b8deb62b1f1fa59ac7429e0f1490489
data/.rubocop.yml CHANGED
@@ -1,8 +1,50 @@
1
1
  require: rubocop-rspec
2
2
  AllCops:
3
- TargetRubyVersion: 2.4
3
+ TargetRubyVersion: 3.0
4
+ Exclude:
5
+ - Gemfile
6
+ - front_matter_parser.gemspec
7
+ - vendor/**/*
4
8
  RSpec/NestedGroups:
5
9
  Max: 3
10
+ RSpec/MessageExpectation:
11
+ EnforcedStyle: 'expect'
6
12
  Metrics/BlockLength:
7
13
  Exclude:
8
14
  - "spec/**/*.rb"
15
+ Style/SafeNavigation:
16
+ Enabled: false
17
+ Layout/EmptyLinesAroundAttributeAccessor:
18
+ Enabled: true
19
+ Layout/SpaceAroundMethodCallOperator:
20
+ Enabled: true
21
+ Lint/DeprecatedOpenSSLConstant:
22
+ Enabled: true
23
+ Lint/MixedRegexpCaptureTypes:
24
+ Enabled: true
25
+ Lint/RaiseException:
26
+ Enabled: true
27
+ Lint/StructNewOverride:
28
+ Enabled: true
29
+ Style/AccessorGrouping:
30
+ Enabled: true
31
+ Style/BisectedAttrAccessor:
32
+ Enabled: true
33
+ Style/ExponentialNotation:
34
+ Enabled: true
35
+ Style/HashEachMethods:
36
+ Enabled: true
37
+ Style/HashTransformKeys:
38
+ Enabled: true
39
+ Style/HashTransformValues:
40
+ Enabled: true
41
+ Style/RedundantAssignment:
42
+ Enabled: true
43
+ Style/RedundantFetchBlock:
44
+ Enabled: true
45
+ Style/RedundantRegexpCharacterClass:
46
+ Enabled: true
47
+ Style/RedundantRegexpEscape:
48
+ Enabled: true
49
+ Style/SlicingWithRange:
50
+ Enabled: false
data/.travis.yml CHANGED
@@ -1,20 +1,20 @@
1
- sudo: false
2
1
  language: ruby
2
+ cache: bundler
3
3
  rvm:
4
- - 2.4
5
- - 2.5
6
4
  - 2.6
5
+ - 2.7
6
+ - 3.0
7
+ - ruby-head
7
8
  before_install:
8
9
  - gem update --system --no-doc
9
- - bundle install --gemfile=.overcommit_gems.rb
10
- before_script:
11
- - git config --global user.email 'travis@travis.ci'
12
- - git config --global user.name 'Travis CI'
10
+ - gem install bundler
13
11
  script:
14
12
  - bundle exec rspec
13
+ - bundle exec rubocop
15
14
  - bundle exec codeclimate-test-reporter
16
- - overcommit --sign
17
- - overcommit --run
15
+ jobs:
16
+ allow_failures:
17
+ - rvm: ruby-head
18
18
  addons:
19
19
  code_climate:
20
20
  repo_token:
data/CHANGELOG.md CHANGED
@@ -4,6 +4,19 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
+ ## [1.0.0] - 2020-08-31
8
+ - Depreciate "whitelist" in favor of "allowlist" by renaming the `whitelist_classes` param to `allowlist_classes`.
9
+
10
+ If your project uses the `whitelist_classes` param, you will need to upgrade your code as follows:
11
+
12
+ ```ruby
13
+ ## before
14
+ loader = FrontMatterParser::Loader::Yaml.new(whitelist_classes: [Time])
15
+
16
+ ## after
17
+ loader = FrontMatterParser::Loader::Yaml.new(allowlist_classes: [Time])
18
+ ```
19
+
7
20
  ## [0.2.1] - 2019-06-06
8
21
  ### Fixed
9
22
  - Do not add `bin` development executables to generated gem.
data/Dockerfile CHANGED
@@ -1,8 +1,5 @@
1
- FROM ruby:2.4.0
2
- ENV APP_HOME /app/
3
- ENV LIB_DIR lib/front_matter_parser/
4
- RUN mkdir -p $APP_HOME/$LIB_DIR
5
- WORKDIR $APP_HOME
6
- COPY Gemfile *gemspec $APP_HOME
7
- COPY $LIB_DIR/version.rb $APP_HOME/$LIB_DIR
8
- RUN bundle install
1
+ FROM ruby:3.0.0
2
+ ENV APP_USER front_matter_parser_user
3
+ RUN useradd -ms /bin/bash $APP_USER
4
+ USER $APP_USER
5
+ WORKDIR /home/$APP_USER/app
data/README.md CHANGED
@@ -75,17 +75,17 @@ title = FrontMatterParser::Parser.parse_file('example.haml')['title'] #=> 'Hello
75
75
 
76
76
  Following there is a relation of known syntaxes and their known comment delimiters:
77
77
 
78
- | Syntax | Single line comment | Start multiline comment | End multiline comment |
79
- | ------ | ------------------- | ----------------------- | ---------------------- |
80
- | haml | | -# | (indentation) |
81
- | slim | | / | (indentation) |
82
- | liquid | | {% comment %} | {% endcomment %} |
83
- | md | | | |
84
- | html | | <!-- | --> |
85
- | erb | | <%# | %> |
86
- | coffee | # | | |
87
- | sass | // | | |
88
- | scss | // | | |
78
+ | Syntax | Single line comment | Start multiline comment | End multiline comment |
79
+ | ------ | ------------------- | ----------------------- | --------------------- |
80
+ | haml | | -# | (indentation) |
81
+ | slim | | / | (indentation) |
82
+ | liquid | | {% comment %} | {% endcomment %} |
83
+ | md | | | |
84
+ | html | | <!-- | --> |
85
+ | erb | | <%# | %> |
86
+ | coffee | # | | |
87
+ | sass | // | | |
88
+ | scss | // | | |
89
89
 
90
90
  ### Parsing a string
91
91
 
@@ -134,10 +134,10 @@ FrontMatterParser::Parser.parse_file('example.md', loader: json_loader)
134
134
  FrontMatterParser::Parser.new(:md, loader: json_loader).call(string)
135
135
  ```
136
136
 
137
- If you need to whitelist some class for the built-in YAML loader, you can just create a custom loader based on it and provide needed classes in a `whitelist_classes:` param:
137
+ If you need to allow one or more classes for the built-in YAML loader, you can just create a custom loader based on it and provide needed classes in a `allowlist_classes:` param:
138
138
 
139
139
  ```ruby
140
- loader = FrontMatterParser::Loader::Yaml.new(whitelist_classes: [Time])
140
+ loader = FrontMatterParser::Loader::Yaml.new(allowlist_classes: [Time])
141
141
  parsed = FrontMatterParser::Parser.parse_file('example.md', loader: loader)
142
142
  puts parsed['timestamp']
143
143
  ```
@@ -152,14 +152,6 @@ An then, for example:
152
152
 
153
153
  `docker-compose exec app rspec`
154
154
 
155
- This gem uses [overcommit](https://github.com/brigade/overcommit) to execute some code review engines. If you submit a pull request, it will be executed in the CI process. In order to set it up, you need to do:
156
-
157
- ```ruby
158
- bundle install --gemfile=.overcommit_gems.rb
159
- overcommit --sign
160
- overcommit --run # To test if it works
161
- ```
162
-
163
155
  ## Contributing
164
156
 
165
157
  1. Fork it
data/docker-compose.yml CHANGED
@@ -2,6 +2,11 @@ version: '2'
2
2
  services:
3
3
  app:
4
4
  build: .
5
- command: tail -f Gemfile
5
+ image: front_matter_parser_user
6
+ command: bash -c "bundle && tail -f Gemfile"
6
7
  volumes:
7
- - .:/app
8
+ - .:/home/front_matter_parser_user/app
9
+ tty: true
10
+ stdin_open: true
11
+ tmpfs:
12
+ - /tmp
@@ -23,6 +23,8 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "rspec", "~> 3.8"
24
24
  spec.add_development_dependency "pry-byebug", "~> 3.7"
25
25
  # Test reporting
26
- spec.add_development_dependency 'simplecov', '~> 0.16'
26
+ spec.add_development_dependency 'rubocop', '~> 1.9'
27
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.2'
28
+ spec.add_development_dependency 'simplecov', '0.17'
27
29
  spec.add_development_dependency 'codeclimate-test-reporter', '~> 1.0'
28
30
  end
@@ -6,12 +6,12 @@ module FrontMatterParser
6
6
  module Loader
7
7
  # {Loader} that uses YAML library
8
8
  class Yaml
9
- # @!attribute [r] whitelist_classes
9
+ # @!attribute [r] allowlist_classes
10
10
  # Classes that may be parsed by #call.
11
- attr_reader :whitelist_classes
11
+ attr_reader :allowlist_classes
12
12
 
13
- def initialize(whitelist_classes: [])
14
- @whitelist_classes = whitelist_classes
13
+ def initialize(allowlist_classes: [])
14
+ @allowlist_classes = allowlist_classes
15
15
  end
16
16
 
17
17
  # Loads a hash front matter from a string
@@ -19,7 +19,7 @@ module FrontMatterParser
19
19
  # @param string [String] front matter string representation
20
20
  # @return [Hash] front matter hash representation
21
21
  def call(string)
22
- YAML.safe_load(string, whitelist_classes)
22
+ YAML.safe_load(string, allowlist_classes)
23
23
  end
24
24
  end
25
25
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FrontMatterParser
4
- VERSION = '0.2.1'
4
+ VERSION = '1.0.0'
5
5
  end
@@ -12,11 +12,11 @@ describe FrontMatterParser::Loader::Yaml do
12
12
  )
13
13
  end
14
14
 
15
- it 'loads with whitelisted classes' do
15
+ it 'loads with classes in allowlist' do
16
16
  string = 'timestamp: 2017-10-17 00:00:00Z'
17
- params = { whitelist_classes: [Time] }
17
+ params = { allowlist_classes: [Time] }
18
18
 
19
- expect(described_class.new(params).call(string)).to eq(
19
+ expect(described_class.new(**params).call(string)).to eq(
20
20
  'timestamp' => Time.parse('2017-10-17 00:00:00Z')
21
21
  )
22
22
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: front_matter_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - marc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-06 00:00:00.000000000 Z
11
+ date: 2021-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -67,19 +67,47 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.7'
69
69
  - !ruby/object:Gem::Dependency
70
- name: simplecov
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.9'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.9'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop-rspec
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '0.16'
89
+ version: '2.2'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: '0.16'
96
+ version: '2.2'
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
103
+ version: '0.17'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: '0.17'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: codeclimate-test-reporter
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -103,8 +131,6 @@ extra_rdoc_files: []
103
131
  files:
104
132
  - ".codeclimate.yml"
105
133
  - ".gitignore"
106
- - ".overcommit.yml"
107
- - ".overcommit_gems.rb"
108
134
  - ".rspec"
109
135
  - ".rubocop.yml"
110
136
  - ".ruby-version"
@@ -163,8 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
189
  - !ruby/object:Gem::Version
164
190
  version: '0'
165
191
  requirements: []
166
- rubyforge_project:
167
- rubygems_version: 2.7.8
192
+ rubygems_version: 3.2.3
168
193
  signing_key:
169
194
  specification_version: 4
170
195
  summary: Library to parse a front matter from strings or files. It allows writing
data/.overcommit.yml DELETED
@@ -1,54 +0,0 @@
1
- #
2
- # Select version of overcommit and the other tools from Gemfile
3
- #
4
- gemfile: .overcommit_gems.rb
5
-
6
- #
7
- # Hooks that are run against every commit message after a user has written it.
8
- #
9
- CommitMsg:
10
- ALL:
11
- required: true
12
- exclude: &default_excludes
13
- - Gemfile
14
- - CHANGELOG.md
15
- - front_matter_parser.gemspec
16
- - README.md
17
-
18
- HardTabs:
19
- enabled: true
20
-
21
- SingleLineSubject:
22
- enabled: true
23
-
24
- #
25
- # Hooks that are run after `git commit` is executed, before the commit message
26
- # editor is displayed.
27
- #
28
- PreCommit:
29
- ALL:
30
- required: true
31
- exclude: *default_excludes
32
-
33
- BundleAudit:
34
- enabled: true
35
-
36
- BundleCheck:
37
- enabled: true
38
-
39
- LocalPathsInGemfile:
40
- enabled: true
41
-
42
- ExecutePermissions:
43
- enabled: true
44
- exclude:
45
- - bin/*
46
-
47
- Reek:
48
- enabled: true
49
-
50
- RuboCop:
51
- enabled: true
52
-
53
- TrailingWhitespace:
54
- enabled: true
data/.overcommit_gems.rb DELETED
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gem 'overcommit', '~> 0.36'
6
-
7
- # Patch-level verification for Bundled apps
8
- gem 'bundler-audit', '~> 0.5'
9
-
10
- # Ruby code smell reporter
11
- gem 'reek', '~> 4.5'
12
-
13
- # Ruby code style checking
14
- gem 'rubocop', '~> 0.43'
15
- gem 'rubocop-rspec', '~> 1.7'