transproc 1.0.3 → 1.1.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 +4 -4
- data/.codeclimate.yml +15 -0
- data/.gitignore +3 -0
- data/.travis.yml +10 -10
- data/CHANGELOG.md +14 -2
- data/Gemfile +5 -17
- data/lib/transproc.rb +3 -4
- data/lib/transproc/all.rb +2 -0
- data/lib/transproc/array.rb +2 -0
- data/lib/transproc/array/combine.rb +2 -0
- data/lib/transproc/class.rb +2 -0
- data/lib/transproc/coercions.rb +2 -0
- data/lib/transproc/compiler.rb +45 -0
- data/lib/transproc/composer.rb +2 -0
- data/lib/transproc/composite.rb +2 -0
- data/lib/transproc/conditional.rb +2 -0
- data/lib/transproc/constants.rb +5 -0
- data/lib/transproc/error.rb +2 -0
- data/lib/transproc/function.rb +2 -0
- data/lib/transproc/functions.rb +2 -0
- data/lib/transproc/hash.rb +31 -0
- data/lib/transproc/proc.rb +2 -0
- data/lib/transproc/recursion.rb +2 -0
- data/lib/transproc/registry.rb +1 -0
- data/lib/transproc/store.rb +1 -0
- data/lib/transproc/support/deprecations.rb +2 -0
- data/lib/transproc/transformer.rb +7 -1
- data/lib/transproc/transformer/class_interface.rb +31 -65
- data/lib/transproc/transformer/deprecated/class_interface.rb +80 -0
- data/lib/transproc/transformer/dsl.rb +51 -0
- data/lib/transproc/version.rb +3 -1
- data/spec/spec_helper.rb +5 -7
- data/spec/unit/array/combine_spec.rb +3 -1
- data/spec/unit/array_transformations_spec.rb +1 -1
- data/spec/unit/class_transformations_spec.rb +9 -6
- data/spec/unit/coercions_spec.rb +1 -1
- data/spec/unit/composer_spec.rb +1 -1
- data/spec/unit/conditional_spec.rb +1 -1
- data/spec/unit/function_not_found_error_spec.rb +1 -1
- data/spec/unit/function_spec.rb +1 -1
- data/spec/unit/hash_transformations_spec.rb +12 -1
- data/spec/unit/proc_transformations_spec.rb +3 -1
- data/spec/unit/recursion_spec.rb +1 -1
- data/spec/unit/registry_spec.rb +1 -1
- data/spec/unit/store_spec.rb +2 -1
- data/spec/unit/transformer/class_interface_spec.rb +364 -0
- data/spec/unit/transformer/dsl_spec.rb +15 -0
- data/spec/unit/transformer/instance_methods_spec.rb +25 -0
- data/spec/unit/transformer_spec.rb +128 -40
- data/spec/unit/transproc_spec.rb +1 -1
- data/transproc.gemspec +0 -4
- metadata +15 -53
- data/.rubocop.yml +0 -66
- data/.rubocop_todo.yml +0 -11
- data/rakelib/mutant.rake +0 -16
- data/rakelib/rubocop.rake +0 -18
- data/spec/support/mutant.rb +0 -10
| @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            RSpec.describe Transproc::Transformer do
         | 
| 2 | 
            +
              let(:container) { Module.new { extend Transproc::Registry } }
         | 
| 3 | 
            +
              let(:klass) { Transproc::Transformer[container] }
         | 
| 4 | 
            +
              let(:transformer) { klass.new }
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              context 'when invalid method is used' do
         | 
| 7 | 
            +
                it 'raises an error on initialization' do
         | 
| 8 | 
            +
                  klass.define! do
         | 
| 9 | 
            +
                    not_valid
         | 
| 10 | 
            +
                  end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  expect { klass.new }.to raise_error(Transproc::Compiler::InvalidFunctionNameError, /not_valid/)
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
            end
         | 
| @@ -0,0 +1,25 @@ | |
| 1 | 
            +
            RSpec.describe Transproc::Transformer, 'instance methods' do
         | 
| 2 | 
            +
              subject(:transformer) do
         | 
| 3 | 
            +
                Class.new(Transproc::Transformer[registry]) do
         | 
| 4 | 
            +
                  define! do
         | 
| 5 | 
            +
                    map_array(&:capitalize)
         | 
| 6 | 
            +
                  end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  def capitalize(input)
         | 
