reactive_support 0.1.3.beta2 → 0.1.3.beta4
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/CONTRIBUTING.md +12 -0
- data/README.md +1 -1
- data/lib/extensions/array_extensions.rb +26 -0
- data/lib/extensions/reactive_extensions.rb +1 -1
- data/lib/reactive_support/core_ext/object/blank.rb +0 -13
- data/reactive_support.gemspec +1 -1
- data/spec/reactive_extensions_spec.rb +26 -1
- data/spec/spec_helper.rb +1 -1
- data/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 991c3b772cd39007b6c20e62aa1f36c09dd1aaa6
|
4
|
+
data.tar.gz: d4215aeae27ab97e9affea441894d10149110cd9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: baee1ff86bcd13000c1dd7e3479fea01d567bf7dedf4d91f1eeab7065b1b8c8990ae5eff0162a4bc9f8655f1baca6901e372c8ce6f9418aa9aa98aefe7f1e65d
|
7
|
+
data.tar.gz: fdf0688e33bd9d4009ebd0976fb09dd86ae7aec503597fcc541c2d6983560a182c56c94ed3602e450831a2fecbedbcbc0993b07eebed4a975d939b2efb1f5a13
|
data/CONTRIBUTING.md
CHANGED
@@ -40,6 +40,18 @@ Thank you for your contributions!
|
|
40
40
|
I'll consider all contributions, but the following would be
|
41
41
|
particularly helpful.
|
42
42
|
|
43
|
+
##### Issue Reports
|
44
|
+
Issue reports need not adhere to the rest of the contributing guidelines.
|
45
|
+
I welcome questions, problems, and feature requests (i.e., ActiveSupport
|
46
|
+
functionality you'd like to see in this gem) and will respond promptly in
|
47
|
+
most cases. When reporting a problem or bug, please include as much
|
48
|
+
information as possible, including the following:
|
49
|
+
* Version of ReactiveSupport and other tools in your project
|
50
|
+
* Version(s) of Ruby you're using or testing against
|
51
|
+
* Code samples and error messages you're getting
|
52
|
+
* What you have already tried
|
53
|
+
* Any additional information relevant to your particular problem
|
54
|
+
|
43
55
|
##### Bug fixes
|
44
56
|
If you find a bug affecting ReactiveSupport's interaction with other gems,
|
45
57
|
frameworks, tools, platforms, rubies, or environments, your issue report
|
data/README.md
CHANGED
@@ -20,7 +20,7 @@ If you would like to install an earlier version, you can specify that version's
|
|
20
20
|
using the standard branch naming scheme:
|
21
21
|
<pre><code>gem 'reactive_support', '~> 0.1.2', git: 'https://github.com/danascheider/reactive_support.git, branch: 'version-0.1.2'</code></pre>
|
22
22
|
|
23
|
-
Please note that version 0.1.2 is the earliest available version of ReactiveSupport.
|
23
|
+
Please note that version 0.1.2 is the earliest available version of ReactiveSupport, and is currently the only release labeled production ready.
|
24
24
|
|
25
25
|
### Usage
|
26
26
|
In its current version, ReactiveSupport adds methods to Ruby's `Object` class, so
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class Array
|
2
|
+
|
3
|
+
# The +#scope+ method is called on an array of hashes. It returns a sub-array
|
4
|
+
# including only hashes for which the given +key+ equals the given +value+.
|
5
|
+
# The +#scope+ method is non-destructive; the original array will remain intact
|
6
|
+
# after it is called. The +#scope+ method is known to work for string or symbol
|
7
|
+
# keys. It should work for other data type keys as well.
|
8
|
+
#
|
9
|
+
# Example:
|
10
|
+
# array = [
|
11
|
+
# { name: 'Jean-Paul Sartre', nationality: 'French' },
|
12
|
+
# { name: 'Bertrand Russell', nationality: 'English' },
|
13
|
+
# { name: 'Ludwig Wittgenstein', nationality: 'Austrian' },
|
14
|
+
# { name: 'Albert Camus', nationality: 'French' }
|
15
|
+
# ]
|
16
|
+
#
|
17
|
+
# array.scope(:nationality, 'French')
|
18
|
+
# # => [
|
19
|
+
# { name: 'Jean-Paul Sartre', nationality: 'French' },
|
20
|
+
# { name: 'Albert Camus', nationality: 'French' }
|
21
|
+
# ]
|
22
|
+
|
23
|
+
def scope(key, value)
|
24
|
+
self.reject {|hash| hash[key] != value }
|
25
|
+
end
|
26
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'reactive_support'
|
2
2
|
|
3
|
-
# The
|
3
|
+
# The ReactiveExtensions module consists of methods I wish ActiveSupport provided.
|
4
4
|
# These methods do not adhere to the ActiveSupport API. If you wish to include
|
5
5
|
# them in your project, you will need to put this in your main project file:
|
6
6
|
# require 'reactive_support/extensions'
|
@@ -2,19 +2,6 @@
|
|
2
2
|
# The +#blank?+ method returns +true+ if the object is undefined, blank, false,
|
3
3
|
# empty, or nil. The +#present?+ method returns the opposite of +#blank?+
|
4
4
|
|
5
|
-
class Object
|
6
|
-
|
7
|
-
# In general, +#blank?+ returns true if the receiving object is false, empty,
|
8
|
-
# or a whitespace string. This simplifies
|
9
|
-
# address.nil? || address.empty?
|
10
|
-
# to
|
11
|
-
# address.blank?
|
12
|
-
|
13
|
-
def blank?
|
14
|
-
respond_to? :empty? ? !!empty? : !self
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
5
|
# Ruby's core String class. See documentation for version
|
19
6
|
# 2.1.3[http://ruby-doc.org/core-2.1.3/String.html],
|
20
7
|
# 2.0.0[http://ruby-doc.org/core-2.1.3/String.html], or
|
data/reactive_support.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
|
9
9
|
s.name = 'reactive_support'
|
10
10
|
s.version = ReactiveSupport.gem_version
|
11
|
-
s.date = '2014-
|
11
|
+
s.date = '2014-11-17'
|
12
12
|
|
13
13
|
s.description = "ActiveSupport methods re-implemented independently of the Rails ecosystem"
|
14
14
|
s.summary = "ReactiveSupport provides useful ActiveSupport methods in a gem that is simple, stable, agnostic, and transparent."
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe ReactiveExtensions do
|
4
|
-
|
5
4
|
describe '#try_rescue method' do
|
6
5
|
context 'when self is nil' do
|
7
6
|
it 'returns nil' do
|
@@ -21,4 +20,30 @@ describe ReactiveExtensions do
|
|
21
20
|
end
|
22
21
|
end
|
23
22
|
end
|
23
|
+
|
24
|
+
describe 'array #scope method' do
|
25
|
+
context 'symbol keys' do
|
26
|
+
let(:sartre) { { name: 'Jean-Paul Sartre', nationality: 'French' } }
|
27
|
+
let(:russell) { { name: 'Bertrand Russell', nationality: 'English' } }
|
28
|
+
let(:wittgenstein) { { name: 'Ludwig Wittgenstein', nationality: 'Austrian' } }
|
29
|
+
let(:camus) { { name: 'Albert Camus', nationality: 'French' } }
|
30
|
+
let(:array) { [sartre, russell, wittgenstein, camus] }
|
31
|
+
|
32
|
+
it 'returns scoped hashes' do
|
33
|
+
expect(array.scope(:nationality, 'French')).to eql([sartre, camus])
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context 'string keys' do
|
38
|
+
let(:sartre) { {'name' => 'Jean-Paul Sartre', 'nationality' => 'French' } }
|
39
|
+
let(:russell) { { 'name' => 'Bertrand Russell', 'nationality' => 'English' } }
|
40
|
+
let(:wittgenstein) { { 'name' => 'Ludwig Wittgenstein', 'nationality' => 'Austrian' } }
|
41
|
+
let(:camus) { { 'name' => 'Albert Camus', 'nationality' => 'French' } }
|
42
|
+
let(:array) { [sartre, russell, wittgenstein, camus] }
|
43
|
+
|
44
|
+
it 'returns scoped hashes' do
|
45
|
+
expect(array.scope('nationality', 'French')).to eql([sartre, camus])
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
24
49
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -10,7 +10,7 @@ SimpleCov.start if ENV["COVERAGE"]
|
|
10
10
|
Coveralls.wear!
|
11
11
|
|
12
12
|
require_relative '../lib/reactive_support'
|
13
|
-
|
13
|
+
Dir['./lib/extensions/**/*.rb'].each {|f| require f }
|
14
14
|
|
15
15
|
RSpec.configure do |c|
|
16
16
|
c.order = 'random'
|
data/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reactive_support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.3.
|
4
|
+
version: 0.1.3.beta4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dana Scheider
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -75,6 +75,7 @@ extra_rdoc_files:
|
|
75
75
|
- README.md
|
76
76
|
- LICENSE
|
77
77
|
files:
|
78
|
+
- "./lib/extensions/array_extensions.rb"
|
78
79
|
- "./lib/extensions/reactive_extensions.rb"
|
79
80
|
- "./lib/reactive_support.rb"
|
80
81
|
- "./lib/reactive_support/core_ext/array/access.rb"
|
@@ -127,4 +128,3 @@ specification_version: 1
|
|
127
128
|
summary: ReactiveSupport provides useful ActiveSupport methods in a gem that is simple,
|
128
129
|
stable, agnostic, and transparent.
|
129
130
|
test_files: []
|
130
|
-
has_rdoc: true
|