jap_mag 1.4.1 → 1.4.2

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: da4291c0e51485cbd7930abcb87681d0199e9d6c9b29bc018c0106e2a139d1ad
4
- data.tar.gz: 5a4221ac9985205c43e3bf865a69479caedc39585cc2a1e8b5821c7e8f8f3313
3
+ metadata.gz: f935d63a9bee80b8fb48337976b552478f1ba382c95e825a544880b1b38d9b29
4
+ data.tar.gz: 5605139d72747e7a967d4e75bf98355f3d47952c9492b739f34e1218e6183dbc
5
5
  SHA512:
6
- metadata.gz: c8b2ebc29ed3f0608c5999734d19acf75d569556c108ea51c8e862385feaf1ee88102b7f51110d6b415a7c96ad1974bd02667a01f457b722043fc3579692c8ad
7
- data.tar.gz: 349e465646d784975897c80ceca45098fa2f754ad68db13cbe5652a85495b8a316b40b201a060febee70627955d5f668f3f5295664a50666d1ddaef582760d30
6
+ metadata.gz: e5bafdff72acdb6d593a1633cd18314d6bb54f6433c87566c974c1289d70a345d5b601aebb9adeda136d2f799d3bf0ebe1f644847e41c2691a10f53c48b5f504
7
+ data.tar.gz: 0c308548e44afa4a64347d2014fb06c9b7cf4b71af31d42b5ffd3aa31c7630e7794c792f79b346a10b0947f874b69dd7d04845b37e72f48313d00348a1916c7f
data/Gemfile.lock ADDED
@@ -0,0 +1,34 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ jap_mag (1.4.1)
5
+ will_paginate
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ diff-lcs (1.5.0)
11
+ rspec (3.11.0)
12
+ rspec-core (~> 3.11.0)
13
+ rspec-expectations (~> 3.11.0)
14
+ rspec-mocks (~> 3.11.0)
15
+ rspec-core (3.11.0)
16
+ rspec-support (~> 3.11.0)
17
+ rspec-expectations (3.11.0)
18
+ diff-lcs (>= 1.2.0, < 2.0)
19
+ rspec-support (~> 3.11.0)
20
+ rspec-mocks (3.11.1)
21
+ diff-lcs (>= 1.2.0, < 2.0)
22
+ rspec-support (~> 3.11.0)
23
+ rspec-support (3.11.0)
24
+ will_paginate (3.3.1)
25
+
26
+ PLATFORMS
27
+ aarch64-linux-musl
28
+
29
+ DEPENDENCIES
30
+ jap_mag!
31
+ rspec
32
+
33
+ BUNDLED WITH
34
+ 2.3.7
@@ -0,0 +1,9 @@
1
+ version: "3.8"
2
+
3
+ services:
4
+ ruby:
5
+ image: 'ruby:3.1.2-alpine'
6
+ working_dir: /app/
7
+ volumes:
8
+ - .:/app:cached
9
+ command: sh -c "bundle && bundle exec rspec"
data/jap_mag.gemspec CHANGED
@@ -8,7 +8,8 @@ Gem::Specification.new do |gem|
8
8
  gem.summary = "jap_mag-#{gem.version}"
9
9
  gem.homepage = "https://github.com/felixding/JapMag"
10
10
 
11
- gem.files = `git ls-files`.split($\)
11
+ #gem.files = `git ls-files`.split($\)
12
+ gem.files = Dir['**/*'].keep_if { |file| File.file?(file) }
12
13
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
14
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
15
  gem.name = "jap_mag"
@@ -16,4 +17,5 @@ Gem::Specification.new do |gem|
16
17
  gem.version = JapMag::VERSION
17
18
 
18
19
  gem.add_runtime_dependency :will_paginate
20
+ gem.add_development_dependency "rspec"
19
21
  end
@@ -1,3 +1,3 @@
1
1
  module JapMag
2
- VERSION = "1.4.1"
2
+ VERSION = "1.4.2"
3
3
  end
data/lib/jap_mag.rb CHANGED
@@ -38,23 +38,26 @@ module JapMag
38
38
  #
39
39
  # the args can be one of the following:
40
40
  #
41
- # String: "page#index"
41
+ # String: "page#index page#intro"
42
42
  # Array: %w(page#index page#intro)
43
43
  # multiple arguments: "page#index", "page#intro"
44
44
  #
45
45
  def current_controller_action_in?(*args)
46
- controller = params[:controller]
47
- action = params[:action]
48
- #raise args.inspect if args != 'homepage/page#index'
49
-
50
- args = args.first if args.size == 1 && args.first.is_a?(Array)
46
+ if args.size == 1
47
+ case args.first.class.to_s
48
+ when 'Array'
49
+ args = args.first
50
+ when 'String'
51
+ args = args.first.split(' ')
52
+ end
53
+ end
51
54
 
52
55
  args.each do |element|
53
56
  if element.to_s.include?("#")
54
57
  c, a = element.split('#')
55
- return true if controller == c && action == a
58
+ return true if params[:controller] == c && params[:action] == a
56
59
  else
57
- return true if controller == element
60
+ return true if params[:controller] == element
58
61
  end
59
62
  end
60
63
 
