moar 1.0.1 → 2.0.0

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: a326ba6916580da9c124db958eda52918d81fde5d13f6516cb613ac317181002
4
- data.tar.gz: 878bac6ff03712086eb27dcb84c00a5982e02314899b52245dca0b7229a3eebe
3
+ metadata.gz: a895b87216c86e0e74b174d7d03fa5c7f4bce2554fbc3f96bcdf474a66bc0f6a
4
+ data.tar.gz: 2bf55ae75c2fb8af69f527c04f8b092cbf16f931c146b7a898d3bdd846832681
5
5
  SHA512:
6
- metadata.gz: eb2aadac7f69bf538a678a70be57a0405e9834ba45b7661a4d1a76f3002e56ba8d1853c5326d93b46adc862d24b8eb0a5616e012275cad22a1338fe99f70a593
7
- data.tar.gz: ffee5afebc4dc869440f63bcde6696b40cdf4de21825d7232843aad01afa79d68f9e3f0da9af2156fd28d31b642286b28299c070dc5dcc880a2d7befa28b65e0
6
+ metadata.gz: 1b8b851be39d2746c64f1eee3d6218a04d3ec6fbf2b64d253d834b648bb731f4f5f4d3de71c9a26e2cafc16c650c12ec1a47ec636baf4eb17a5648a83137b605
7
+ data.tar.gz: 1b3f6771cb3447fa8453aaad21f58da4c23e5fafcc3a8b6d635d3608b7f35d157fb41660308c294b34ae1faec968907a7eaccf3641266eef59c07972b93832ef
data/README.md CHANGED
@@ -14,7 +14,7 @@ story:
14
14
  * User clicks a "More posts" link; the browser navigates to a new page
15
15
  listing the final 55 posts. No "More posts" link is rendered.
16
16
  * At any point the user can manually refresh the page, and the same set
17
- of posts will be shown. Likewise, the page can navigated away from
17
+ of posts will be shown. Likewise, the page can be navigated away from
18
18
  and back to, or bookmarked and returned to later, and the same set of
19
19
  posts will be shown. (Assuming the database remains unchanged.)
20
20
  * If JavaScript is disabled, the first and second "More posts" links
@@ -71,9 +71,9 @@ A few things to note:
71
71
  paginated results — no `if` required.
72
72
 
73
73
  For complete usage details, see the documentation for
