metka 0.1.1 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cf64e63f73da3ffb7c87e5d3806a13e4c7d09356e63b8d52ffefd27bf7dda8df
4
- data.tar.gz: 98c5808ea5d3426a15b9eb7084b6b07f7c3242ee8f6b96ca53f20cb5f9987208
3
+ metadata.gz: dd6f202972d558afed083a0095530a47e1e2f35028beb4a457c1b13741614b0d
4
+ data.tar.gz: e11832ae26b49cdb99aa7b6fd5dddb9f559b862b8460c19b492c05467ea04331
5
5
  SHA512:
6
- metadata.gz: 24ac1c6bc72b5a98a879897f7cdddd721df052cb84841a0e3adaefff003d9414a0adf1c40cc663a5ed468f5e320a83af09ea76461fb66ce7625cfe7c2f8b376a
7
- data.tar.gz: cf3750a9f2dccedd27afac2f967187e6e5655483fc7bd696b0da9d63308bc79279cb90c141db0e25d333dde79ce54235b674f2495f4fe904fccdeb6591419927
6
+ metadata.gz: ea2f237f88c8a661931db07532243ddd6c7af85741f77422cc6f6fafd3460fbfaacad205064eeecb438a29a25c3aff11157ddf6309ff6bb559d317674bbdc019
7
+ data.tar.gz: b9e9f74757a541c6bf8fb123ba27cf619ebafeb7b92b61ea0a71b0482b5e3a3def87bae4c5292cd159e4bc6beeeb9274811e77e7dd461736d16bb15529ec7673
@@ -0,0 +1,11 @@
1
+ name: CI
2
+ # This workflow is triggered on pushes to the repository.
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+ name: RSpec
8
+ # This job runs on Linux
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v1
data/.gitignore CHANGED
@@ -6,6 +6,7 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ /spec/tmp/
9
10
 
10
11
  # rspec failure tracking
11
12
  .rspec_status
@@ -1,5 +1,5 @@
1
1
  inherit_gem:
2
- standard: config/base.yml
2
+ jetrockets-standard: config/gems.yml
3
3
 
4
4
  AllCops:
5
5
  Exclude:
@@ -13,12 +13,6 @@ AllCops:
13
13
  DisplayCopNames: true
14
14
  TargetRubyVersion: 2.5
15
15
 
16
- Standard/SemanticBlocks:
17
- Enabled: false
18
-
19
- Style/FrozenStringLiteralComment:
20
- Enabled: true
21
-
22
16
  Style/TrailingCommaInArrayLiteral:
23
17
  EnforcedStyleForMultiline: no_comma
24
18
 
@@ -16,7 +16,9 @@ env:
16
16
  - METKA_DB_USER=postgres
17
17
  - METKA_DB_NAME=metka
18
18
 
19
+ before_install:
20
+ - gem install -v 2.0.2 bundler
21
+
19
22
  before_script:
20
23
  - gem update --system
21
- - bundle exec rake dummy:db:create
22
- - RAILS_ENV=test bundle exec rake dummy:db:create dummy:db:migrate
24
+ - RAILS_ENV=test bundle exec rake dummy:db:create dummy:db:schema:load
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- metka (0.1.0)
4
+ metka (0.1.1)
5
5
  dry-configurable
6
6
  rails (>= 4.2)
7
7
 
@@ -61,13 +61,17 @@ GEM
61
61
  dry-core (0.4.9)
62
62
  concurrent-ruby (~> 1.0)
63
63
  erubi (1.8.0)
64
- faker (2.1.2)
65
- i18n (>= 0.8)
64
+ faker (2.3.0)
65
+ i18n (~> 1.6.0)
66
66
  globalid (0.4.2)
67
67
  activesupport (>= 4.2.0)
68
68
  i18n (1.6.0)
69
69
  concurrent-ruby (~> 1.0)
70
70
  jaro_winkler (1.5.3)
71
+ jetrockets-standard (1.0.1)
72
+ rubocop-rails (~> 2.3.2)
73
+ rubocop-rspec (~> 1.35.0)
74
+ standard (~> 0.1.4)
71
75
  loofah (2.2.3)
72
76
  crass (~> 1.0.2)
73
77
  nokogiri (>= 1.5.9)
@@ -77,11 +81,11 @@ GEM
77
81
  mini_mime (1.0.2)
78
82
  mini_portile2 (2.4.0)
79
83
  minitest (5.11.3)
80
- nio4r (2.4.0)
84
+ nio4r (2.5.1)
81
85
  nokogiri (1.10.4)
