reactive_support 0.1.3.beta2 → 0.1.3.beta4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|