windcharger 0.3.0 → 0.4.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: 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