82
86
  mini_portile2 (~> 2.4.0)
83
87
  parallel (1.17.0)
84
- parser (2.6.3.0)
88
+ parser (2.6.4.1)
85
89
  ast (~> 2.4.0)
86
90
  pg (1.1.4)
87
91
  rack (2.0.7)
@@ -142,6 +146,11 @@ GEM
142
146
  unicode-display_width (>= 1.4.0, < 1.7)
143
147
  rubocop-performance (1.4.1)
144
148
  rubocop (>= 0.71.0)
149
+ rubocop-rails (2.3.2)
150
+ rack (>= 1.1)
151
+ rubocop (>= 0.72.0)
152
+ rubocop-rspec (1.35.0)
153
+ rubocop (>= 0.60.0)
145
154
  ruby-progressbar (1.10.1)
146
155
  sprockets (3.7.2)
147
156
  concurrent-ruby (~> 1.0)
@@ -150,7 +159,7 @@ GEM
150
159
  actionpack (>= 4.0)
151
160
  activesupport (>= 4.0)
152
161
  sprockets (>= 3.0.0)
153
- standard (0.1.2)
162
+ standard (0.1.4)
154
163
  rubocop (~> 0.72.0)
155
164
  rubocop-performance (~> 1.4.0)
156
165
  thor (0.20.3)
@@ -171,13 +180,13 @@ DEPENDENCIES
171
180
  ammeter
172
181
  bundler
173
182
  faker
183
+ jetrockets-standard (~> 1.0.1)
174
184
  metka!
175
185
  pg
176
186
  rake
177
187
  rspec
178
188
  rspec-rails
179
- standard
180
189
  timecop
181
190
 
182
191
  BUNDLED WITH
183
- 2.0.1
192
+ 2.0.2
data/README.md CHANGED
@@ -76,7 +76,7 @@ Lets take a look at real example. We have a `notes` table with `tags` column.
76
76
  Now lets generate a migration.
77
77
 
78
78
  ```bash
79
- RAILS_ENV=test rails g metka:strategies:view --source-table-name=notes
79
+ rails g metka:strategies:view --source-table-name=notes
80
80
  ```
81
81
 
82
82
  The result would be:
data/Rakefile CHANGED
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
5
5
 
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
8
  namespace :dummy do
9
- require_relative "spec/dummy/config/application"
9
+ require_relative 'spec/dummy/config/application'
10
10
  Dummy::Application.load_tasks
11
11
  end
12
12
 
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators'
4
+ require 'rails/generators/active_record'
5
+
6
+ module Metka
7
+ module Generators
8
+ module Strategies
9
+ class MaterializedViewGenerator < ::Rails::Generators::Base # :nodoc:
10
+ include Rails::Generators::Migration
11
+
12
+ desc <<~LONGDESC
13
+ Generates migration to implement view strategy for Metka
14
+
15
+ > $ rails g metka:strategies:materialized_view --source-table-name=NAME_OF_TABLE_WITH_TAGS
16
+ LONGDESC
17
+
18
+ source_root File.expand_path('templates', __dir__)
19
+
20
+ class_option :source_table_name, type: :string, required: true,
21
+ desc: 'Name of the table that has a column with tags'
22
+
23
+ class_option :source_column_name, type: :string, default: 'tags',
24
+ desc: 'Name of the column with stored tags'
25
+
26
+ def generate_migration
27
+ migration_template 'migration.rb.erb', "db/migrate/#{migration_name}.rb"
28
+ end
29
+
30
+ no_tasks do
31
+ def source_table_name
32
+ options[:source_table_name]
33
+ end
34
+
35
+ def source_column_name
36
+ options[:source_column_name]
37
+ end
38
+
39
+ def view_name
40
+ "tagged_#{source_table_name}"
41
+ end
42
+
43
+ def migration_name
44
+ "create_#{view_name}_view"
45
+ end
46
+
47
+ def migration_class_name
48
+ migration_name.classify
49
+ end
50
+ end
51
+
52
+ def self.next_migration_number(dir)
53
+ ::ActiveRecord::Generators::Base.next_migration_number(dir)
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ class <%= @migration_class_name %> < ActiveRecord::Migration<%= ActiveRecord::VERSION::MAJOR < 5 ? '' : '[5.0]' %>
4
+ def up
5
+ execute <<-SQL
6
+ CREATE
7
+ OR REPLACE FUNCTION metka_refresh_<%= view_name %>_materialized_view RETURNS TRIGGER LANGUAGE plpgsql AS $$
8
+ BEGIN
9
+ IF TG_OP = 'INSERT' AND NEW.<%= source_column_name %> IS NOT NULL THEN
10
+ REFRESH MATERIALIZED VIEW CONCURRENTLY <%= view_name %>;
11
+ ELSIF TG_OP = 'UPDATE' AND OLD.<%= source_column_name %> IS NOT NULL AND NEW.<%= source_column_name %> IS NOT NULL THEN
12
+ REFRESH MATERIALIZED VIEW CONCURRENTLY <%= view_name %>;
13
+ ELSIF TG_OP = 'DELETE' AND OLD.<%= source_column_name %> IS NOT NULL THEN
14
+ REFRESH MATERIALIZED VIEW CONCURRENTLY <%= view_name %>;
15
+ END IF;
16
+
17
+ RETURN NULL;
18
+ END $$;
19
+
20
+ CREATE OR REPLACE MATERIALZIED VIEW <%= view_name %> AS
21
+
22
+ SELECT UNNEST
23
+ ( <%= source_column_name %> ) AS <%= source_column_name.singularize %>_name,
24
+ COUNT ( * ) AS taggings_count
25
+ FROM
26
+ <%= source_table_name %>
27
+ GROUP BY
28
+ <%= source_column_name.singularize %>_name;
29
+
30
+ CREATE TRIGGER metka_on_<%= source_table_name %>
31
+ BEFORE UPDATE OR INSERT OR DELETE ON <%= source_table_name %> FOR EACH ROW
32
+ EXECUTE PROCEDURE metka_refresh_<%= view_name %>_materialized_view();
33
+ end
34
+
35
+ def down
36
+ execute <<-SQL
37
+ DROP VIEW <%= view_name %>;
38
+ SQL
39
+ end
40
+ end
@@ -11,7 +11,7 @@ class <%= @migration_class_name %> < ActiveRecord::Migration<%= ActiveRecord::VE
11
11
  FROM
