active_interaction 1.3.0 → 1.3.1

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
2
  SHA1:
3
- metadata.gz: 20cc4b1b768b7f7dddca393b9554a664bb23010a
4
- data.tar.gz: c746e003137672689025a54a9245330527088366
3
+ metadata.gz: 17c5f3f9d7839f69402b77687939e96072fb1d90
4
+ data.tar.gz: 825810914132a17a96ba6aabee8df1f9c86f5dc5
5
5
  SHA512:
6
- metadata.gz: 678d8066fa76930180a241ab069617a46d083ac2ca558a4cfee8cb4e6a76131e907ed486ddbd898be89d4f513c74a5799169ba556d24240deb9ad005748c7bcd
7
- data.tar.gz: ac3d346048c4744d9b2ca25f91b2f719d0b3fcec609671feaf94353e00d4717c147c6e9b47a669cf37d39d327b8c9352e4ac6f9f78cd8d3106235c44e5ede6d2
6
+ metadata.gz: e53ecbca6b68702b4fec258879193e776d82cc8d38ff55c9e8c0296ec8858a2d934a782f5f6ac89cbe21c07ad1e93315dd8069d51011e7da0afcc22151fd6f2f
7
+ data.tar.gz: b36c35ef30dad6c6d1c63af024a50c18b4a5ef474158a29a4c6cb7984338ae65e429ad968bffcc427bc608d27cde23b06802c55fb9ab57e38ca4999a051336a2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # [Master][]
2
2
 
