windcharger 0.5.0 → 0.6.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3880054180de3f8d84d555577ed519b5df2bd25baf85b60a5fbe047690079b5d
4
- data.tar.gz: 6128c5c16115ecbd0eb80c36e39047e887387ee0fc4a004fcbe96130b8809420
3
+ metadata.gz: e8e26b7926c106cea632124f5d031f2ae434e3641f13f6ca4d721284437e5505
4
+ data.tar.gz: 64bd2a8c7196e7469ebd575cf2cb1734a7d2734bb36382537d179a8d5f5c9cff
5
5
  SHA512:
6
- metadata.gz: 186fe22071dabe644fbc9ee288df9d86336516d508ded03ae33f856c98ed97eae147a16d221bffbd45a7ccea6f0451675a3f555714ea634129e5515fa310dcea
7
- data.tar.gz: a13235f494ab514bf3df98660d772285cdcfc1ea45ab81962642f59296b4e66cd35b28592351455c70155d630fc11578e427b6887bd4395da9c1fbda7b9b6168
6
+ metadata.gz: 00a7a5a53d468f825de59165b294a08c13f1cf03634dfff0a3b566180628dddbdd877e931560fdf3e3341ff7093be215d03bf4a562c521d263e218b21227cb35
7
+ data.tar.gz: bf3d5b88e5b9fe7552b0f1b846e371648e38c1e5e623012757190b882f51b951b97350281f36a47f10046c316d995e1f8972e556c3836ae093f8f942d1befbf4
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: CI
3
+
4
+ 'on':
5
+ pull_request:
6
+ push:
7
+
8
+ jobs:
9
+ test:
10
+ runs-on: ubuntu-latest
11
+ strategy:
12
+ matrix:
13
+ ruby-version:
14
+ - '2.6'
15
+ - '2.7'
16
+ - '3.0'
17
+
18
+ steps:
19
+ - uses: actions/checkout@v2
20
+ - name: Setup
21
+ uses: ruby/setup-ruby@v1
22
+ with:
23
+ ruby-version: ${{ matrix.ruby-version }}
24
+ bundler-cache: true
25
+ - name: Run tests
26
+ run: bundle exec rake
@@ -3,13 +3,13 @@
3
3
  module Windcharger
4
4
  module Attributes
5
5
  def attributes
6
- (@__attributes || []).dup.freeze
6
+ (@__windcharger_attributes ||= []).dup.freeze
7
7
  end
8
8
 
9
9
  private
10
10
 
11
11
  def __windcharger_add_attribute name
12
- (@__attributes ||= []) << name.to_sym
12
+ (@__windcharger_attributes ||= []) << name.to_sym
13
13
  end
14
14
 
15
15
  def attribute *attributes
@@ -21,7 +21,8 @@ module Windcharger
21
21
  end
22
22
 
23
23
  def method_added name
24
- return unless @__windcharger_next_is_attribute
24
+ super
25
+ return unless defined?(@__windcharger_next_is_attribute) && @__windcharger_next_is_attribute
25
26
  __windcharger_add_attribute name
26
27
  @__windcharger_next_is_attribute = false
27
28
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Windcharger
4
- VERSION = '0.5.0'
4
+ VERSION = '0.6.0'
5
5
  end
@@ -74,4 +74,35 @@ describe Windcharger::Attributes do
74
74
  expect { transformer_class.attributes << :bar }.to raise_error FrozenError
75
75
  expect(transformer_class.attributes).to eq [:foo]
76
76
  end
77
+
78
+ it "does not break other method_added hooks" do
79
+ calls_before = []
80
+ calls_after = []
81
+ other_hooker_before = Module.new do
82
+ define_method :method_added do |name|
83
+ super name
84
+ calls_before << name
85
+ end
86
+ end
87
+ other_hooker_after = Module.new do
88
+ define_method :method_added do |name|
89
+ super name
90
+ calls_after << name
91
+ end
92
+ end
93
+
94
+ Class.new do
95
+ extend other_hooker_before
96
+ extend Windcharger::Attributes
97
+ extend other_hooker_after
98
+
99
+ attribute
100
+ def foo; end
101
+
102
+ def bar; end
103
+ end
104
+
105
+ expect(calls_before).to eq %i[foo bar]
106
+ expect(calls_after).to eq %i[foo bar]
107
+ end
77
108
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: windcharger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Marshall
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-06 00:00:00.000000000 Z
11
+ date: 1980-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -65,8 +65,8 @@ executables: []
65
65
  extensions: []
66
66
  extra_rdoc_files: []
67
67
  files:
68
+ - ".github/workflows/ci.yml"
68
69
  - ".gitignore"
69
- - ".travis.yml"
70
70
  - Gemfile
71
71
  - LICENSE.txt
72
72
  - README.md
@@ -84,7 +84,7 @@ homepage: http://johnandrewmarshall.com/projects/windcharger
84
84
  licenses:
85
85
  - MIT
86
86
  metadata: {}
87
- post_install_message:
87
+ post_install_message:
88
88
  rdoc_options: []
89
89
  require_paths:
90
90
  - lib
@@ -99,8 +99,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  - !ruby/object:Gem::Version
100
100
  version: '0'
101
101
  requirements: []
102
- rubygems_version: 3.0.3
103
- signing_key:
102
+ rubygems_version: 3.2.26
103
+ signing_key:
104
104
  specification_version: 4
105
105
  summary: Small library to easily make objects that transform input via many methods.
106
106
  test_files:
data/.travis.yml DELETED
@@ -1,6 +0,0 @@
1
- ---
2
- language: ruby
3
- rvm:
4
- - 2.6.5
5
- - 2.5.7
6
- - jruby-9.2.8.0