12
12
  <%= source_table_name %>
13
13
  GROUP BY
14
- name;
14
+ <%= source_column_name.singularize %>_name;
15
15
  SQL
16
16
  end
17
17
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rails/generators"
4
- require "rails/generators/active_record"
3
+ require 'rails/generators'
4
+ require 'rails/generators/active_record'
5
5
 
6
6
  module Metka
7
7
  module Generators
@@ -9,22 +9,22 @@ module Metka
9
9
  class ViewGenerator < ::Rails::Generators::Base # :nodoc:
10
10
  include Rails::Generators::Migration
11
11
 
12
- desc <<-LONGDESC
13
- Generates migration to implement view strategy for Metka
12
+ desc <<~LONGDESC
13
+ Generates migration to implement view strategy for Metka
14
14
 
15
- > $ rails g metka:strategies:view --source-table-name=NAME_OF_TABLE_WITH_TAGS
16
- LONGDESC
15
+ > $ rails g metka:strategies:view --source-table-name=NAME_OF_TABLE_WITH_TAGS
16
+ LONGDESC
17
17
 
18
- source_root File.expand_path("templates", __dir__)
18
+ source_root File.expand_path('templates', __dir__)
19
19
 
20
20
  class_option :source_table_name, type: :string, required: true,
21
- desc: 'Name of the table that has a column with tags'
21
+ desc: 'Name of the table that has a column with tags'
22
22
 
23
23
  class_option :source_column_name, type: :string, default: 'tags',
24
- desc: 'Name of the column with stored tags'
24
+ desc: 'Name of the column with stored tags'
25
25
 
26
26
  def generate_migration
27
- migration_template "migration.rb.erb", "db/migrate/#{migration_name}.rb"
27
+ migration_template 'migration.rb.erb', "db/migrate/#{migration_name}.rb"
28
28
  end
29
29
 
30
30
  no_tasks do
@@ -55,4 +55,4 @@ LONGDESC
55
55
  end
56
56
  end
57
57
  end
58
- end
58
+ end
@@ -1,20 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "metka/version"
3
+ require 'metka/version'
4
4
 
5
- require "active_support/core_ext/module"
6
- require "dry-configurable"
5
+ require 'active_support/core_ext/module'
6
+ require 'dry-configurable'
7
7
 
8
8
  module Metka
9
- require "metka/tag_list"
10
- require "metka/generic_parser"
11
- require "metka/query_builder"
12
- require "metka/model"
9
+ require 'metka/tag_list'
10
+ require 'metka/generic_parser'
11
+ require 'metka/query_builder'
12
+ require 'metka/model'
13
13
 
