modware 0.1.3 → 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
- SHA1:
3
- metadata.gz: bc9ca6f4009322f99e3081bc3a82d5718adc31a6
4
- data.tar.gz: c9dcae88e1a3c6a33a223863c8aa0b203a21c58d
2
+ SHA256:
3
+ metadata.gz: 507056ec7b90b4f35ca6e927bfa72241176258fb4a33a83d62565920831cff3b
4
+ data.tar.gz: 46596689ab31ae28d5dad8cdcf800578fb25b51f42679a9a69e0f45ba1bcf7e2
5
5
  SHA512:
6
- metadata.gz: 1a013edf5b514ad155fa1b706eae75f27381c1696ef9692592a4d747ce445b9a4792841e200c7a4a9f8dd504a4e74e480253029d74798a6f1754aeb6d09866b5
7
- data.tar.gz: 1e48bddccf6db529eed0485cc2d01a8b07d80bcb5c19a711a617b65f66b15dd1cd287c1d98f86aa5091617aba7cce3efbbc4bb80293d1e5078979724596d332c
6
+ metadata.gz: d9fddb563c69665eb4a4199bda7c0d8cd7f943c06c3865f98c9f9d45eff4992d13bad9d4bfe2b42b54a8d6284b9d99b95b07a69002adcd683530d9b40efbde29
7
+ data.tar.gz: 613c1ad1d11e2b6f89498a04f1f1fbc5c5fb7a273100f7a016ae26d5ff0ed1664a30fedbdd6f43b94118c0c811954d91ce8dead71a68b7e866044aca599df11b
@@ -0,0 +1,49 @@
1
+ name: CI PR Builds
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+
9
+ concurrency:
10
+ group: "ci-${{ github.ref }}"
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ test:
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ ruby-version: ['2.5', '2.6', '2.7', '3.0']
20
+ steps:
21
+ - uses: actions/checkout@v2
22
+
23
+ - name: Set up Ruby
24
+ uses: ruby/setup-ruby@v1
25
+ with:
26
+ ruby-version: ${{ matrix.ruby-version }}
27
+ bundler-cache: true
28
+
29
+ - name: 'Run bundle update'
30
+ run: bundle update
31
+
32
+ - name: Run tests
33
+ run: bundle exec rake spec
34
+
35
+ - name: Coveralls Parallel
36
+ uses: coverallsapp/github-action@master
37
+ with:
38
+ github-token: ${{ secrets.GITHUB_TOKEN }}
39
+ flag-name: run-${{ matrix.ruby-version }}
40
+ parallel: true
41
+ finish:
42
+ needs: 'test'
43
+ runs-on: ubuntu-latest
44
+ steps:
45
+ - name: Coveralls Finished
46
+ uses: coverallsapp/github-action@master
47
+ with:
48
+ github-token: ${{ secrets.GITHUB_TOKEN }}
49
+ parallel-finished: true
data/.simplecov ADDED
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ SimpleCov.configure do
4
+ enable_coverage :branch
5
+ add_filter '/spec/'
6
+
7
+ add_group 'Libraries', '/lib/'
8
+
9
+ if ENV['CI']
10
+ require 'simplecov-lcov'
11
+
12
+ SimpleCov::Formatter::LcovFormatter.config do |c|
13
+ c.report_with_single_file = true
14
+ c.single_report_path = 'coverage/lcov.info'
15
+ end
16
+
17
+ formatter SimpleCov::Formatter::LcovFormatter
18
+ end
19
+ end
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in modware.gemspec
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/modware.svg)](http://badge.fury.io/rb/modware)
2
- [![Build Status](https://secure.travis-ci.org/ronen/modware.svg)](http://travis-ci.org/ronen/modware)
3
- [![Coverage Status](https://img.shields.io/coveralls/ronen/modware.svg)](https://coveralls.io/r/ronen/modware)
2
+ [![Build Status](https://github.com/SchemaPlus/modware/actions/workflows/prs.yml/badge.svg)](https://github.com/SchemaPlus/modware/actions)
3
+ [![Coverage Status](https://coveralls.io/repos/github/SchemaPlus/modware/badge.svg)](https://coveralls.io/github/SchemaPlus/modware)
4
4
 
5
5
  # Modware
6
6
 
@@ -32,8 +32,7 @@ where `klass` is a Class for the environment instance that will be passed to the
32
32
  stack = Modware::Stack.new(env: [:name, :options, :results])
33
33
  ```
34
34
 
35
- and Modware will define a class that accepts those keys as keyword arguments, and has accessor methods for each (see
36
- [`KeyStruct`](https://rubygems.org/gems/key_struct)).
35
+ and Modware will define a class that accepts those keys as keyword arguments, and has accessor methods for each
37
36
 
38
37
 
39
38
  ### Defining middleware
@@ -102,7 +101,7 @@ class WrapsOperation < BaseClass
102
101
 
103
102
  attr_reader :stack
104
103
 
105
- def initialized(*args)
104
+ def initialize(*args)
106
105
  super
107
106
  @stack = Modware::Stack.new(env: [:time, :place, :result])
108
107
  end
@@ -132,6 +131,8 @@ The [middleware](https://rubygems.org/gems/middleware) gem works well, following
132
131
 
133
132
  ## Change Log
134
133
 
134
+ * 1.0.0 - use a major bump due to breakage with the 0.2.0 version and existing gems
135
+ * 0.2.0 - Add ruby 3.0 support and drop ruby < 2.5 (yanked)
135
136
  * 0.1.3 - Remove its-it dependency :( #2
136
137
  * 0.1.2 - More thread safety in Stack#start
137
138
  * 0.1.1 - Thread safety in Stack#start
data/Rakefile CHANGED
@@ -1,10 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bundler/gem_tasks"
2
4
 
3
5
  require 'rspec/core/rake_task'
4
6
  RSpec::Core::RakeTask.new(:spec) do |spec|
5
7
  spec.rspec_opts = '-Ispec'
6
8
  end
7
-
8
- require 'coveralls/rake/task'
9
- Coveralls::RakeTask.new
10
- task :spec_with_coveralls => [:spec, 'coveralls:push']
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Modware
2
4
  class StackError < Exception
3
5
  end
data/lib/modware/stack.rb CHANGED
@@ -1,11 +1,16 @@
1
- require 'key_struct'
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Modware
4
4
  class Stack
5
5
  def initialize(env:)
6
6
  @env_klass = case env
7
7
  when Class then env
8
- else KeyStruct[*env]
8
+ else
9
+ Struct.new(*env, keyword_init: true) do
10
+ def to_hash
11
+ to_h.compact
12
+ end
13
+ end
9
14
  end
10
15
  @middleware_mods = []
11
16
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Modware
2
- VERSION = "0.1.3"
4
+ VERSION = "1.0.0"
3
5
  end
data/lib/modware.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "modware/errors"
2
4
  require "modware/stack"
3
5
  require "modware/version"
data/modware.gemspec CHANGED
@@ -1,4 +1,5 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  lib = File.expand_path('../lib', __FILE__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'modware/version'
@@ -17,15 +18,12 @@ Gem::Specification.new do |spec|
17
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
19
  spec.require_paths = ["lib"]
19
20
 
20
- spec.required_ruby_version = ">= 2.1.0"
21
- spec.add_dependency "key_struct", "~> 0.4"
21
+ spec.required_ruby_version = ">= 2.5.0"
22
22
 
23
- spec.add_development_dependency 'coveralls'
24
- spec.add_development_dependency "bundler", "~> 1.7"
25
- spec.add_development_dependency "rake", "~> 10.0"
23
+ spec.add_development_dependency "bundler"
24
+ spec.add_development_dependency "rake", "~> 13.0"
26
25
  spec.add_development_dependency "rspec", "~> 3.0"
27
26
  spec.add_development_dependency "rspec-given"
28
27
  spec.add_development_dependency "simplecov"
29
- spec.add_development_dependency "simplecov-gem-profile"
30
- spec.add_development_dependency "its-it"
28
+ spec.add_development_dependency 'simplecov-lcov', '~> 0.8.0'
31
29
  end
data/spec/env_spec.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe "Env" do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe "Execution" do
@@ -13,7 +15,7 @@ describe "Execution" do
13
15
 
14
16
  context "when start with base implementation" do
15
17
 
16
- When(:env) { stack.start result: [] { |env| env.result << :base } }
18
+ When(:env) { stack.start(result: []) { |env| env.result << :base } }
17
19
 
18
20
  Then { expect(env.result).to eq [:base] }
19
21
 
data/spec/helper_spec.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe "Helper" do
@@ -7,12 +9,12 @@ describe "Helper" do
7
9
  context "Modware.is_middleware?" do
8
10
  [:before, :after, :around, :implement].each do |method|
9
11
  it "returns truthy for a module with #{method.inspect} method" do
10
- expect(Modware.is_middleware? Factory.middleware(none.merge(method => true))).to be_truthy
12
+ expect(Modware.is_middleware? Factory.middleware(**none.merge(method => true))).to be_truthy
11
13
  end
12
14
  end
13
15
 
14
16
  it "returns falsey for other modules" do
15
- expect(Modware.is_middleware? Factory.middleware(none.merge(other: true))).to be_falsey
17
+ expect(Modware.is_middleware? Factory.middleware(**none.merge(other: true))).to be_falsey
16
18
  end
17
19
  end
18
20
 
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'simplecov'
2
- require 'simplecov-gem-profile'
3
- SimpleCov.start "gem"
4
+ SimpleCov.start
4
5
 
5
6
  $LOAD_PATH.unshift(File.dirname(__FILE__))
6
7
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
@@ -1,4 +1,4 @@
1
- require 'its-it'
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Factory
4
4
  def self.middleware(n=nil, before: true, after: true, around: true, implement: true, other: nil)
@@ -37,6 +37,8 @@ module Factory
37
37
  end
38
38
  END
39
39
 
40
- Module.new.tap(&it.module_eval(methods.compact.join))
40
+ Module.new do
41
+ module_eval(methods.compact.join)
42
+ end
41
43
  end
42
44
  end
metadata CHANGED
@@ -1,31 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: modware
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ronen barzel
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-24 00:00:00.000000000 Z
11
+ date: 2022-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: key_struct
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '0.4'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '0.4'
27
- - !ruby/object:Gem::Dependency
28
- name: coveralls
14
+ name: bundler
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
17
  - - ">="
@@ -38,34 +24,20 @@ dependencies:
38
24
  - - ">="
39
25
  - !ruby/object:Gem::Version
40
26
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: bundler
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.7'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.7'
55
27
  - !ruby/object:Gem::Dependency
56
28
  name: rake
57
29
  requirement: !ruby/object:Gem::Requirement
58
30
  requirements:
59
31
  - - "~>"
60
32
  - !ruby/object:Gem::Version
61
- version: '10.0'
33
+ version: '13.0'
62
34
  type: :development
63
35
  prerelease: false
64
36
  version_requirements: !ruby/object:Gem::Requirement
65
37
  requirements:
66
38
  - - "~>"
67
39
  - !ruby/object:Gem::Version
68
- version: '10.0'
40
+ version: '13.0'
69
41
  - !ruby/object:Gem::Dependency
70
42
  name: rspec
71
43
  requirement: !ruby/object:Gem::Requirement
@@ -109,42 +81,29 @@ dependencies:
109
81
  - !ruby/object:Gem::Version
110
82
  version: '0'
111
83
  - !ruby/object:Gem::Dependency
112
- name: simplecov-gem-profile
84
+ name: simplecov-lcov
113
85
  requirement: !ruby/object:Gem::Requirement
114
86
  requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: its-it
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
87
+ - - "~>"
130
88
  - !ruby/object:Gem::Version
131
- version: '0'
89
+ version: 0.8.0
132
90
  type: :development
133
91
  prerelease: false
134
92
  version_requirements: !ruby/object:Gem::Requirement
135
93
  requirements:
136
- - - ">="
94
+ - - "~>"
137
95
  - !ruby/object:Gem::Version
138
- version: '0'
139
- description:
96
+ version: 0.8.0
97
+ description:
140
98
  email:
141
99
  - ronen@barzel.org
142
100
  executables: []
143
101
  extensions: []
144
102
  extra_rdoc_files: []
145
103
  files:
104
+ - ".github/workflows/prs.yml"
146
105
  - ".gitignore"
147
- - ".travis.yml"
106
+ - ".simplecov"
148
107
  - Gemfile
149
108
  - LICENSE.txt
150
109
  - README.md
@@ -163,7 +122,7 @@ homepage: https://github.com/ronen/modware
163
122
  licenses:
164
123
  - MIT
165
124
  metadata: {}
166
- post_install_message:
125
+ post_install_message:
167
126
  rdoc_options: []
168
127
  require_paths:
169
128
  - lib
@@ -171,16 +130,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
171
130
  requirements:
172
131
  - - ">="
173
132
  - !ruby/object:Gem::Version
174
- version: 2.1.0
133
+ version: 2.5.0
175
134
  required_rubygems_version: !ruby/object:Gem::Requirement
176
135
  requirements:
177
136
  - - ">="
178
137
  - !ruby/object:Gem::Version
179
138
  version: '0'
180
139
  requirements: []
181
- rubyforge_project:
182
- rubygems_version: 2.5.1
183
- signing_key:
140
+ rubygems_version: 3.0.8
141
+ signing_key:
184
142
  specification_version: 4
185
143
  summary: A middleware library, featuring a simple interface and "callback" style semantics
186
144
  in the middleware stack
data/.travis.yml DELETED
@@ -1,7 +0,0 @@
1
- sudo: false
2
- rvm:
3
- - 2.1.5
4
- script: bundle exec rake spec_with_coveralls
5
- notifications:
6
- recipients:
7
- - ronen@barzel.org