3
+ # [1.3.1][] (2014-12-10)
4
+
5
+ ## Fixed
6
+
7
+ - [#235][]: Fix a bug that prevented custom translations from loading.
8
+ - [#224][]: Fix a bug that incorrectly inferred plural class names for filters
9
+ inside arrays.
10
+
3
11
  # [1.3.0][] (2014-08-15)
4
12
 
5
13
  ## Added
@@ -346,7 +354,8 @@
346
354
 
347
355
  - Initial release.
348
356
 
349
- [master]: https://github.com/orgsync/active_interaction/compare/v1.3.0...master
357
+ [master]: https://github.com/orgsync/active_interaction/compare/v1.3.1...master
358
+ [1.3.1]: https://github.com/orgsync/active_interaction/compare/v1.3.0...v1.3.1
350
359
  [1.3.0]: https://github.com/orgsync/active_interaction/compare/v1.2.5...v1.3.0
351
360
  [1.2.5]: https://github.com/orgsync/active_interaction/compare/v1.2.4...v1.2.5
352
361
  [1.2.4]: https://github.com/orgsync/active_interaction/compare/v1.2.3...v1.2.4
@@ -455,3 +464,5 @@
455
464
  [#203]: https://github.com/orgsync/active_interaction/issues/203
456
465
  [#206]: https://github.com/orgsync/active_interaction/issues/206
457
466
  [#207]: https://github.com/orgsync/active_interaction/issues/207
467
+ [#224]: https://github.com/orgsync/active_interaction/issues/224
468
+ [#235]: https://github.com/orgsync/active_interaction/issues/235
data/README.md CHANGED
@@ -24,19 +24,19 @@ This project uses [semantic versioning][13].
24
24
 
25
25
  Add it to your Gemfile:
26
26
 
27
- ```ruby
27
+ ``` ruby
28
28
  gem 'active_interaction', '~> 1.3'
29
29
  ```
30
30
 
31
31
  And then execute:
32
32
 
33
- ```sh
33
+ ``` sh
34
34
  $ bundle
35
35
  ```
36
36
 
37
37
  Or install it yourself with:
38
38
 
39
- ```sh
39
+ ``` sh
40
40
  $ gem install active_interaction
41
41
  ```
42
42
 
@@ -238,7 +238,7 @@ into `config/locales`. So, for example, let's say that (for whatever
238
238
  reason) you want to print out everything backwards. Simply add
239
239
  translations for ActiveInteraction to your `hsilgne` locale:
240
240
 
241
- ```yaml
241
+ ```ruby
242
242
  # config/locales/hsilgne.yml
243
243
  hsilgne:
244
244
  active_interaction:
@@ -281,15 +281,15 @@ ActiveInteraction is brought to you by [@AaronLasseigne][14] and
281
281
  work done in [Mutations][17].
282
282
 
283
283
  [0]: https://github.com/orgsync/active_interaction
284
- [1]: https://badge.fury.io/rb/active_interaction.svg
284
+ [1]: https://img.shields.io/gem/v/active_interaction.svg?style=flat
285
285
  [2]: http://rubygems.org/gems/active_interaction "Gem Version"
286
- [3]: https://travis-ci.org/orgsync/active_interaction.svg?branch=master
286
+ [3]: https://img.shields.io/travis/orgsync/active_interaction/master.svg?style=flat
287
287
  [4]: https://travis-ci.org/orgsync/active_interaction "Build Status"
288
- [5]: https://img.shields.io/coveralls/orgsync/active_interaction/master.svg
288
+ [5]: https://img.shields.io/coveralls/orgsync/active_interaction/master.svg?style=flat
289
289
  [6]: https://coveralls.io/r/orgsync/active_interaction?branch=master "Coverage Status"
290
- [7]: https://codeclimate.com/github/orgsync/active_interaction/badges/gpa.svg
290
+ [7]: https://img.shields.io/codeclimate/github/orgsync/active_interaction.svg?style=flat
291
291
  [8]: https://codeclimate.com/github/orgsync/active_interaction "Code Climate"
292
- [9]: https://gemnasium.com/orgsync/active_interaction.svg
292
+ [9]: https://img.shields.io/gemnasium/orgsync/active_interaction.svg?style=flat
293
293
  [10]: https://gemnasium.com/orgsync/active_interaction "Dependency Status"
294
294
  [11]: http://orgsync.github.io/active_interaction/
295
295
  [12]: http://rubydoc.info/github/orgsync/active_interaction
@@ -40,8 +40,8 @@ require 'active_interaction/base'
40
40
 
41
41
  require 'active_interaction/backports'
42
42
 
43
- I18n.load_path += Dir[File.expand_path(
44
- File.join(%w[active_interaction locale *.yml]), File.dirname(__FILE__))]
43
+ I18n.load_path.unshift(Dir[File.expand_path(
44
+ File.join(%w[active_interaction locale *.yml]), File.dirname(__FILE__))])
45
45
 
46
46
  # Manage application specific business logic.
47
47
  #
@@ -50,5 +50,5 @@ I18n.load_path += Dir[File.expand_path(
50
50
  #
51
51
  # @since 1.0.0
52
52
  #
53
- # @version 1.3.0
53
+ # @version 1.3.1
54
54
  module ActiveInteraction end
@@ -16,7 +16,7 @@ module ActiveInteraction
16
16
  # @yieldparam options [Hash]
17
17
  #
18
18
  # @return [Missable]
19
- def method_missing(slug, *args, &block)
19
+ def method_missing(slug, *args)
20
20
  return super unless (klass = filter(slug))
21
21
 
22
22
  options = args.last.is_a?(Hash) ? args.pop : {}
@@ -54,7 +54,6 @@ module ActiveInteraction
54
54
  private
55
55
 
56
56
  # @param slug [Symbol]
57
- # @param klass [Class]
58
57
  #
59
58
  # @return [Class]
60
59
  def register(slug)
@@ -173,7 +172,7 @@ module ActiveInteraction
173
172
 
174
173
  nil
175
174
  else
176
- fail InvalidValueError, "#{name}: #{value.inspect}"
175
+ fail InvalidValueError, "#{name}: #{describe(value)}"
177
176
  end
178
177
  end
179
178
 
@@ -196,6 +195,14 @@ module ActiveInteraction
196
195
 
197
196
  private
198
197
 
198
+ # @param value [Object]
199
+ # @return [String]
200
+ def describe(value)
201
+ value.inspect
202
+ rescue NoMethodError
203
+ "(Object doesn't support #inspect)"
204
+ end
205
+
199
206
  # @return [Object]
200
207
  def raw_default
201
208
  value = options.fetch(:default)
@@ -41,11 +41,11 @@ module ActiveInteraction
41
41
 
42
42
  def method_missing(*, &block)
43
43
  super do |klass, names, options|
44
- filter = klass.new(name, options, &block)
44
+ filter = klass.new(name.to_s.singularize.to_sym, options, &block)
45
45
 
46
46
  validate(filter, names)
47
47
 
48
- filters[name] = filter
48
+ filters[filter.name] = filter
49
49
  end
50
50
  end
51
51
 
@@ -5,5 +5,5 @@ module ActiveInteraction
5
5
  # The version number.
6
6
  #
7
7
  # @return [Gem::Version]
8
- VERSION = Gem::Version.new('1.3.0')
8
+ VERSION = Gem::Version.new('1.3.1')
9
9
  end
@@ -83,6 +83,24 @@ describe ActiveInteraction::ArrayFilter, :filter do
83
83
  end
84
84
  end
85
85
  end
86
+
87
+ context 'with a nested model filter' do
88
+ let(:block) { proc { model } }
89
+ let(:name) { :objects }
90
+ let(:value) { [Object.new] }
91
+
92
+ it 'does not raise an error' do
93
+ expect { result }.to_not raise_error
94
+ end
95
+
96
+ it 'has a filter with the right key' do
97
+ expect(filter.filters).to have_key(:object)
98
+ end
99
+
100
+ it 'has a filter with the right name' do
101
+ expect(filter.filters[:object].name).to eql(:object)
102
+ end
103
+ end
86
104
  end
87
105
 
88
106
  describe '#database_column_type' do
@@ -13,6 +13,14 @@ describe ActiveInteraction::InterfaceFilter, :filter do
13
13
  describe '#cast' do
14
14
  let(:result) { filter.cast(value) }
15
15
 
16
+ context 'with a BasicObject' do
17
+ let(:value) { BasicObject.new }
18
+
19
+ it 'raises an error' do
20
+ expect { result }.to raise_error ActiveInteraction::InvalidValueError
21
+ end
22
+ end
23
+
16
24
  context 'with an Object' do
17
25
  let(:value) { Object.new }
18
26
 
@@ -28,7 +28,9 @@ describe ActiveInteraction::TimeFilter, :filter do
28
28
  end
29
29
 
30
30
  it 'raises an error' do
31
- expect { filter }.to raise_error(ActiveInteraction::InvalidFilterError)
31
+ expect do
32
+ filter
33
+ end.to raise_error(ActiveInteraction::InvalidFilterError)
32
34
  end
33
35
  end
34
36
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_interaction
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Lasseigne
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-08-15 00:00:00.000000000 Z
12
+ date: 2014-12-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
@@ -88,75 +88,75 @@ dependencies:
88
88
  - !ruby/object:Gem::Version
89
89
  version: '1.1'
90
90
  - !ruby/object:Gem::Dependency
91
- name: rake
91
+ name: kramdown
92
92
  requirement: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ~>
95
95
  - !ruby/object:Gem::Version
96
- version: '10.3'
96
+ version: '1.5'
97
97
  type: :development
98
98
  prerelease: false
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ~>
102
102
  - !ruby/object:Gem::Version
103
- version: '10.3'
103
+ version: '1.5'
104
104
  - !ruby/object:Gem::Dependency
105
- name: rdoc
105
+ name: rake
106
106
  requirement: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ~>
109
109
  - !ruby/object:Gem::Version
110
- version: '4.1'
110
+ version: '10.3'
111
111
  type: :development
112
112
  prerelease: false
113
113
  version_requirements: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ~>
116
116
  - !ruby/object:Gem::Version
117
- version: '4.1'
117
+ version: '10.3'
118
118
  - !ruby/object:Gem::Dependency
119
- name: rubocop
119
+ name: rspec
120
120
  requirement: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '='
122
+ - - ~>
123
123
  - !ruby/object:Gem::Version
124
- version: 0.24.1
124
+ version: '3.1'
125
125
  type: :development
126
126
  prerelease: false
127
127
  version_requirements: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '='
129
+ - - ~>
130
130
  - !ruby/object:Gem::Version
131
- version: 0.24.1
131
+ version: '3.1'
132
132
  - !ruby/object:Gem::Dependency
133
- name: yard
133
+ name: rubocop
134
134
  requirement: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - ~>
137
137
  - !ruby/object:Gem::Version
138
- version: '0.8'
138
+ version: '0.28'
139
139
  type: :development
140
140
  prerelease: false
141
141
  version_requirements: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ~>
144
144
  - !ruby/object:Gem::Version
145
- version: '0.8'
145
+ version: '0.28'
146
146
  - !ruby/object:Gem::Dependency
147
- name: rspec
147
+ name: yard
148
148
  requirement: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - '='
150
+ - - ~>
151
151
  - !ruby/object:Gem::Version
152
- version: 3.0.0
152
+ version: '0.8'
153
153
  type: :development
154
154
  prerelease: false
155
155
  version_requirements: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - '='
157
+ - - ~>
158
158
  - !ruby/object:Gem::Version
159
- version: 3.0.0
159
+ version: '0.8'
160
160
  description: Manage application specific business logic.
161
161
  email:
162
162
  - aaron.lasseigne@gmail.com
@@ -165,6 +165,10 @@ executables: []
165
165
  extensions: []
166
166
  extra_rdoc_files: []
167
167
  files:
168
+ - CHANGELOG.md
169
+ - LICENSE.txt
170
+ - README.md
171
+ - lib/active_interaction.rb
168
172
  - lib/active_interaction/backports.rb
169
173
  - lib/active_interaction/base.rb
170
174
  - lib/active_interaction/concerns/active_modelable.rb
@@ -193,10 +197,10 @@ files:
193
197
  - lib/active_interaction/filters/symbol_filter.rb
194
198
  - lib/active_interaction/filters/time_filter.rb
195
199
  - lib/active_interaction/grouped_input.rb
200
+ - lib/active_interaction/locale/en.yml
196
201
  - lib/active_interaction/modules/input_processor.rb
197
202
  - lib/active_interaction/modules/validation.rb
198
203
  - lib/active_interaction/version.rb
199
- - lib/active_interaction.rb
200
204
  - spec/active_interaction/base_spec.rb
201
205
  - spec/active_interaction/concerns/active_modelable_spec.rb
202
206
  - spec/active_interaction/concerns/hashable_spec.rb
@@ -244,10 +248,6 @@ files:
244
248
  - spec/support/concerns.rb
245
249
  - spec/support/filters.rb
246
250
  - spec/support/interactions.rb
247
- - CHANGELOG.md
248
- - LICENSE.txt
249
- - README.md
250
- - lib/active_interaction/locale/en.yml
251
251
  homepage: http://orgsync.github.io/active_interaction/
252
252
  licenses:
253
253
  - MIT
@@ -268,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
268
268
  version: '0'
269
269
  requirements: []
270
270
  rubyforge_project:
271
- rubygems_version: 2.0.14
271
+ rubygems_version: 2.4.4
272
272
  signing_key:
273
273
  specification_version: 4
274
274
  summary: Manage application specific business logic.