14
14
  class Error < StandardError; end
15
15
 
16
16
  extend Dry::Configurable
17
17
 
18
18
  setting :parser, Metka::GenericParser
19
- setting :delimiter, ","
19
+ setting :delimiter, ','
20
20
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "singleton"
3
+ require 'singleton'
4
4
 
5
5
  module Metka
6
6
  ##
@@ -16,7 +16,7 @@ module Metka
16
16
  TagList.new.tap do |tag_list|
17
17
  case value
18
18
  when String
19
- tag_list.merge value.split(",").map(&:strip).reject(&:empty?)
19
+ tag_list.merge value.split(',').map(&:strip).reject(&:empty?)
20
20
  when Enumerable
21
21
  tag_list.merge value.reject(&:empty?)
22
22
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "active_support/concern"
3
+ require 'active_support/concern'
4
4
 
5
5
  module Metka
6
6
  # Extends AR model with methods to use tags
@@ -14,7 +14,7 @@ module Metka
14
14
 
15
15
  return none if tag_list.empty?
16
16
 
17
- where(::Metka::QueryBuilder.new.call(self, "tags", tag_list, options))
17
+ where(::Metka::QueryBuilder.new.call(self, 'tags', tag_list, options))
18
18
  end
19
19
  end
20
20
 
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "query_builder/exclude_tags_query"
4
- require_relative "query_builder/any_tags_query"
5
- require_relative "query_builder/all_tags_query"
3
+ require_relative 'query_builder/exclude_tags_query'
4
+ require_relative 'query_builder/any_tags_query'
5
+ require_relative 'query_builder/all_tags_query'
6
6
 
7
7
  module Metka
8
8
  class QueryBuilder
@@ -6,21 +6,21 @@ module Metka
6
6
 
7
7
  def call(model, column_name, tag_list)
8
8
  column_cast = Arel::Nodes::NamedFunction.new(
9
- "CAST",
10
- [model.arel_table[column_name].as("text[]")]
9
+ 'CAST',
10
+ [model.arel_table[column_name].as('text[]')]
11
11
  )
12
12
 
13
13
  value = Arel::Nodes::SqlLiteral.new(
14
14
  # In Rails 5.2 and above Sanitanization moved to public level, but still we have to support 4.2 and 5.0 and 5.1
15
- ActiveRecord::Base.send(:sanitize_sql_for_conditions, ["ARRAY[?]", tag_list.to_a])
15
+ ActiveRecord::Base.send(:sanitize_sql_for_conditions, ['ARRAY[?]', tag_list.to_a])
16
16
  )
17
17
 
18
18
  value_cast = Arel::Nodes::NamedFunction.new(
19
- "CAST",
20
- [value.as("text[]")]
19
+ 'CAST',
20
+ [value.as('text[]')]
21
21
  )
22
22
 
23
- Arel::Nodes::InfixOperation.new("@>", column_cast, value_cast)
23
+ Arel::Nodes::InfixOperation.new('@>', column_cast, value_cast)
24
24
  end
25
25
  end
26
26
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "singleton"
3
+ require 'singleton'
4
4
 
5
5
  module Metka
6
6
  class AnyTagsQuery
@@ -8,21 +8,21 @@ module Metka
8
8
 
9
9
  def call(model, column_name, tag_list)
10
10
  column_cast = Arel::Nodes::NamedFunction.new(
11
- "CAST",
12
- [model.arel_table[column_name].as("text[]")]
11
+ 'CAST',
12
+ [model.arel_table[column_name].as('text[]')]
13
13
  )
14
14
 
15
15
  value = Arel::Nodes::SqlLiteral.new(
16
16
  # In Rails 5.2 and above Sanitanization moved to public level, but still we have to support 4.2 and 5.0 and 5.1
17
- ActiveRecord::Base.send(:sanitize_sql_for_conditions, ["ARRAY[?]", tag_list.to_a])
17
+ ActiveRecord::Base.send(:sanitize_sql_for_conditions, ['ARRAY[?]', tag_list.to_a])
18
18
  )
19
19
 
20
20
  value_cast = Arel::Nodes::NamedFunction.new(
21
- "CAST",
22
- [value.as("text[]")]
21
+ 'CAST',
22
+ [value.as('text[]')]
23
23
  )
24
24
 
25
- Arel::Nodes::InfixOperation.new("&&", column_cast, value_cast)
25
+ Arel::Nodes::InfixOperation.new('&&', column_cast, value_cast)
26
26
  end
27
27
  end
28
28
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "set"
3
+ require 'set'
4
4
 