| 9 | 
            +
                    input.upcase
         | 
| 10 | 
            +
                  end
         | 
| 11 | 
            +
                end.new
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              let(:registry) do
         | 
| 15 | 
            +
                Module.new do
         | 
| 16 | 
            +
                  extend Transproc::Registry
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                  import Transproc::ArrayTransformations
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              it 'registers a new transformation function' do
         | 
| 23 | 
            +
                expect(transformer.call(%w[foo bar])).to eql(%w[FOO BAR])
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
            end
         | 
| @@ -1,4 +1,7 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'ostruct'
         | 
| 4 | 
            +
            require 'dry/equalizer'
         | 
| 2 5 |  | 
| 3 6 | 
             
            describe Transproc::Transformer do
         | 
| 4 7 | 
             
              let(:container) { Module.new { extend Transproc::Registry } }
         | 
| @@ -6,23 +9,76 @@ describe Transproc::Transformer do | |
| 6 9 | 
             
              let(:transformer) { klass.new }
         | 
| 7 10 |  | 
| 8 11 | 
             
              describe '.container' do
         | 
| 9 | 
            -
                it  | 
| 12 | 
            +
                it 'returns the configured container' do
         | 
| 13 | 
            +
                  expect(klass.container).to be(container)
         | 
| 14 | 
            +
                end
         | 
| 10 15 |  | 
| 11 | 
            -
                context 'with  | 
