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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a25e071066657d28c05aee00abbf363591adc933
4
- data.tar.gz: 85e0f55db7a73ddb864c0ad12ddd15afa1b7f26b
2
+ SHA256:
3
+ metadata.gz: bd1a3adfed13628e9c3d3d73659a90eac37d24516a57f734cb1a246f6bcd69bd
4
+ data.tar.gz: 481f448a1a537d60e070a736a2b9fefa859153255c4eacb76cd2b60d35c23f6d
5
5
  SHA512:
6
- metadata.gz: 6dc1f09246efc3c02b452294a508645bee4d4ed82c5c95b29e8b445b3ff1cb6aeda7d08664373f3f1b5e9fd56fcc3abf76dd3ed0a558651defe7faae499d951a
7
- data.tar.gz: 80e3fb2d2adcfe3f22500a550842d2be1dd1bf8a5522275374121960ed3b82503e21a90ce9c75f2e2ce7d66eacddf05ecf5137225cd7edb026f6b2397be0496f
6
+ metadata.gz: 128b0fad0f4f588c0635ce4ca4dc11ff9b8e39df90d294363724e9a07f208e9f92e61afc9dcc69655c5d1d60e559a56faa241f7255549dbd8c980e5c5d31ad08
7
+ data.tar.gz: 0a7d7b46d26dd13a0dbd686a785efd15f8b8f8e1c235c201ea3238937cfd4b007b3bff27f3d8414d1e5d5f3bd8358171a9ca9048399aea24f47e1dd6160c9f70
data/.travis.yml CHANGED
@@ -1,7 +1,6 @@
1
+ ---
1
2
  language: ruby
2
3
  rvm:
3
- - 1.9.2
4
- - 1.9.3
5
- - 2.0.0
6
- - jruby-19mode
7
- - rbx-19mode
4
+ - 2.6.5
5
+ - 2.5.7
6
+ - jruby-9.2.8.0
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 windcharger.gemspec
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 J. Andrew Marshall <http://johnandrewmarshall.com>
1
+ Copyright (c) 2013-Present J. Andrew Marshall <http://johnandrewmarshall.com>
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,8 +1,7 @@
1
1
  # Windcharger
2
2
 
3
- [![Build Status](https://secure.travis-ci.org/amarshall/windcharger.png?branch=master)](https://travis-ci.org/amarshall/windcharger)
4
- [![Code Climate rating](https://codeclimate.com/github/amarshall/windcharger.png)](https://codeclimate.com/github/amarshall/windcharger)
5
- [![Gem Version](https://badge.fury.io/rb/windcharger.png)](https://rubygems.org/gems/windcharger)
3
+ [![Gem Version](https://badge.fury.io/rb/windcharger.svg)](https://rubygems.org/gems/windcharger)
4
+ [![Build Status](https://secure.travis-ci.org/amarshall/windcharger.svg?branch=master)](https://travis-ci.org/amarshall/windcharger)
6
5
 
7
6
  ![Windcharger mascot. He carries powerful magnets in his arms that he can use to manipulate large objects.](https://i.imgur.com/lApzHFP.jpg "He carries powerful magnets in his arms that he can use to manipulate large objects.")
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,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
 
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Windcharger
2
4
  module Attributes
3
5
  def attributes
4
- @__attributes || []
6
+ (@__attributes || []).dup.freeze
5
7
  end
6
8
 
7
9
  private
@@ -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] = send 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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Windcharger
2
- VERSION = '0.3.0'
4
+ VERSION = '0.4.0'
3
5
  end
data/lib/windcharger.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'windcharger/version'
2
4
 
3
5
  require 'windcharger/attributes'
data/spec/readme_spec.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
  require 'windcharger'
3
5
 
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.configure do |config|
2
4
  config.expect_with :rspec do |c|
3
5
  c.syntax = :expect
@@ -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
- # 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 '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', '~> 1.3'
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.3.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: 2014-02-18 00:00:00.000000000 Z
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
- rubyforge_project:
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:
File without changes