74
- [`moar_increments`](http://www.rubydoc.info/gems/moar/Moar/Controller/ClassMethods:moar_increments),
75
- [`moar`](http://www.rubydoc.info/gems/moar/Moar/Controller:moar), and
76
- [`link_to_more`](http://www.rubydoc.info/gems/moar/Moar/Helper:link_to_more).
74
+ [`moar_increments`](https://www.rubydoc.info/gems/moar/Moar/Controller/ClassMethods:moar_increments),
75
+ [`moar`](https://www.rubydoc.info/gems/moar/Moar/Controller:moar), and
76
+ [`link_to_more`](https://www.rubydoc.info/gems/moar/Moar/Helper:link_to_more).
77
77
 
78
78
 
79
79
  ## Configuration
@@ -94,21 +94,16 @@ For example, if the translation string is `"Need more %{results_name}!"`
94
94
  and the paginated results consist of `CowBell` models, the rendered text
95
95
  will be "Need more cow bells!".
96
96
 
97
- ## Installation
98
-
99
- Add this line to your application's Gemfile:
100
97
 
101
- ```ruby
102
- gem "moar"
103
- ```
98
+ ## Installation
104
99
 
105
- Then execute:
100
+ Add the gem to your Gemfile:
106
101
 
107
102
  ```bash
108
- $ bundle install
103
+ $ bundle add moar
109
104
  ```
110
105
 
111
- And finally, run the installation generator:
106
+ And run the installation generator:
112
107
 
113
108
  ```bash
114
109
  $ rails generate moar:install
@@ -117,9 +112,9 @@ $ rails generate moar:install
117
112
 
118
113
  ## Contributing
119
114
 
120
- Run `rake test` to run the tests.
115
+ Run `bin/test` to run the tests.
121
116
 
122
117
 
123
118
  ## License
124
119
 
125
- [MIT License](https://opensource.org/licenses/MIT)
120
+ [MIT License](MIT-LICENSE)
data/Rakefile CHANGED
@@ -1,22 +1,3 @@
1
- begin
2
- require 'bundler/setup'
3
- rescue LoadError
4
- puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
- end
6
-
7
- require 'yard'
8
-
9
- YARD::Rake::YardocTask.new(:doc) do |t|
10
- end
1
+ require 'bundler/setup'
11
2
 
12
3
  require 'bundler/gem_tasks'
13
-
14
- require 'rake/testtask'
15
-
16
- Rake::TestTask.new(:test) do |t|
17
- t.libs << 'test'
18
- t.test_files = FileList['test/**/*_test.rb'].exclude('test/tmp/**/*')
19
- t.verbose = false
20
- end
21
-
22
- task default: :test
@@ -4,18 +4,6 @@ module Moar
4
4
  class InstallGenerator < Rails::Generators::Base
5
5
  source_root File.join(__dir__, "templates")
6
6
 
7
- def inject_javascript
8
- inside do
9
- manifest = Dir["app/assets/javascripts/application.js{,.coffee}"].first
10
- raise Thor::Error.new("Could not find application.js") unless manifest
11
-
12
- before, eq = File.read(manifest).match(%r"^(//=|\s*\*=|#=) require_tree.*").to_a
13
- raise Thor::Error.new("Unable to inject `require moar` into #{manifest}") unless before
14
-
15
- inject_into_file manifest, "#{eq} require moar\n", before: before
16
- end
17
- end
18
-
19
7
  def copy_initializer
20
8
  template "config/initializers/moar.rb"
21
9
  end
@@ -23,6 +11,21 @@ module Moar
23
11
  def copy_locales
24
12
  copy_file "config/locales/moar.en.yml"
25
13
  end
14
+
15
+ def inject_javascript
16
+ inside do
17
+ manifest = Dir["app/assets/javascripts/application.js{,.coffee}"].first
18
+ before, eq = File.read(manifest).match(%r"^(//=|\s*\*=|#=) require_tree.*").to_a if manifest
19
+
20
+ if before
21
+ inject_into_file manifest, "#{eq} require moar\n", before: before
22
+ else
23
+ manifest ||= "app/assets/javascripts/application.js"
24
+ say "WARNING: Failed to inject `require moar` into #{manifest}. " \
25
+ "You must manually require moar.js to enable Ajax behavior."
26
+ end
27
+ end
28
+ end
26
29
  end
27
30
  end
28
31
  end
data/lib/moar/config.rb CHANGED
@@ -34,10 +34,10 @@ module Moar
34
34
  @config ||= Moar::Config.new
35
35
  end
36
36
 
37
- # @param c [Moar::Config]
38
- # @return [Moar::Config]
39
- def self.config=(c)
40
- @config = c
37
+ # @param cfg [Moar::Config]
38
+ # @return [cfg]
39
+ def self.config=(cfg)
40
+ @config = cfg
41
41
  end
42
42
 
43
43
  end
data/lib/moar/context.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  module Moar
2
+ # @!visibility private
2
3
  class Context
3
4
 
4
5
  attr_reader :increments, :page, :accumulative, :offset, :limit
5
6
 
6
- # @!visibility private
7
7
  def initialize(increments, page, accumulative)
8
8
  @increments = increments
9
9
  @page = [page, 1].max
data/lib/moar/helper.rb CHANGED
@@ -22,16 +22,16 @@ module Moar
22
22
  # is estimated by comparing +results.size+ with the limit applied by
23
23
  # {Moar::Controller#moar}. This technique eliminates the need for
24
24
  # an extra database query, but can result in a false positive (i.e.
25
- # rendering a link to an empty page) when the actual last page of
26
- # results is also a full page. This is deemed an acceptable
27
- # trade-off because with a large number of pages and a large total
28
- # number of results per page it is an unlikely occurrence, and
25
+ # rendering a link to an empty page) when the final page of results
26
+ # happens to be a full page. This is deemed an acceptable trade-off
27
+ # because it is an unlikely occurrence with both a large number of
28
+ # pages and a cumulatively large number of results per page, and
29
29
  # because an extra database query cannot entirely prevent a link to
30
30
  # an empty page, in the case where records are deleted before the
31
31
  # user can click through to the final page.
32
32
  #
33
33
  # @param results [ActiveRecord::Relation, Array<ActiveModel::Naming>]
34
- # query results for current page
34
+ # Query results for current page
35
35
  # @param target [String]
36
36
  # CSS selector of element containing rendered results
37
37
  # @param html_options [Hash]
@@ -66,10 +66,10 @@ module Moar
66
66
  html_options["data-accumulation-param"] = Moar.config.accumulation_param.to_s
67
67
  html_options["data-remote"] = true
68
68
  html_options["data-type"] = "html"
69
- html_options["data-disable-with"] = I18n.t(:"moar.loading", i18n_options)
69
+ html_options["data-disable-with"] = I18n.t(:"moar.loading", **i18n_options)
70
70
  end
71
71
 
72
- link_to I18n.t(:"moar.more", i18n_options), options, html_options
72
+ link_to I18n.t(:"moar.more", **i18n_options), options, html_options
73
73
  end
74
74
  end
75
75
 
data/lib/moar/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Moar
2
- VERSION = "1.0.1"
2
+ VERSION = "2.0.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moar
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Hefner
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2019-03-17 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rails
@@ -16,121 +15,16 @@ dependencies:
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: '5.1'
18
+ version: '8.1'
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
- version: '5.1'
27
- - !ruby/object:Gem::Dependency
28
- name: sqlite3
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'
41
- - !ruby/object:Gem::Dependency
42
- name: puma
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '3.11'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '3.11'
55
- - !ruby/object:Gem::Dependency
56
- name: capybara
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '2.15'
62
- - - "<"
63
- - !ruby/object:Gem::Version
64
- version: '4.0'
65
- type: :development
66
- prerelease: false
67
- version_requirements: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- version: '2.15'
72
- - - "<"
73
- - !ruby/object:Gem::Version
74
- version: '4.0'
75
- - !ruby/object:Gem::Dependency
76
- name: selenium-webdriver
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: '0'
89
- - !ruby/object:Gem::Dependency
90
- name: chromedriver-helper
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '0'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: '0'
103
- - !ruby/object:Gem::Dependency
104
- name: turbolinks
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: '5.1'
110
- type: :development
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - "~>"
115
- - !ruby/object:Gem::Version
116
- version: '5.1'
117
- - !ruby/object:Gem::Dependency
118
- name: yard
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: '0.9'
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - "~>"
129
- - !ruby/object:Gem::Version
130
- version: '0.9'
131
- description:
25
+ version: '8.1'
132
26
  email:
133
- - jonathan.hefner@gmail.com
27
+ - jonathan@hefner.pro
134
28
  executables: []
135
29
  extensions: []
136
30
  extra_rdoc_files: []
@@ -152,8 +46,9 @@ files:
152
46
  homepage: https://github.com/jonathanhefner/moar
153
47
  licenses:
154
48
  - MIT
155
- metadata: {}
156
- post_install_message:
49
+ metadata:
50
+ source_code_uri: https://github.com/jonathanhefner/moar
51
+ changelog_uri: https://github.com/jonathanhefner/moar/blob/master/CHANGELOG.md
157
52
  rdoc_options: []
158
53
  require_paths:
159
54
  - lib
@@ -161,15 +56,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
161
56
  requirements:
162
57
  - - ">="
163
58
  - !ruby/object:Gem::Version
164
- version: '0'
59
+ version: '3.4'
165
60
  required_rubygems_version: !ruby/object:Gem::Requirement
166
61
  requirements:
167
62
  - - ">="
168
63
  - !ruby/object:Gem::Version
169
64
  version: '0'
170
65
  requirements: []
171
- rubygems_version: 3.0.1
172
- signing_key:
66
+ rubygems_version: 4.0.10
173
67
  specification_version: 4
174
68
  summary: More-style pagination for Rails
175
69
  test_files: []