data/spec/jap_mag.rb ADDED
@@ -0,0 +1,4 @@
1
+ module JapMag
2
+ def self.included base
3
+ end
4
+ end
data/spec/lib_spec.rb ADDED
@@ -0,0 +1,85 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe JapMag do
4
+ #let(:rails_app) { Class.new { include JapMag } }
5
+
6
+ describe 'current_controller_action_in?' do
7
+ let(:rails_app) { RailsApp.new(controller: 'page', action: 'index') }
8
+
9
+ context 'string' do
10
+ it 'returns true when controller matches' do
11
+ s = 'page'
12
+
13
+ expect(rails_app.current_controller_action_in?(s)).to be(true)
14
+ end
15
+
16
+ it 'returns true when more than one controlers matches' do
17
+ s = 'page users'
18
+
19
+ expect(rails_app.current_controller_action_in?(s)).to be(true)
20
+ end
21
+
22
+ it 'returns true when controller#action matches' do
23
+ s = 'page#index'
24
+
25
+ expect(rails_app.current_controller_action_in?(s)).to be(true)
26
+ end
27
+
28
+ it 'returns true when more than one controler#action matches' do
29
+ s = 'page#index users#new users#create'
30
+
31
+ expect(rails_app.current_controller_action_in?(s)).to be(true)
32
+ end
33
+
34
+ it 'returns true when it is a mix of controller and controler#action' do
35
+ s = 'page users users#new users#create'
36
+
37
+ expect(rails_app.current_controller_action_in?(s)).to be(true)
38
+ end
39
+
40
+ it 'returns false when controller doesnot match' do
41
+ s = 'page1'
42
+
43
+ expect(rails_app.current_controller_action_in?(s)).to be(false)
44
+ end
45
+ end
46
+
47
+ context 'splat' do
48
+ it 'returns true when controller matches' do
49
+ s = *%w(page)
50
+
51
+ expect(rails_app.current_controller_action_in?(s)).to be(true)
52
+ end
53
+
54
+ it 'returns true when more than one controlers matches' do
55
+ s = *%w(page users)
56
+
57
+ expect(rails_app.current_controller_action_in?(s)).to be(true)
58
+ end
59
+
60
+ it 'returns true when controller#action matches' do
61
+ s = *%w(page#index)
62
+
63
+ expect(rails_app.current_controller_action_in?(s)).to be(true)
64
+ end
65
+
66
+ it 'returns true when more than one controler#action matches' do
67
+ s = *%w(page#index users#new users#create)
68
+
69
+ expect(rails_app.current_controller_action_in?(s)).to be(true)
70
+ end
71
+
72
+ it 'returns true when it is a mix of controller and controler#action' do
73
+ s = *%w(page users users#new users#create)
74
+
75
+ expect(rails_app.current_controller_action_in?(s)).to be(true)
76
+ end
77
+
78
+ it 'returns false when controller doesnot match' do
79
+ s = *%w(page1)
80
+
81
+ expect(rails_app.current_controller_action_in?(s)).to be(false)
82
+ end
83
+ end
84
+ end
85
+ end
data/spec/rails_app.rb ADDED
@@ -0,0 +1,9 @@
1
+ class RailsApp
2
+ include JapMag
3
+
4
+ attr :params, true
5
+
6
+ def initialize params
7
+ @params = params
8
+ end
9
+ end
@@ -0,0 +1,4 @@
1
+ class Rails
2
+ class Engine
3
+ end
4
+ end
@@ -0,0 +1,10 @@
1
+ require 'bundler/setup'
2
+ Bundler.setup
3
+
4
+ RSpec.configure do |config|
5
+ end
6
+
7
+ require 'rails_engine'
8
+ require_relative '../lib/jap_mag'
9
+ require_relative 'jap_mag'
10
+ require 'rails_app'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jap_mag
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - DING Yu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-13 00:00:00.000000000 Z
11
+ date: 2022-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: will_paginate
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  description: JapMag is a collection of frequently-used Rails controller methods and
28
42
  helpers.
29
43
  email:
@@ -32,9 +46,8 @@ executables: []
32
46
  extensions: []
33
47
  extra_rdoc_files: []
34
48
  files:
35
- - ".gitignore"
36
- - ".ruby-version"
37
49
  - Gemfile
50
+ - Gemfile.lock
38
51
  - README.md
39
52
  - Rakefile
40
53
  - app/assets/javascripts/jap_mag.js
@@ -52,9 +65,15 @@ files:
52
65
  - app/views/layouts/_tracking.erb
53
66
  - app/views/layouts/application.haml
54
67
  - config/locales/en.yml
68
+ - docker-compose.yml
55
69
  - jap_mag.gemspec
56
70
  - lib/jap_mag.rb
57
71
  - lib/jap_mag/version.rb
72
+ - spec/jap_mag.rb
73
+ - spec/lib_spec.rb
74
+ - spec/rails_app.rb
75
+ - spec/rails_engine.rb
76
+ - spec/spec_helper.rb
58
77
  homepage: https://github.com/felixding/JapMag
59
78
  licenses: []
60
79
  metadata: {}
@@ -77,4 +96,9 @@ rubygems_version: 3.3.5
77
96
  signing_key:
78
97
  specification_version: 4
79
98
  summary: jap_mag-
80
- test_files: []
99
+ test_files:
100
+ - spec/jap_mag.rb
101
+ - spec/lib_spec.rb
102
+ - spec/rails_app.rb
103
+ - spec/rails_engine.rb
104
+ - spec/spec_helper.rb
data/.gitignore DELETED
@@ -1,18 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
18
- .DS_Store
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- ruby-3.1.2