static_collection 0.2.0 → 0.2.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
  SHA256:
3
- metadata.gz: aee7a2335834e9e570ff2bc0e0289c33babb47131cfbba9a7e99f23d117f7583
4
- data.tar.gz: 26d5d69190b140785b8355e45c99cdcc0de4173e380ce8b195d8fab56ee5ed23
3
+ metadata.gz: f867a06f9f52e14eec205601c378da8f40dcd824b6c8b89d47e1898efc84576f
4
+ data.tar.gz: 0a83958ce93a9bb051ad9ca64fcf396f0e7a309cf1004d3c8270cccb85e85b2e
5
5
  SHA512:
6
- metadata.gz: bd6b84129218e0a98310d745aab5ef54e8a6ef5c14f868acb3dcc4a0d0aa701f5897f2e760a4beb4471960f393b1dc4e34303e13939799eb217a3cb4d567b9f5
7
- data.tar.gz: d2c325572a184526e2fde0a1e89f6d85bd7c074ccbc42826b82af5b804c8f79eda390e5e0b16d2670ffbd5bb8596b414720d73f8eef8ce2c5899e38cd2ab8b9d
6
+ metadata.gz: 6ffeab73073a0ab546fce79585ef6786ddd1dad9706f1665b6fb87a803f6c84aed3cd89a140a4b160d679f7a3eafba60b6384d839cca7feb629e747c70ee56e6
7
+ data.tar.gz: 2bdfb54187ea3bcf2c66f4838f2f3a1d3a7013216c56b21886b8b2fd4c77df07c0512764a4f04062ff26659066b9a5aa402ab33188953d5c96feec07b6d52ed0
@@ -0,0 +1 @@
1
+ * @wealthsimple/developer-tools
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: Pipeline
3
+ on: push
4
+ jobs:
5
+ build:
6
+ name: Build
7
+ runs-on: ubuntu-20.04
8
+ steps:
9
+ - uses: actions/checkout@v2
10
+ - uses: ruby/setup-ruby@v1
11
+ with:
12
+ bundler-cache: true
13
+ - name: Lint
14
+ run: bundle exec rubocop
15
+ - name: Test
16
+ run: bundle exec rspec
17
+ - name: Release the gem
18
+ if: ${{ github.ref == 'refs/heads/main' }}
19
+ run: |
20
+ mkdir -p ~/.gem
21
+ cat << EOF > ~/.gem/credentials
22
+ ---
23
+ :github: Bearer ${GITHUB_TOKEN}
24
+ :rubygems_api_key: ${RUBYGEMS_API_KEY}
25
+ EOF
26
+ chmod 0600 ~/.gem/credentials
27
+ git config user.email "noreply@wealthsimple.com"
28
+ git config user.name "Wolfbot"
29
+ bundle exec rake release
30
+ env:
31
+ RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
data/.rubocop.yml ADDED
@@ -0,0 +1,18 @@
1
+ inherit_gem:
2
+ ws-style:
3
+ - default.yml
4
+
5
+ Metrics/AbcSize:
6
+ Exclude:
7
+ - lib/static_collection.rb
8
+ Metrics/CyclomaticComplexity:
9
+ Exclude:
10
+ - lib/static_collection.rb
11
+ Metrics/PerceivedComplexity:
12
+ Exclude:
13
+ - lib/static_collection.rb
14
+
15
+ RSpec/RepeatedExampleGroupBody:
16
+ Exclude:
17
+ - spec/example_collection_spec.rb
18
+
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.5.1
1
+ 2.7.3
data/Gemfile.lock ADDED
@@ -0,0 +1,94 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ static_collection (0.2.1)
5
+ activesupport (>= 4)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ activesupport (6.1.3.2)
11
+ concurrent-ruby (~> 1.0, >= 1.0.2)
12
+ i18n (>= 1.6, < 2)
13
+ minitest (>= 5.1)
14
+ tzinfo (~> 2.0)
15
+ zeitwerk (~> 2.3)
16
+ ast (2.4.2)
17
+ concurrent-ruby (1.1.8)
18
+ diff-lcs (1.4.4)
19
+ i18n (1.8.10)
20
+ concurrent-ruby (~> 1.0)
21
+ minitest (5.14.4)
22
+ parallel (1.20.1)
23
+ parser (3.0.1.1)
24
+ ast (~> 2.4.1)
25
+ rack (2.2.3)
26
+ rainbow (3.0.0)
27
+ rake (10.5.0)
28
+ regexp_parser (2.1.1)
29
+ rexml (3.2.5)
30
+ rspec (3.10.0)
31
+ rspec-core (~> 3.10.0)
32
+ rspec-expectations (~> 3.10.0)
33
+ rspec-mocks (~> 3.10.0)
34
+ rspec-core (3.10.1)
35
+ rspec-support (~> 3.10.0)
36
+ rspec-expectations (3.10.1)
37
+ diff-lcs (>= 1.2.0, < 2.0)
38
+ rspec-support (~> 3.10.0)
39
+ rspec-its (1.3.0)
40
+ rspec-core (>= 3.0.0)
41
+ rspec-expectations (>= 3.0.0)
42
+ rspec-mocks (3.10.2)
43
+ diff-lcs (>= 1.2.0, < 2.0)
44
+ rspec-support (~> 3.10.0)
45
+ rspec-support (3.10.2)
46
+ rubocop (1.14.0)
47
+ parallel (~> 1.10)
48
+ parser (>= 3.0.0.0)
49
+ rainbow (>= 2.2.2, < 4.0)
50
+ regexp_parser (>= 1.8, < 3.0)
51
+ rexml
52
+ rubocop-ast (>= 1.5.0, < 2.0)
53
+ ruby-progressbar (~> 1.7)
54
+ unicode-display_width (>= 1.4.0, < 3.0)
55
+ rubocop-ast (1.5.0)
56
+ parser (>= 3.0.1.1)
57
+ rubocop-performance (1.11.2)
58
+ rubocop (>= 1.7.0, < 2.0)
59
+ rubocop-ast (>= 0.4.0)
60
+ rubocop-rails (2.10.1)
61
+ activesupport (>= 4.2.0)
62
+ rack (>= 1.1)
63
+ rubocop (>= 1.7.0, < 2.0)
64
+ rubocop-rspec (2.3.0)
65
+ rubocop (~> 1.0)
66
+ rubocop-ast (>= 1.1.0)
67
+ rubocop-vendor (0.6.0)
68
+ rubocop (>= 0.53.0)
69
+ ruby-progressbar (1.11.0)
70
+ tzinfo (2.0.4)
71
+ concurrent-ruby (~> 1.0)
72
+ unicode-display_width (2.0.0)
73
+ ws-style (6.9.0)
74
+ rubocop (>= 1.12.1)
75
+ rubocop-performance (>= 1.10.2)
76
+ rubocop-rails (>= 2.9.1)
77
+ rubocop-rspec (>= 2.2.0)
78
+ rubocop-vendor (>= 0.6.0)
79
+ zeitwerk (2.4.2)
80
+
81
+ PLATFORMS
82
+ ruby
83
+
84
+ DEPENDENCIES
85
+ bundler (~> 2.0)
86
+ rake (~> 10.0)
87
+ rspec (~> 3.0)
88
+ rspec-its (~> 1.2)
89
+ rubocop (~> 1.2)
90
+ static_collection!
91
+ ws-style
92
+
93
+ BUNDLED WITH
94
+ 2.2.16
data/README.md CHANGED
@@ -1,4 +1,5 @@
1
- # StaticCollection [![CircleCI](https://circleci.com/gh/wealthsimple/static_collection.svg?style=svg)](https://circleci.com/gh/wealthsimple/static_collection) [![](https://img.shields.io/gem/v/static_collection.svg)](https://rubygems.org/gems/static_collection)
1
+ # static_collection
2
+ [![GitHub Actions Badge](https://github.com/wealthsimple/static_collection/actions/workflows/main.yml/badge.svg)](https://github.com/wealthsimple/static_collection/actions)
2
3
 
3
4
  Rubygem for running basic queries against static data.
4
5
 
data/Rakefile CHANGED
@@ -3,4 +3,4 @@ require "rspec/core/rake_task"
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :default => :spec
6
+ task default: :spec
data/catalog-info.yaml ADDED
@@ -0,0 +1,11 @@
1
+ ---
2
+ apiVersion: backstage.io/v1alpha1
3
+ kind: Component
4
+ metadata:
5
+ name: static_collection
6
+ description: Rubygem for running basic queries against static data
7
+ tags:
8
+ - ruby
9
+ spec:
10
+ type: library
11
+ lifecycle: production
@@ -4,25 +4,36 @@ require "static_collection/version"
4
4
  module StaticCollection
5
5
  class Base
6
6
  def self.set_source(source, defaults: {})
7
- raise "Source must be an array" unless source.is_a?(Array)
8
- self.class_variable_set(:@@defaults, defaults.stringify_keys)
9
- self.class_variable_set(:@@source, source.map(&:stringify_keys))
10
- raise "Source must have at least one value" unless count > 0
7
+ raise "Source must be an array" unless source.is_a?(Array)
8
+
9
+ instance_variable_set(:@defaults, defaults.stringify_keys)
10
+ instance_variable_set(:@source, source.map(&:stringify_keys))
11
+ raise "Source must have at least one value" unless count > 0
11
12
 
12
13
  all.first.attributes.each do |attribute_name, attribute_value|
13
14
  # Class methods
14
- self.define_singleton_method("find_by_#{attribute_name}") do |value|
15
- ActiveSupport::Deprecation.warn("find_by_#{attribute_name} is deprecated for StaticCollection, use find_by(#{attribute_name}: [value])")
15
+ define_singleton_method("find_by_#{attribute_name}") do |value|
16
+ ActiveSupport::Deprecation.warn(
17
+ "find_by_#{attribute_name} is deprecated for StaticCollection, " \
18
+ "use find_by(#{attribute_name}: [value])",
19
+ )
16
20
  all.find { |instance| instance.send(attribute_name) == value }
17
21
  end
18
- self.define_singleton_method("find_all_by_#{attribute_name}") do |value|
19
- ActiveSupport::Deprecation.warn("find_all_by_#{attribute_name} is deprecated for StaticCollection, use where(#{attribute_name}: [value])")
22
+ define_singleton_method("find_all_by_#{attribute_name}") do |value|
23
+ ActiveSupport::Deprecation.warn(
24
+ "find_all_by_#{attribute_name} is deprecated for StaticCollection, "\
25
+ "use where(#{attribute_name}: [value])",
26
+ )
20
27
  all.select { |instance| instance.send(attribute_name) == value }
21
28
  end
22
29
 
23
30
  # Instance methods
24
- self.send(:define_method, attribute_name) { attributes[attribute_name] }
25
- self.send(:define_method, "#{attribute_name}?") { attributes[attribute_name] } if attribute_value.is_a?(TrueClass) || attribute_value.is_a?(FalseClass)
31
+ send(:define_method, attribute_name) { attributes[attribute_name] }
32
+ next unless attribute_value.is_a?(TrueClass) || attribute_value.is_a?(FalseClass)
33
+
34
+ send(:define_method, "#{attribute_name}?") {
35
+ attributes[attribute_name]
36
+ }
26
37
  end
27
38
  end
28
39
 
@@ -35,8 +46,8 @@ module StaticCollection
35
46
  end
36
47
 
37
48
  def self.all
38
- defaults = self.class_variable_get(:@@defaults)
39
- self.class_variable_get(:@@source).map { |s| self.new(defaults.merge(s)) }
49
+ defaults = instance_variable_get(:@defaults)
50
+ instance_variable_get(:@source).map { |s| new(defaults.merge(s)) }
40
51
  end
41
52
 
42
53
  def self.count
@@ -45,6 +56,7 @@ module StaticCollection
45
56
  singleton_class.send(:alias_method, :size, :count)
46
57
 
47
58
  attr_reader :attributes
59
+
48
60
  def initialize(attributes = {})
49
61
  @attributes = attributes
50
62
  end
@@ -1,3 +1,3 @@
1
1
  module StaticCollection
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1".freeze
3
3
  end
@@ -1,5 +1,4 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'static_collection/version'
5
4
 
@@ -9,12 +8,14 @@ Gem::Specification.new do |spec|
9
8
  spec.authors = ["Peter Graham"]
10
9
  spec.email = ["peter@wealthsimple.com"]
11
10
 
12
- spec.summary = %q{Run queries against static data.}
13
- spec.description = %q{Rubygem for running basic queries against static data.}
11
+ spec.summary = 'Run queries against static data.'
12
+ spec.description = 'Rubygem for running basic queries against static data.'
14
13
  spec.homepage = "https://github.com/wealthsimple/static_collection"
15
14
  spec.license = "MIT"
16
15
 
17
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
16
+ spec.required_ruby_version = '>= 2.7.3'
17
+
18
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
19
  f.match(%r{^(test|spec|features)/})
19
20
  end
20
21
  spec.bindir = "exe"
@@ -23,8 +24,10 @@ Gem::Specification.new do |spec|
23
24
 
24
25
  spec.add_dependency "activesupport", ">= 4"
25
26
 
26
- spec.add_development_dependency "bundler", "~> 1.14"
27
+ spec.add_development_dependency "bundler", "~> 2.0"
27
28
  spec.add_development_dependency "rake", "~> 10.0"
28
29
  spec.add_development_dependency "rspec", "~> 3.0"
29
30
  spec.add_development_dependency "rspec-its", "~> 1.2"
31
+ spec.add_development_dependency "rubocop", "~> 1.2"
32
+ spec.add_development_dependency "ws-style"
30
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: static_collection
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Graham
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-01 00:00:00.000000000 Z
11
+ date: 2021-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.14'
33
+ version: '2.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.14'
40
+ version: '2.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,34 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '1.2'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.2'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.2'
97
+ - !ruby/object:Gem::Dependency
98
+ name: ws-style
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
83
111
  description: Rubygem for running basic queries against static data.
84
112
  email:
85
113
  - peter@wealthsimple.com
@@ -87,15 +115,20 @@ executables: []
87
115
  extensions: []
88
116
  extra_rdoc_files: []
89
117
  files:
118
+ - ".github/CODEOWNERS"
119
+ - ".github/workflows/main.yml"
90
120
  - ".gitignore"
91
121
  - ".rspec"
122
+ - ".rubocop.yml"
92
123
  - ".ruby-version"
93
124
  - Gemfile
125
+ - Gemfile.lock
94
126
  - LICENSE.txt
95
127
  - README.md
96
128
  - Rakefile
97
129
  - bin/console
98
130
  - bin/setup
131
+ - catalog-info.yaml
99
132
  - lib/static_collection.rb
100
133
  - lib/static_collection/version.rb
101
134
  - static_collection.gemspec
@@ -111,15 +144,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
111
144
  requirements:
112
145
  - - ">="
113
146
  - !ruby/object:Gem::Version
114
- version: '0'
147
+ version: 2.7.3
115
148
  required_rubygems_version: !ruby/object:Gem::Requirement
116
149
  requirements:
117
150
  - - ">="
118
151
  - !ruby/object:Gem::Version
119
152
  version: '0'
120
153
  requirements: []
121
- rubyforge_project:
122
- rubygems_version: 2.7.6
154
+ rubygems_version: 3.1.6
123
155
  signing_key:
124
156
  specification_version: 4
125
157
  summary: Run queries against static data.