5
5
  module Metka
6
6
  class TagList < Set
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Metka
4
- VERSION = "0.1.1"
4
+ VERSION = '0.1.2'
5
5
  end
@@ -1,39 +1,39 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path("../lib", __FILE__)
3
+ lib = File.expand_path('../lib', __FILE__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require "metka/version"
5
+ require 'metka/version'
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = "metka"
8
+ spec.name = 'metka'
9
9
  spec.version = Metka::VERSION
10
- spec.authors = ["Igor Alexandrov"]
11
- spec.email = ["igor.alexandrov@gmail.com"]
10
+ spec.authors = ['Igor Alexandrov']
11
+ spec.email = ['igor.alexandrov@gmail.com']
12
12
 
13
- spec.summary = "Rails tagging system based on PostgreSQL arrays"
14
- spec.description = "Rails tagging system based on PostgreSQL arrays"
15
- spec.homepage = "https://github.com/jetrockets/metka"
16
- spec.license = "MIT"
13
+ spec.summary = 'Rails tagging system based on PostgreSQL arrays'
14
+ spec.description = 'Rails tagging system based on PostgreSQL arrays'
15
+ spec.homepage = 'https://github.com/jetrockets/metka'
16
+ spec.license = 'MIT'
17
17
 
18
18
  # Specify which files should be added to the gem when it is released.
19
19
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
20
- spec.files = Dir.chdir(File.expand_path("..", __FILE__)) do
20
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
21
21
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
22
22
  end
23
- spec.bindir = "exe"
23
+ spec.bindir = 'exe'
24
24
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
- spec.require_paths = ["lib"]
25
+ spec.require_paths = ['lib']
26
26
 
27
- spec.add_dependency "dry-configurable"
28
- spec.add_dependency "rails", ">= 4.2"
27
+ spec.add_dependency 'dry-configurable'
28
+ spec.add_dependency 'rails', '>= 4.2'
29
29
 
30
- spec.add_development_dependency "ammeter"
31
- spec.add_development_dependency "bundler"
32
- spec.add_development_dependency "faker"
33
- spec.add_development_dependency "pg"
34
- spec.add_development_dependency "rake"
35
- spec.add_development_dependency "rspec"
36
- spec.add_development_dependency "rspec-rails"
37
- spec.add_development_dependency "standard"
38
- spec.add_development_dependency "timecop"
30
+ spec.add_development_dependency 'ammeter'
31
+ spec.add_development_dependency 'bundler'
32
+ spec.add_development_dependency 'faker'
33
+ spec.add_development_dependency 'jetrockets-standard', '~> 1.0.1'
34
+ spec.add_development_dependency 'pg'
35
+ spec.add_development_dependency 'rake'
36
+ spec.add_development_dependency 'rspec'
37
+ spec.add_development_dependency 'rspec-rails'
38
+ spec.add_development_dependency 'timecop'
39
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Alexandrov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-23 00:00:00.000000000 Z
11
+ date: 2019-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-configurable
@@ -81,21 +81,21 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: pg
84
+ name: jetrockets-standard
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: 1.0.1
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: 1.0.1
97
97
  - !ruby/object:Gem::Dependency
98
- name: rake
98
+ name: pg
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: rspec
112
+ name: rake
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: rspec-rails
126
+ name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -137,7 +137,7 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: standard
140
+ name: rspec-rails
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ">="
@@ -171,6 +171,7 @@ executables: []
171
171
  extensions: []
172
172
  extra_rdoc_files: []
173
173
  files:
174
+ - ".github/workflows/continuous-integration-workflow.yml"
174
175
  - ".gitignore"
175
176
  - ".rspec"
176
177
  - ".rubocop.yml"
@@ -183,6 +184,8 @@ files:
183
184
  - Rakefile
184
185
  - bin/console
185
186
  - bin/setup
187
+ - lib/generators/metka/strategies/materialized_view/materialized_view_generator.rb
188
+ - lib/generators/metka/strategies/materialized_view/templates/migration.rb.erb
186
189
  - lib/generators/metka/strategies/view/templates/migration.rb.erb
187
190
  - lib/generators/metka/strategies/view/view_generator.rb
188
191
  - lib/metka.rb
@@ -214,7 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
214
217
  - !ruby/object:Gem::Version
215
218
  version: '0'
216
219
  requirements: []
217
- rubygems_version: 3.0.3
220
+ rubygems_version: 3.0.6
218
221
  signing_key:
219
222
  specification_version: 4
220
223
  summary: Rails tagging system based on PostgreSQL arrays