windcharger 0.3.0 → 0.4.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 +5 -5
- data/.travis.yml +4 -5
- data/Gemfile +2 -0
- data/LICENSE.txt +1 -1
- data/README.md +3 -4
- data/Rakefile +2 -0
- data/lib/windcharger/attributes.rb +3 -1
- data/lib/windcharger/hash_transformer.rb +4 -2
- data/lib/windcharger/version.rb +3 -1
- data/lib/windcharger.rb +2 -0
- data/spec/readme_spec.rb +2 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/windcharger/attributes_spec.rb +13 -0
- data/spec/windcharger/hash_transformer_spec.rb +16 -0
- data/windcharger.gemspec +3 -2
- metadata +11 -9
- data/spec/windcharger_spec.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: bd1a3adfed13628e9c3d3d73659a90eac37d24516a57f734cb1a246f6bcd69bd
|
4
|
+
data.tar.gz: 481f448a1a537d60e070a736a2b9fefa859153255c4eacb76cd2b60d35c23f6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 128b0fad0f4f588c0635ce4ca4dc11ff9b8e39df90d294363724e9a07f208e9f92e61afc9dcc69655c5d1d60e559a56faa241f7255549dbd8c980e5c5d31ad08
|
7
|
+
data.tar.gz: 0a7d7b46d26dd13a0dbd686a785efd15f8b8f8e1c235c201ea3238937cfd4b007b3bff27f3d8414d1e5d5f3bd8358171a9ca9048399aea24f47e1dd6160c9f70
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
# Windcharger
|
2
2
|
|
3
|
-
[](https://rubygems.org/gems/windcharger)
|
3
|
+
[](https://rubygems.org/gems/windcharger)
|
4
|
+
[](https://travis-ci.org/amarshall/windcharger)
|
6
5
|
|
7
6
|

|
8
7
|
|
@@ -90,4 +89,4 @@ Add an `initialize` that takes some input and then transform it to each attribut
|
|
90
89
|
|
91
90
|
## Credits & License
|
92
91
|
|
93
|
-
Copyright © 2013 J. Andrew Marshall. License is available in the LICENSE file.
|
92
|
+
Copyright © 2013–Present J. Andrew Marshall. License is available in the LICENSE file.
|
data/Rakefile
CHANGED
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Windcharger
|
2
4
|
module HashTransformer
|
3
5
|
def transform
|
4
6
|
self.class.attributes.each_with_object({}) do |attribute, hash|
|
5
|
-
hash[attribute] =
|
6
|
-
end
|
7
|
+
hash[attribute] = public_send(attribute)
|
8
|
+
end.freeze
|
7
9
|
end
|
8
10
|
alias_method :to_h, :transform
|
9
11
|
end
|
data/lib/windcharger/version.rb
CHANGED
data/lib/windcharger.rb
CHANGED
data/spec/readme_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
require 'windcharger/attributes'
|
3
5
|
|
@@ -61,4 +63,15 @@ describe Windcharger::Attributes do
|
|
61
63
|
|
62
64
|
expect(transformer_class.attributes).to eq [:foo, :qux, :foobar]
|
63
65
|
end
|
66
|
+
|
67
|
+
it "does not permit mutating attributes indirectly" do
|
68
|
+
transformer_class = Class.new do
|
69
|
+
extend Windcharger::Attributes
|
70
|
+
|
71
|
+
attribute
|
72
|
+
def foo; end
|
73
|
+
end
|
74
|
+
expect { transformer_class.attributes << :bar }.to raise_error FrozenError
|
75
|
+
expect(transformer_class.attributes).to eq [:foo]
|
76
|
+
end
|
64
77
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
require 'windcharger/hash_transformer'
|
3
5
|
|
@@ -21,5 +23,19 @@ describe Windcharger::HashTransformer do
|
|
21
23
|
bar: 'colorless green ideas',
|
22
24
|
})
|
23
25
|
end
|
26
|
+
|
27
|
+
it "does not call private methods" do
|
28
|
+
transformer_class = Class.new do
|
29
|
+
extend Windcharger::Attributes
|
30
|
+
include Windcharger::HashTransformer
|
31
|
+
|
32
|
+
private
|
33
|
+
attribute
|
34
|
+
def foo; 42; end
|
35
|
+
end
|
36
|
+
transformer = transformer_class.new
|
37
|
+
|
38
|
+
expect { transformer.transform }.to raise_error NoMethodError, /private/
|
39
|
+
end
|
24
40
|
end
|
25
41
|
end
|
data/windcharger.gemspec
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
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 'windcharger/version'
|
@@ -18,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
18
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
20
|
spec.require_paths = ['lib']
|
20
21
|
|
21
|
-
spec.add_development_dependency 'bundler', '
|
22
|
+
spec.add_development_dependency 'bundler', '>= 1.3', '< 3.0'
|
22
23
|
spec.add_development_dependency 'rake'
|
23
24
|
spec.add_development_dependency 'rspec'
|
24
25
|
end
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: windcharger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Marshall
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '3.0'
|
20
23
|
type: :development
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '1.3'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.0'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: rake
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -73,7 +79,6 @@ files:
|
|
73
79
|
- spec/spec_helper.rb
|
74
80
|
- spec/windcharger/attributes_spec.rb
|
75
81
|
- spec/windcharger/hash_transformer_spec.rb
|
76
|
-
- spec/windcharger_spec.rb
|
77
82
|
- windcharger.gemspec
|
78
83
|
homepage: http://johnandrewmarshall.com/projects/windcharger
|
79
84
|
licenses:
|
@@ -94,8 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
99
|
- !ruby/object:Gem::Version
|
95
100
|
version: '0'
|
96
101
|
requirements: []
|
97
|
-
|
98
|
-
rubygems_version: 2.2.0
|
102
|
+
rubygems_version: 3.0.3
|
99
103
|
signing_key:
|
100
104
|
specification_version: 4
|
101
105
|
summary: Small library to easily make objects that transform input via many methods.
|
@@ -104,5 +108,3 @@ test_files:
|
|
104
108
|
- spec/spec_helper.rb
|
105
109
|
- spec/windcharger/attributes_spec.rb
|
106
110
|
- spec/windcharger/hash_transformer_spec.rb
|
107
|
-
- spec/windcharger_spec.rb
|
108
|
-
has_rdoc:
|
data/spec/windcharger_spec.rb
DELETED
File without changes
|