| 12 | 
            -
                  let(: | 
| 16 | 
            +
                context 'with setter argument' do
         | 
| 17 | 
            +
                  let(:container) { double(:custom_container) }
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                  it 'sets and returns the container' do
         | 
| 20 | 
            +
                    klass.container(container)
         | 
| 13 21 |  | 
| 14 | 
            -
             | 
| 15 | 
            -
                    message = 'Transformer function registry is empty. '\
         | 
| 16 | 
            -
                              'Provide your registry via Transproc::Transformer[YourRegistry]'
         | 
| 17 | 
            -
                    expect { klass.container }.to raise_error(ArgumentError, message)
         | 
| 22 | 
            +
                    expect(klass.container).to be(container)
         | 
| 18 23 | 
             
                  end
         | 
| 19 24 | 
             
                end
         | 
| 25 | 
            +
              end
         | 
| 20 26 |  | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 27 | 
            +
              describe '.method_missing' do
         | 
| 28 | 
            +
                context 'when the method name matches a registered function' do
         | 
| 29 | 
            +
                  it 'registers a transformation without args' do
         | 
| 30 | 
            +
                    container.import(Transproc::Coercions)
         | 
| 23 31 |  | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 32 | 
            +
                    func = klass.t(:to_string)
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                    result = klass.to_string
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                    expect(result).to eql(func)
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                  it 'registers a transformation with args' do
         | 
| 40 | 
            +
                    container.import(Transproc::HashTransformations)
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                    func = klass.t(:rename_keys, id: :user_id)
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                    result = klass.rename_keys(id: :user_id)
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                    expect(result).to eql(func)
         | 
| 47 | 
            +
                  end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                  it 'registers a transformation with a block' do
         | 
| 50 | 
            +
                    container.import(Transproc::ArrayTransformations)
         | 
| 51 | 
            +
                    container.import(Transproc::HashTransformations)
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                    func = klass.t(:map_array, klass.t(:rename_keys, id: :user_id))
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                    result = klass.map_array { rename_keys(id: :user_id) }
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                    expect(result).to eql(func)
         | 
| 58 | 
            +
                  end
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                  it 'registers a transformation with args and a block' do
         | 
| 61 | 
            +
                    container.import(Transproc::HashTransformations)
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                    func = klass.t(:map_value, :user, klass.t(:rename_keys, id: :user_id))
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                    result = klass.map_value(:user) { rename_keys(id: :user_id) }
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                    expect(result).to eql(func)
         | 
| 68 | 
            +
                  end
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                  it 'works with #method' do
         | 
| 71 | 
            +
                    container.import(Transproc::Coercions)
         | 
| 72 | 
            +
             | 
| 73 | 
            +
                    func = klass.t(:to_string)
         | 
| 74 | 
            +
             | 
| 75 | 
            +
                    expect(klass.method(:to_string).()).to eql(func)
         | 
| 76 | 
            +
                  end
         | 
| 77 | 
            +
                end
         | 
| 78 | 
            +
             | 
| 79 | 
            +
                context 'when the method name does not match any registered function' do
         | 
| 80 | 
            +
                  it 'raises NoMethodError' do
         | 
| 81 | 
            +
                    expect { klass.not_here }.to raise_error(NoMethodError, /not_here/)
         | 
| 26 82 | 
             
                  end
         | 
| 27 83 | 
             
                end
         | 
| 28 84 | 
             
              end
         | 
| @@ -37,11 +93,13 @@ describe Transproc::Transformer do | |
| 37 93 | 
             
                    end
         | 
| 38 94 | 
             
                  end
         | 
| 39 95 | 
             
                end
         | 
| 96 | 
            +
             | 
| 40 97 | 
             
                let(:superclass) do
         | 
| 41 98 | 
             
                  Class.new(Transproc::Transformer[container]) do
         | 
| 42 99 | 
             
                    arbitrary ->(v) { v + 1 }
         | 
| 43 100 | 
             
                  end
         | 
| 44 101 | 
             
                end
         | 
| 102 | 
            +
             | 
| 45 103 | 
             
                let(:subclass) do
         | 
| 46 104 | 
             
                  Class.new(superclass) do
         | 
| 47 105 | 
             
                    arbitrary ->(v) { v * 2 }
         | 
| @@ -49,38 +107,53 @@ describe Transproc::Transformer do | |
| 49 107 | 
             
                end
         | 
| 50 108 |  | 
| 51 109 | 
             
                it 'inherits container from superclass' do
         | 
| 52 | 
            -
                  expect(subclass.container).to  | 
| 110 | 
            +
                  expect(subclass.container).to be(superclass.container)
         | 
| 53 111 | 
             
                end
         | 
| 54 112 |  | 
| 55 | 
            -
                it ' | 
| 56 | 
            -
                  expect(superclass.new.call(2)).to  | 
| 57 | 
            -
                  expect(subclass.new.call(2)).to  | 
| 113 | 
            +
                it 'inherits transproc from superclass' do
         | 
| 114 | 
            +
                  expect(superclass.new.call(2)).to be(3)
         | 
| 115 | 
            +
                  expect(subclass.new.call(2)).to be(6)
         | 
| 58 116 | 
             
                end
         | 
| 59 117 | 
             
              end
         | 
| 60 118 |  | 
| 61 119 | 
             
              describe '.[]' do
         | 
| 120 | 
            +
                subject(:subclass) { klass[another_container] }
         | 
| 121 | 
            +
             | 
| 62 122 | 
             
                let(:another_container) { double('Transproc') }
         | 
| 63 123 |  | 
| 64 | 
            -
                 | 
| 124 | 
            +
                it 'sets a container' do
         | 
| 125 | 
            +
                  expect(subclass.container).to be(another_container)
         | 
| 126 | 
            +
                end
         | 
| 65 127 |  | 
| 66 | 
            -
                it  | 
| 67 | 
            -
             | 
| 68 | 
            -
                 | 
| 128 | 
            +
                it 'returns a class' do
         | 
| 129 | 
            +
                  expect(subclass).to be_a(Class)
         | 
| 130 | 
            +
                end
         | 
| 131 | 
            +
             | 
| 132 | 
            +
                it 'creates a subclass of Transformer' do
         | 
| 133 | 
            +
                  expect(subclass).to be < Transproc::Transformer
         | 
| 134 | 
            +
                end
         | 
| 69 135 |  | 
| 70 136 | 
             
                it 'does not change super class' do
         | 
| 71 | 
            -
                  expect(klass.container).to  | 
| 137 | 
            +
                  expect(klass.container).to be(container)
         | 
| 138 | 
            +
                end
         | 
| 139 | 
            +
             | 
| 140 | 
            +
                it 'does not inherit transproc' do
         | 
| 141 | 
            +
                  expect(klass[container].transproc).to be_nil
         | 
| 72 142 | 
             
                end
         | 
| 73 143 |  | 
| 74 144 | 
             
                context 'with predefined transformer' do
         | 
| 75 145 | 
             
                  let(:klass) do
         | 
| 76 | 
            -
                    Class.new(Transproc::Transformer) do
         | 
| 146 | 
            +
                    Class.new(Transproc::Transformer[container]) do
         | 
| 147 | 
            +
                      container.import Transproc::Coercions
         | 
| 148 | 
            +
                      container.import Transproc::HashTransformations
         | 
| 149 | 
            +
             | 
| 77 150 | 
             
                      map_value :attr, t(:to_symbol)
         | 
| 78 151 | 
             
                    end
         | 
| 79 152 | 
             
                  end
         | 
| 80 | 
            -
                end
         | 
| 81 153 |  | 
| 82 | 
            -
             | 
| 83 | 
            -
             | 
| 154 | 
            +
                  it "inherits parent's transproc" do
         | 
| 155 | 
            +
                    expect(klass[container].transproc).to eql(klass.transproc)
         | 
| 156 | 
            +
                  end
         | 
| 84 157 | 
             
                end
         | 
| 85 158 | 
             
              end
         | 
| 86 159 |  | 
| @@ -96,12 +169,14 @@ describe Transproc::Transformer do | |
| 96 169 | 
             
                    end
         | 
| 97 170 | 
             
                  end
         | 
| 98 171 | 
             
                end
         | 
| 172 | 
            +
             | 
| 99 173 | 
             
                let(:klass) { Transproc::Transformer[container] }
         | 
| 100 174 |  | 
| 101 175 | 
             
                it 'defines anonymous transproc' do
         | 
| 102 176 | 
             
                  transproc = klass.define do
         | 
| 103 177 | 
             
                    map_value(:attr, t(:to_symbol))
         | 
| 104 178 | 
             
                  end
         | 
| 179 | 
            +
             | 
| 105 180 | 
             
                  expect(transproc[attr: 'abc']).to eq(attr: :abc)
         | 
| 106 181 | 
             
                end
         | 
| 107 182 |  | 
| @@ -109,6 +184,7 @@ describe Transproc::Transformer do | |
| 109 184 | 
             
                  transproc = klass.build do
         | 
| 110 185 | 
             
                    map_value(:attr, t(:to_symbol))
         | 
| 111 186 | 
             
                  end
         | 
| 187 | 
            +
             | 
| 112 188 | 
             
                  expect(transproc[attr: 'abc']).to eq(attr: :abc)
         | 
| 113 189 | 
             
                end
         | 
| 114 190 |  | 
| @@ -116,6 +192,7 @@ describe Transproc::Transformer do | |
| 116 192 | 
             
                  klass.define do
         | 
| 117 193 | 
             
                    map_value(:attr, :to_sym.to_proc)
         | 
| 118 194 | 
             
                  end
         | 
| 195 | 
            +
             | 
| 119 196 | 
             
                  expect(klass.transproc).to be_nil
         | 
| 120 197 | 
             
                end
         | 
| 121 198 |  | 
| @@ -129,12 +206,14 @@ describe Transproc::Transformer do | |
| 129 206 | 
             
                      end
         | 
| 130 207 | 
             
                    end
         | 
| 131 208 | 
             
                  end
         | 
| 209 | 
            +
             | 
| 132 210 | 
             
                  let(:klass) { described_class[container] }
         | 
| 133 211 |  | 
| 134 212 | 
             
                  it 'uses a container from the transformer' do
         | 
| 135 213 | 
             
                    transproc = klass.define do
         | 
| 136 214 | 
             
                      arbitrary ->(v) { v + 1 }
         | 
| 137 215 | 
             
                    end
         | 
| 216 | 
            +
             | 
| 138 217 | 
             
                    expect(transproc.call(2)).to eq 3
         | 
| 139 218 | 
             
                  end
         | 
| 140 219 | 
             
                end
         | 
| @@ -155,12 +234,15 @@ describe Transproc::Transformer do | |
| 155 234 | 
             
                    transproc = klass.define do
         | 
| 156 235 | 
             
                      map_value :attr, ->(v) { v * 2 }
         | 
| 157 236 | 
             
                    end
         | 
| 237 | 
            +
             | 
| 158 238 | 
             
                    expect(transproc.call(attr: 2)).to eq(attr: 4)
         | 
| 159 239 | 
             
                  end
         | 
| 160 240 | 
             
                end
         | 
| 161 241 | 
             
              end
         | 
| 162 242 |  | 
| 163 243 | 
             
              describe '.t' do
         | 
| 244 | 
            +
                subject(:klass) { Transproc::Transformer[container] }
         | 
| 245 | 
            +
             | 
| 164 246 | 
             
                let(:container) do
         | 
| 165 247 | 
             
                  Module.new do
         | 
| 166 248 | 
             
                    extend Transproc::Registry
         | 
| @@ -174,9 +256,9 @@ describe Transproc::Transformer do | |
| 174 256 | 
             
                  end
         | 
| 175 257 | 
             
                end
         | 
| 176 258 |  | 
| 177 | 
            -
                 | 
| 178 | 
            -
             | 
| 179 | 
            -
                 | 
| 259 | 
            +
                it 'returns a registed function' do
         | 
| 260 | 
            +
                  expect(klass.t(:custom, '_bar')).to eql(container[:custom, '_bar'])
         | 
| 261 | 
            +
                end
         | 
| 180 262 |  | 
| 181 263 | 
             
                it 'is useful in DSL' do
         | 
| 182 264 | 
             
                  transproc = Class.new(klass) do
         | 
| @@ -214,13 +296,16 @@ describe Transproc::Transformer do | |
| 214 296 | 
             
                      symbolize_keys
         | 
| 215 297 | 
             
                      rename_keys user_name: :name
         | 
| 216 298 | 
             
                      nest :address, [:city, :street, :zipcode]
         | 
| 299 | 
            +
             | 
| 217 300 | 
             
                      map_value :address do
         | 
| 218 301 | 
             
                        constructor_inject Test::Address
         | 
| 219 302 | 
             
                      end
         | 
| 303 | 
            +
             | 
| 220 304 | 
             
                      constructor_inject Test::User
         | 
| 221 305 | 
             
                    end
         | 
| 222 306 | 
             
                  end
         | 
| 223 307 | 
             
                end
         | 
| 308 | 
            +
             | 
| 224 309 | 
             
                let(:input) do
         | 
| 225 310 | 
             
                  [
         | 
| 226 311 | 
             
                    { 'user_name' => 'Jane',
         | 
| @@ -230,7 +315,8 @@ describe Transproc::Transformer do | |
| 230 315 | 
             
                    }
         | 
| 231 316 | 
             
                  ]
         | 
| 232 317 | 
             
                end
         | 
| 233 | 
            -
             | 
| 318 | 
            +
             | 
| 319 | 
            +
                let(:expected_output) do
         | 
| 234 320 | 
             
                  [
         | 
| 235 321 | 
             
                    Test::User.new(
         | 
| 236 322 | 
             
                      name: 'Jane',
         | 
| @@ -245,38 +331,40 @@ describe Transproc::Transformer do | |
| 245 331 |  | 
| 246 332 | 
             
                before do
         | 
| 247 333 | 
             
                  module Test
         | 
| 248 | 
            -
                    class User
         | 
| 249 | 
            -
                      include  | 
| 334 | 
            +
                    class User < OpenStruct
         | 
| 335 | 
            +
                      include Dry::Equalizer(:name, :address)
         | 
| 250 336 | 
             
                    end
         | 
| 251 337 |  | 
| 252 | 
            -
                    class Address
         | 
| 253 | 
            -
                      include  | 
| 338 | 
            +
                    class Address < OpenStruct
         | 
| 339 | 
            +
                      include Dry::Equalizer(:city, :street, :zipcode)
         | 
| 254 340 | 
             
                    end
         | 
| 255 341 | 
             
                  end
         | 
| 256 342 | 
             
                end
         | 
| 257 343 |  | 
| 258 | 
            -
                 | 
| 259 | 
            -
             | 
| 260 | 
            -
                 | 
| 344 | 
            +
                it "transforms input" do
         | 
| 345 | 
            +
                  expect(transformer.(input)).to eql(expected_output)
         | 
| 346 | 
            +
                end
         | 
| 261 347 |  | 
| 262 348 | 
             
                context 'with custom registry' do
         | 
| 263 349 | 
             
                  let(:klass) do
         | 
| 264 350 | 
             
                    Class.new(Transproc::Transformer[registry]) do
         | 
| 265 | 
            -
                       | 
| 351 | 
            +
                      append ' is awesome'
         | 
| 266 352 | 
             
                    end
         | 
| 267 353 | 
             
                  end
         | 
| 354 | 
            +
             | 
| 268 355 | 
             
                  let(:registry) do
         | 
| 269 356 | 
             
                    Module.new do
         | 
| 270 357 | 
             
                      extend Transproc::Registry
         | 
| 271 358 |  | 
| 272 | 
            -
                      def self. | 
| 359 | 
            +
                      def self.append(value, suffix)
         | 
| 273 360 | 
             
                        value + suffix
         | 
| 274 361 | 
             
                      end
         | 
| 275 362 | 
             
                    end
         | 
| 276 363 | 
             
                  end
         | 
| 277 | 
            -
                  let(:input) { 'transproc' }
         | 
| 278 364 |  | 
| 279 | 
            -
                  it  | 
| 365 | 
            +
                  it 'uses custom functions' do
         | 
| 366 | 
            +
                    expect(transformer.('transproc')).to eql('transproc is awesome')
         | 
| 367 | 
            +
                  end
         | 
| 280 368 | 
             
                end
         | 
| 281 369 | 
             
              end
         | 
| 282 370 | 
             
            end
         | 
    
        data/spec/unit/transproc_spec.rb
    CHANGED
    
    
    
        data/transproc.gemspec
    CHANGED
    
    | @@ -17,8 +17,4 @@ Gem::Specification.new do |spec| | |
| 17 17 | 
             
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         | 
| 18 18 | 
             
              spec.require_paths = ['lib']
         | 
| 19 19 | 
             
              spec.required_ruby_version = '>= 2.3.0'
         | 
| 20 | 
            -
             | 
| 21 | 
            -
              spec.add_development_dependency 'bundler', '~> 1.7'
         | 
| 22 | 
            -
              spec.add_development_dependency 'rake', '~> 10.0'
         | 
| 23 | 
            -
              spec.add_development_dependency 'rspec', '~> 3.3'
         | 
| 24 20 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,57 +1,15 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: transproc
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0 | 
| 4 | 
            +
              version: 1.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Piotr Solnica
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 12 | 
            -
            dependencies:
         | 
| 13 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            -
              name: bundler
         | 
| 15 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            -
                requirements:
         | 
| 17 | 
            -
                - - "~>"
         | 
| 18 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: '1.7'
         | 
| 20 | 
            -
              type: :development
         | 
| 21 | 
            -
              prerelease: false
         | 
| 22 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            -
                requirements:
         | 
| 24 | 
            -
                - - "~>"
         | 
| 25 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: '1.7'
         | 
| 27 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            -
              name: rake
         | 
| 29 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            -
                requirements:
         | 
| 31 | 
            -
                - - "~>"
         | 
| 32 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version: '10.0'
         | 
| 34 | 
            -
              type: :development
         | 
| 35 | 
            -
              prerelease: false
         | 
| 36 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            -
                requirements:
         | 
| 38 | 
            -
                - - "~>"
         | 
| 39 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version: '10.0'
         | 
| 41 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            -
              name: rspec
         | 
| 43 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            -
                requirements:
         | 
| 45 | 
            -
                - - "~>"
         | 
| 46 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: '3.3'
         | 
| 48 | 
            -
              type: :development
         | 
| 49 | 
            -
              prerelease: false
         | 
| 50 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            -
                requirements:
         | 
| 52 | 
            -
                - - "~>"
         | 
| 53 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version: '3.3'
         | 
| 11 | 
            +
            date: 2019-07-18 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies: []
         | 
| 55 13 | 
             
            description: Transform Ruby objects in functional style
         | 
| 56 14 | 
             
            email:
         | 
| 57 15 | 
             
            - piotr.solnica@gmail.com
         | 
| @@ -59,10 +17,9 @@ executables: [] | |
| 59 17 | 
             
            extensions: []
         | 
| 60 18 | 
             
            extra_rdoc_files: []
         | 
| 61 19 | 
             
            files:
         | 
| 20 | 
            +
            - ".codeclimate.yml"
         | 
| 62 21 | 
             
            - ".gitignore"
         | 
| 63 22 | 
             
            - ".rspec"
         | 
| 64 | 
            -
            - ".rubocop.yml"
         | 
| 65 | 
            -
            - ".rubocop_todo.yml"
         | 
| 66 23 | 
             
            - ".travis.yml"
         | 
| 67 24 | 
             
            - CHANGELOG.md
         | 
| 68 25 | 
             
            - Gemfile
         | 
| @@ -76,9 +33,11 @@ files: | |
| 76 33 | 
             
            - lib/transproc/array/combine.rb
         | 
| 77 34 | 
             
            - lib/transproc/class.rb
         | 
| 78 35 | 
             
            - lib/transproc/coercions.rb
         | 
| 36 | 
            +
            - lib/transproc/compiler.rb
         | 
| 79 37 | 
             
            - lib/transproc/composer.rb
         | 
| 80 38 | 
             
            - lib/transproc/composite.rb
         | 
| 81 39 | 
             
            - lib/transproc/conditional.rb
         | 
| 40 | 
            +
            - lib/transproc/constants.rb
         | 
| 82 41 | 
             
            - lib/transproc/error.rb
         | 
| 83 42 | 
             
            - lib/transproc/function.rb
         | 
| 84 43 | 
             
            - lib/transproc/functions.rb
         | 
| @@ -90,11 +49,10 @@ files: | |
| 90 49 | 
             
            - lib/transproc/support/deprecations.rb
         | 
| 91 50 | 
             
            - lib/transproc/transformer.rb
         | 
| 92 51 | 
             
            - lib/transproc/transformer/class_interface.rb
         | 
| 52 | 
            +
            - lib/transproc/transformer/deprecated/class_interface.rb
         | 
| 53 | 
            +
            - lib/transproc/transformer/dsl.rb
         | 
| 93 54 | 
             
            - lib/transproc/version.rb
         | 
| 94 | 
            -
            - rakelib/mutant.rake
         | 
| 95 | 
            -
            - rakelib/rubocop.rake
         | 
| 96 55 | 
             
            - spec/spec_helper.rb
         | 
| 97 | 
            -
            - spec/support/mutant.rb
         | 
| 98 56 | 
             
            - spec/unit/array/combine_spec.rb
         | 
| 99 57 | 
             
            - spec/unit/array_transformations_spec.rb
         | 
| 100 58 | 
             
            - spec/unit/class_transformations_spec.rb
         | 
| @@ -108,6 +66,9 @@ files: | |
| 108 66 | 
             
            - spec/unit/recursion_spec.rb
         | 
| 109 67 | 
             
            - spec/unit/registry_spec.rb
         | 
| 110 68 | 
             
            - spec/unit/store_spec.rb
         | 
| 69 | 
            +
            - spec/unit/transformer/class_interface_spec.rb
         | 
| 70 | 
            +
            - spec/unit/transformer/dsl_spec.rb
         | 
| 71 | 
            +
            - spec/unit/transformer/instance_methods_spec.rb
         | 
| 111 72 | 
             
            - spec/unit/transformer_spec.rb
         | 
| 112 73 | 
             
            - spec/unit/transproc_spec.rb
         | 
| 113 74 | 
             
            - transproc.gemspec
         | 
| @@ -130,14 +91,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 130 91 | 
             
                - !ruby/object:Gem::Version
         | 
| 131 92 | 
             
                  version: '0'
         | 
| 132 93 | 
             
            requirements: []
         | 
| 133 | 
            -
             | 
| 134 | 
            -
            rubygems_version: 2.7.6
         | 
| 94 | 
            +
            rubygems_version: 3.0.3
         | 
| 135 95 | 
             
            signing_key: 
         | 
| 136 96 | 
             
            specification_version: 4
         | 
| 137 97 | 
             
            summary: Transform Ruby objects in functional style
         | 
| 138 98 | 
             
            test_files:
         | 
| 139 99 | 
             
            - spec/spec_helper.rb
         | 
| 140 | 
            -
            - spec/support/mutant.rb
         | 
| 141 100 | 
             
            - spec/unit/array/combine_spec.rb
         | 
| 142 101 | 
             
            - spec/unit/array_transformations_spec.rb
         | 
| 143 102 | 
             
            - spec/unit/class_transformations_spec.rb
         | 
| @@ -151,5 +110,8 @@ test_files: | |
| 151 110 | 
             
            - spec/unit/recursion_spec.rb
         | 
| 152 111 | 
             
            - spec/unit/registry_spec.rb
         | 
| 153 112 | 
             
            - spec/unit/store_spec.rb
         | 
| 113 | 
            +
            - spec/unit/transformer/class_interface_spec.rb
         | 
| 114 | 
            +
            - spec/unit/transformer/dsl_spec.rb
         | 
| 115 | 
            +
            - spec/unit/transformer/instance_methods_spec.rb
         | 
| 154 116 | 
             
            - spec/unit/transformer_spec.rb
         | 
| 155 117 | 
             
            - spec/unit/transproc_spec.rb
         |