array_bit_mask 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8152dc967ac4aefec5e6b328f45dede5e29a055b
4
+ data.tar.gz: 96bdb564088a023a1335a8e13fc2b5ea1634df9d
5
+ SHA512:
6
+ metadata.gz: 281ad55df97ebf519729338221685e62ff1f0b00e88d29dbd0ce2d80dcfeaa5d817aa9b7f508d367b6d0d5c0dd03b36aa5048755a76bc7fedd4ebb2f61f86b03
7
+ data.tar.gz: 15975911d373a09ec07c20ddfcae67bc9b0b64340014353cdc1b8ffd3c49a318bf0a28fd9affffb21f300b9a5bd4b3cf063fc034ec7ded91a41f0254949384ab
data/.gitignore CHANGED
@@ -18,4 +18,6 @@ tmp
18
18
 
19
19
  .idea
20
20
  .rvmrc
21
- .rspec
21
+ .rspec
22
+ .ruby-gemset
23
+ .ruby-version
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # ArrayBitMask
2
2
 
3
+ [![Dependency Status](https://gemnasium.com/leschenko/array_bit_mask.png)](https://gemnasium.com/leschenko/array_bit_mask)
4
+
3
5
  Creates methods that accepts array of values and save them as bit mask to the attribute with an "_mask" suffix using specified source.
4
6
 
5
7
  ## Installation
@@ -17,7 +17,8 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = %w(lib)
19
19
 
20
+ gem.add_dependency 'activesupport'
21
+
20
22
  gem.add_development_dependency 'rake'
21
23
  gem.add_development_dependency 'rspec'
22
- gem.add_runtime_dependency 'activesupport'
23
24
  end
@@ -22,12 +22,12 @@ module ArrayBitMask
22
22
  def as_bit_mask(attr, options={})
23
23
  return 0 unless options[:source]
24
24
 
25
- options.reverse_merge!(:column => "#{attr}_mask")
25
+ options[:column] ||= "#{attr}_mask"
26
26
 
27
27
  define_method "#{attr}=" do |val|
28
28
  source = bit_mask_source_for(options[:source])
29
29
  values = val.map(&:to_sym) & source
30
- res = self.send("#{options[:column]}=", values.map { |a| 2**source.index(a) }.sum)
30
+ res = self.send("#{options[:column]}=", values.map { |a| 2**source.index(a) }.inject(:+))
31
31
  instance_variable_set("@#{attr}", values)
32
32
  end
33
33
 
@@ -1,3 +1,3 @@
1
1
  module ArrayBitMask
2
- VERSION = '0.0.3'
2
+ VERSION = '0.1.0'
3
3
  end
@@ -22,38 +22,38 @@ describe ArrayBitMask do
22
22
 
23
23
  it 'should store bit mask' do
24
24
  subject.colors = [:red, :white]
25
- subject.colors_mask.should eq(9)
25
+ expect(subject.colors_mask).to eq 9
26
26
  end
27
27
 
28
28
  it 'should restore array from bit mask' do
29
29
  subject.colors_mask = 6
30
- subject.colors.should =~ [:green, :black]
30
+ expect(subject.colors).to match_array [:green, :black]
31
31
  end
32
32
 
33
33
  it 'should return empty array for zero mask' do
34
34
  subject.colors_mask = 0
35
- subject.colors.should =~ []
35
+ expect(subject.colors).to eq []
36
36
  end
37
37
 
38
38
  it 'should store array' do
39
39
  subject.colors = []
40
- subject.colors.should eq([])
40
+ expect(subject.colors).to eq []
41
41
  end
42
42
 
43
43
  it 'should return empty array for nil mask' do
44
44
  subject.colors_mask = nil
45
- subject.colors.should =~ []
45
+ expect(subject.colors).to eq []
46
46
  end
47
47
 
48
48
  context 'source as array' do
49
49
  it 'should store bit mask' do
50
50
  subject.second_colors = [:red, :white]
51
- subject.second_colors_mask.should eq(9)
51
+ expect(subject.second_colors_mask).to eq 9
52
52
  end
53
53
 
54
54
  it 'should restore array from bit mask' do
55
55
  subject.second_colors_mask = 6
56
- subject.second_colors.should =~ [:green, :black]
56
+ expect(subject.second_colors).to match_array [:green, :black]
57
57
  end
58
58
  end
59
59
 
@@ -1,2 +1 @@
1
- require 'active_support/core_ext'
2
1
  require 'array_bit_mask'
metadata CHANGED
@@ -1,64 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: array_bit_mask
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.0.3
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Alex Leschenko
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-01-08 00:00:00.000000000 Z
11
+ date: 2014-12-21 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- version_requirements: !ruby/object:Gem::Requirement
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
- none: false
20
+ type: :runtime
21
21
  prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
22
28
  name: rake
23
29
  requirement: !ruby/object:Gem::Requirement
24
30
  requirements:
25
- - - ! '>='
31
+ - - ">="
26
32
  - !ruby/object:Gem::Version
27
33
  version: '0'
28
- none: false
29
34
  type: :development
30
- - !ruby/object:Gem::Dependency
35
+ prerelease: false
31
36
  version_requirements: !ruby/object:Gem::Requirement
32
37
  requirements:
33
- - - ! '>='
38
+ - - ">="
34
39
  - !ruby/object:Gem::Version
35
40
  version: '0'
36
- none: false
37
- prerelease: false
41
+ - !ruby/object:Gem::Dependency
38
42
  name: rspec
39
43
  requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ! '>='
45
+ - - ">="
42
46
  - !ruby/object:Gem::Version
43
47
  version: '0'
44
- none: false
45
48
  type: :development
46
- - !ruby/object:Gem::Dependency
47
- version_requirements: !ruby/object:Gem::Requirement
48
- requirements:
49
- - - ! '>='
50
- - !ruby/object:Gem::Version
51
- version: '0'
52
- none: false
53
49
  prerelease: false
54
- name: activesupport
55
- requirement: !ruby/object:Gem::Requirement
50
+ version_requirements: !ruby/object:Gem::Requirement
56
51
  requirements:
57
- - - ! '>='
52
+ - - ">="
58
53
  - !ruby/object:Gem::Version
59
54
  version: '0'
60
- none: false
61
- type: :runtime
62
55
  description: Creates methods that accepts array of values and save them as bit mask
63
56
  extracted using specified source
64
57
  email:
@@ -67,7 +60,7 @@ executables: []
67
60
  extensions: []
68
61
  extra_rdoc_files: []
69
62
  files:
70
- - .gitignore
63
+ - ".gitignore"
71
64
  - Gemfile
72
65
  - LICENSE.txt
73
66
  - README.md
@@ -80,33 +73,26 @@ files:
80
73
  - spec/spec_helper.rb
81
74
  homepage: https://github.com/leschenko/array_bit_mask
82
75
  licenses: []
76
+ metadata: {}
83
77
  post_install_message:
84
78
  rdoc_options: []
85
79
  require_paths:
86
80
  - lib
87
81
  required_ruby_version: !ruby/object:Gem::Requirement
88
82
  requirements:
89
- - - ! '>='
83
+ - - ">="
90
84
  - !ruby/object:Gem::Version
91
85
  version: '0'
92
- segments:
93
- - 0
94
- hash: -2168014349249705125
95
- none: false
96
86
  required_rubygems_version: !ruby/object:Gem::Requirement
97
87
  requirements:
98
- - - ! '>='
88
+ - - ">="
99
89
  - !ruby/object:Gem::Version
100
90
  version: '0'
101
- segments:
102
- - 0
103
- hash: -2168014349249705125
104
- none: false
105
91
  requirements: []
106
92
  rubyforge_project:
107
- rubygems_version: 1.8.24
93
+ rubygems_version: 2.4.3
108
94
  signing_key:
109
- specification_version: 3
95
+ specification_version: 4
110
96
  summary: Generates bit mask for attribute from array of values
111
97
  test_files:
112
98
  - spec/array_bit_mask/bit_mask_spec.rb