searchkit-rails 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -1
- data/README.md +121 -1
- data/Rakefile +36 -0
- data/lib/assets/searchkit-source/development/searchkit.js +66547 -0
- data/lib/assets/searchkit-source/production/searchkit.js +61 -0
- data/lib/assets/stylesheets/searchkit.scss +1 -0
- data/lib/assets/stylesheets/searchkit/components.scss +42 -0
- data/lib/assets/stylesheets/searchkit/components/_actions.scss +20 -0
- data/lib/assets/stylesheets/searchkit/components/_arrows.scss +15 -0
- data/lib/assets/stylesheets/searchkit/components/_filter-group.scss +110 -0
- data/lib/assets/stylesheets/searchkit/components/_filter-item.scss +40 -0
- data/lib/assets/stylesheets/searchkit/components/_hierarchical-menu-filter.scss +32 -0
- data/lib/assets/stylesheets/searchkit/components/_hierarchical-refinement-filter.scss +27 -0
- data/lib/assets/stylesheets/searchkit/components/_hits-stats.scss +8 -0
- data/lib/assets/stylesheets/searchkit/components/_input-filter.scss +64 -0
- data/lib/assets/stylesheets/searchkit/components/_item-list.scss +58 -0
- data/lib/assets/stylesheets/searchkit/components/_loader.scss +28 -0
- data/lib/assets/stylesheets/searchkit/components/_menu-filter.scss +24 -0
- data/lib/assets/stylesheets/searchkit/components/_no-hits.scss +20 -0
- data/lib/assets/stylesheets/searchkit/components/_numeric-refinement-list-filter.scss +28 -0
- data/lib/assets/stylesheets/searchkit/components/_pagination.scss +12 -0
- data/lib/assets/stylesheets/searchkit/components/_panel.scss +61 -0
- data/lib/assets/stylesheets/searchkit/components/_range-filter.scss +55 -0
- data/lib/assets/stylesheets/searchkit/components/_range-histogram.scss +22 -0
- data/lib/assets/stylesheets/searchkit/components/_range-input.scss +37 -0
- data/lib/assets/stylesheets/searchkit/components/_range-slider.scss +25 -0
- data/lib/assets/stylesheets/searchkit/components/_refinement-list-filter.scss +27 -0
- data/lib/assets/stylesheets/searchkit/components/_reset-filters.scss +19 -0
- data/lib/assets/stylesheets/searchkit/components/_search-box.scss +54 -0
- data/lib/assets/stylesheets/searchkit/components/_search-icon.scss +3 -0
- data/lib/assets/stylesheets/searchkit/components/_select.scss +38 -0
- data/lib/assets/stylesheets/searchkit/components/_selected-filters.scss +45 -0
- data/lib/assets/stylesheets/searchkit/components/_sorting-selector.scss +38 -0
- data/lib/assets/stylesheets/searchkit/components/_table.scss +80 -0
- data/lib/assets/stylesheets/searchkit/components/_tabs.scss +54 -0
- data/lib/assets/stylesheets/searchkit/components/_tag-cloud.scss +55 -0
- data/lib/assets/stylesheets/searchkit/components/_tag-filter.scss +22 -0
- data/lib/assets/stylesheets/searchkit/components/_toggle.scss +61 -0
- data/lib/assets/stylesheets/searchkit/components/_view-switcher.scss +39 -0
- data/lib/assets/stylesheets/searchkit/images/search.svg +25 -0
- data/lib/assets/stylesheets/searchkit/theme.scss +369 -0
- data/lib/assets/stylesheets/searchkit/vars.scss +39 -0
- data/lib/generators/searchkit/install_generator.rb +56 -0
- data/lib/generators/templates/.keep +0 -0
- data/lib/searchkit/rails.rb +83 -1
- data/lib/searchkit/rails/asset_variant.rb +13 -0
- data/lib/searchkit/rails/engine.rb +11 -0
- data/lib/searchkit/rails/railtie.rb +29 -0
- data/lib/searchkit/rails/version.rb +1 -1
- data/searchkit-builds/package.json +10 -0
- data/searchkit-builds/searchkit.js +3 -0
- data/searchkit-builds/webpack.config.js +30 -0
- data/searchkit-rails.gemspec +15 -2
- data/spec/dummy/README.rdoc +3 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/images/.keep +0 -0
- data/spec/dummy/app/assets/javascripts/application.js +0 -0
- data/spec/dummy/app/assets/stylesheets/application.css +2 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +28 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +23 -0
- data/spec/dummy/config/environments/production.rb +82 -0
- data/spec/dummy/config/environments/test.rb +38 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +18 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +3 -0
- data/spec/dummy/config/locales/es.yml +3 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/log/.keep +0 -0
- data/spec/dummy/log/test.log +0 -0
- data/spec/searchkit/rails/rails_spec.rb +1 -1
- data/spec/spec_helper.rb +14 -2
- metadata +248 -7
@@ -0,0 +1,39 @@
|
|
1
|
+
$sk-bold-weight: 700 !default;
|
2
|
+
$sk-medium-weight: 500 !default;
|
3
|
+
$sk-light-weight: 300 !default;
|
4
|
+
|
5
|
+
$sk-font-family: -apple-system, BlinkMacSystemFont,
|
6
|
+
"Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
|
7
|
+
"Fira Sans", "Droid Sans", "Helvetica Neue",
|
8
|
+
sans-serif !default;
|
9
|
+
|
10
|
+
$sk-layout-background: #f4f4f4 !default;
|
11
|
+
$sk-layout-panel-background: white !default;
|
12
|
+
$sk-primary-theme-color: #2a4466 !default;
|
13
|
+
$sk-active-bg-color: #08c !default;
|
14
|
+
$sk-border-color: #ccc !default;
|
15
|
+
$sk-title-color: black !default;
|
16
|
+
$sk-text-color: #444 !default;
|
17
|
+
$sk-text-secondary-color: #777 !default;
|
18
|
+
$sk-list-text-color: #666 !default;
|
19
|
+
$sk-list-secondary-text-color: #ccc !default;
|
20
|
+
$sk-action-text-color: #08c !default;
|
21
|
+
$sk-action-active-color: #000 !default;
|
22
|
+
$sk-disabled-text-color: #ddd !default;
|
23
|
+
$sk-remove-action-color: #fa2a00 !default;
|
24
|
+
|
25
|
+
$sk-selector-background: white !default;
|
26
|
+
$sk-selector-active-background: #08c !default;
|
27
|
+
$sk-selector-border-color: #ccc !default;
|
28
|
+
$sk-selector-text-color: black !default;
|
29
|
+
$sk-selector-active-text-color: white !default;
|
30
|
+
|
31
|
+
$sk-selected-filters-background: #f4f4f4 !default;
|
32
|
+
|
33
|
+
$sk-heading-font-size: 14px !default;
|
34
|
+
$sk-text-font-size: 14px !default;
|
35
|
+
$sk-list-font-size: 14px !default;
|
36
|
+
$sk-action-font-size: 14px !default;
|
37
|
+
$sk-list-secondary-font-size: 12px !default;
|
38
|
+
|
39
|
+
$sk-border-radius: 3px !default;
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module Searchkit
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < ::Rails::Generators::Base
|
4
|
+
source_root File.expand_path '../../templates', __FILE__
|
5
|
+
|
6
|
+
desc 'Create default searchkit.js folder layout and prep application.js'
|
7
|
+
|
8
|
+
class_option :skip_git,
|
9
|
+
type: :boolean,
|
10
|
+
aliases: '-g',
|
11
|
+
default: false,
|
12
|
+
desc: 'Skip Git keeps'
|
13
|
+
|
14
|
+
def inject_searchkit
|
15
|
+
require_searchkit_js = "//= require searchkit\n"
|
16
|
+
require_searchkit_css = "*= require searchkit\n"
|
17
|
+
|
18
|
+
# Inject on js
|
19
|
+
if js_manifest.exist?
|
20
|
+
manifest_contents = File.read(js_manifest)
|
21
|
+
|
22
|
+
if match = manifest_contents.match(/\/\/=\s+require\s+react\s+\n/)
|
23
|
+
inject_into_file js_manifest, require_searchkit_js, { before: match[0] }
|
24
|
+
else
|
25
|
+
append_file js_manifest, require_searchkit_js
|
26
|
+
end
|
27
|
+
else
|
28
|
+
create_file js_manifest, require_searchkit_js
|
29
|
+
end
|
30
|
+
|
31
|
+
# Inject on css
|
32
|
+
if css_manifest.exist?
|
33
|
+
manifest_contents = File.read(css_manifest)
|
34
|
+
|
35
|
+
if match = manifest_contents.match(/\/\/=\s+require_tree[^\n]*/)
|
36
|
+
inject_into_file css_manifest, require_searchkit_css, { after: match[0] }
|
37
|
+
else
|
38
|
+
append_file css_manifest, require_searchkit_css
|
39
|
+
end
|
40
|
+
else
|
41
|
+
create_file css_manifest, require_searchkit_css
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
|
47
|
+
def js_manifest
|
48
|
+
Pathname.new(destination_root).join('app/assets/javascripts', 'application.js')
|
49
|
+
end
|
50
|
+
|
51
|
+
def css_manifest
|
52
|
+
Pathname.new(destination_root).join('app/assets/stylesheets', 'application.css')
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
File without changes
|
data/lib/searchkit/rails.rb
CHANGED
@@ -1 +1,83 @@
|
|
1
|
-
require 'searchkit/rails/
|
1
|
+
require 'searchkit/rails/asset_variant'
|
2
|
+
require 'searchkit/rails/railtie'
|
3
|
+
require 'searchkit/rails/version'
|
4
|
+
|
5
|
+
module Searchkit
|
6
|
+
module Rails
|
7
|
+
class << self
|
8
|
+
def load!
|
9
|
+
register_compass_extension if compass?
|
10
|
+
|
11
|
+
if rails?
|
12
|
+
register_rails_engine
|
13
|
+
elsif lotus?
|
14
|
+
register_lotus
|
15
|
+
elsif sprockets?
|
16
|
+
register_sprockets
|
17
|
+
end
|
18
|
+
|
19
|
+
configure_sass
|
20
|
+
end
|
21
|
+
|
22
|
+
# Paths
|
23
|
+
def gem_path
|
24
|
+
@gem_path ||= File.expand_path '..', File.dirname(__FILE__)
|
25
|
+
end
|
26
|
+
|
27
|
+
def stylesheets_path
|
28
|
+
File.join assets_path, 'stylesheets'
|
29
|
+
end
|
30
|
+
|
31
|
+
def assets_path
|
32
|
+
@assets_path ||= File.join gem_path, 'lib/assets'
|
33
|
+
end
|
34
|
+
|
35
|
+
# Environment detection helpers
|
36
|
+
def sprockets?
|
37
|
+
defined?(::Sprockets)
|
38
|
+
end
|
39
|
+
|
40
|
+
def compass?
|
41
|
+
defined?(::Compass::Frameworks)
|
42
|
+
end
|
43
|
+
|
44
|
+
def rails?
|
45
|
+
defined?(::Rails)
|
46
|
+
end
|
47
|
+
|
48
|
+
def lotus?
|
49
|
+
defined?(::Lotus)
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def configure_sass
|
55
|
+
require 'sass'
|
56
|
+
|
57
|
+
::Sass.load_paths << stylesheets_path
|
58
|
+
|
59
|
+
::Sass::Script::Number.precision = [8, ::Sass::Script::Number.precision].max
|
60
|
+
end
|
61
|
+
|
62
|
+
def register_compass_extension
|
63
|
+
::Compass::Frameworks.register(
|
64
|
+
'bootstrap',
|
65
|
+
:version => Bootstrap::VERSION,
|
66
|
+
:path => gem_path,
|
67
|
+
:stylesheets_directory => stylesheets_path,
|
68
|
+
:templates_directory => File.join(gem_path, 'lib/generators/templates')
|
69
|
+
)
|
70
|
+
end
|
71
|
+
|
72
|
+
def register_rails_engine
|
73
|
+
require 'searchkit/rails/engine'
|
74
|
+
end
|
75
|
+
|
76
|
+
def register_lotus
|
77
|
+
Lotus::Assets.sources << assets_path
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
Searchkit::Rails.load!
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Searchkit
|
2
|
+
module Rails
|
3
|
+
class AssetVariant
|
4
|
+
GEM_ROOT = Pathname.new('../../../../').expand_path(__FILE__)
|
5
|
+
attr_reader :searchkit_build, :searchkit_directory
|
6
|
+
|
7
|
+
def initialize(options={})
|
8
|
+
@searchkit_build = options[:variant] == :production ? 'production' : 'development'
|
9
|
+
@searchkit_directory = GEM_ROOT.join('lib/assets/searchkit-source/').join(@searchkit_build).to_s
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module Searchkit
|
2
|
+
module Rails
|
3
|
+
class Engine < ::Rails::Engine
|
4
|
+
initializer 'searchkit-sass.assets.precompile' do |app|
|
5
|
+
%w(stylesheets javascripts images).each do |sub|
|
6
|
+
app.config.assets.paths << root.join('lib/assets', sub).to_s
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'rails'
|
2
|
+
|
3
|
+
module Searchkit
|
4
|
+
module Rails
|
5
|
+
class Railtie < ::Rails::Railtie
|
6
|
+
config.searchkit = ActiveSupport::OrderedOptions.new
|
7
|
+
|
8
|
+
# Defaults, you can override in application.rb
|
9
|
+
config.searchkit.variant = (::Rails.env.production? ? :production : :development)
|
10
|
+
|
11
|
+
initializer "searchkit_rails.bust_cache", group: :all do |app|
|
12
|
+
asset_variant = Searchkit::Rails::AssetVariant.new({ variant: app.config.searchkit.variant })
|
13
|
+
|
14
|
+
sprockets_env = app.assets || app.config.assets # sprockets-rails 3.x attaches this at a different config
|
15
|
+
sprockets_env.version = [sprockets_env.version, "searchkit-#{asset_variant.searchkit_build}"].compact.join('-')
|
16
|
+
end
|
17
|
+
|
18
|
+
initializer "searchkit_rails.set_variant", after: :engines_blank_point, group: :all do |app|
|
19
|
+
asset_variant = Searchkit::Rails::AssetVariant.new({ variant: app.config.searchkit.variant })
|
20
|
+
|
21
|
+
app.config.assets.paths << asset_variant.searchkit_directory
|
22
|
+
end
|
23
|
+
|
24
|
+
initializer "searchkit_rails.setup_engine", :group => :all do |app|
|
25
|
+
sprockets_env = app.assets || Sprockets # Sprockets 3.x expects this in a different place
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
// Use `rake react:update` to build this bundle & copy files into the gem.
|
2
|
+
var webpack = require("webpack");
|
3
|
+
|
4
|
+
var searchkitRailsEnv = process.env.NODE_ENV == "production" ? "production" : "development";
|
5
|
+
|
6
|
+
var plugins = [];
|
7
|
+
|
8
|
+
if (searchkitRailsEnv == "production") {
|
9
|
+
var definePlugin = new webpack.DefinePlugin({'process.env.NODE_ENV': '"production"'});
|
10
|
+
var minifyPlugin = new webpack.optimize.UglifyJsPlugin({
|
11
|
+
compress: {
|
12
|
+
warnings: false
|
13
|
+
}
|
14
|
+
});
|
15
|
+
plugins.push(definePlugin);
|
16
|
+
plugins.push(minifyPlugin);
|
17
|
+
}
|
18
|
+
|
19
|
+
|
20
|
+
module.exports = {
|
21
|
+
context: __dirname,
|
22
|
+
entry: {
|
23
|
+
"searchkit": "./searchkit.js",
|
24
|
+
},
|
25
|
+
output: {
|
26
|
+
path: __dirname + "/build/" + searchkitRailsEnv,
|
27
|
+
filename: "[name].js",
|
28
|
+
},
|
29
|
+
plugins: plugins,
|
30
|
+
};
|
data/searchkit-rails.gemspec
CHANGED
@@ -20,12 +20,25 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
|
21
21
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
22
22
|
s.require_paths = ['lib']
|
23
|
-
|
23
|
+
|
24
24
|
s.add_dependency 'rails', '>= 4.2'
|
25
|
+
s.add_dependency 'react-rails', '>= 1.7'
|
26
|
+
s.add_dependency 'sass', '>= 3.3.4'
|
25
27
|
|
28
|
+
# Standard dependencies
|
26
29
|
s.add_development_dependency('bundler')
|
27
30
|
s.add_development_dependency('rake')
|
28
|
-
s.add_development_dependency('rspec'
|
31
|
+
s.add_development_dependency('rspec-rails')
|
32
|
+
s.add_development_dependency('capybara')
|
33
|
+
s.add_development_dependency('factory_girl_rails')
|
29
34
|
s.add_development_dependency('pry-byebug', '~>3.3.0')
|
35
|
+
|
36
|
+
# Dummy Rails app dependencies
|
37
|
+
s.add_development_dependency 'actionpack', '>= 4.1.5'
|
38
|
+
s.add_development_dependency 'activesupport', '>= 4.1.5'
|
39
|
+
s.add_development_dependency 'json', '>= 1.8.1'
|
40
|
+
s.add_development_dependency 'sprockets-rails', '>= 2.1.3'
|
41
|
+
s.add_development_dependency 'slim-rails'
|
42
|
+
s.add_development_dependency 'uglifier'
|
30
43
|
end
|
31
44
|
|
data/spec/dummy/Rakefile
ADDED
File without changes
|
File without changes
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Dummy Rails App</title>
|
5
|
+
<%= stylesheet_link_tag 'application', media: "all", 'data-turbolinks-track' => true %>
|
6
|
+
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
|
7
|
+
<%= csrf_meta_tags %>
|
8
|
+
</head>
|
9
|
+
|
10
|
+
<body>
|
11
|
+
<%= yield %>
|
12
|
+
</body>
|
13
|
+
|
14
|
+
</html>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.expand_path('../boot', __FILE__)
|
2
|
+
|
3
|
+
require 'rails'
|
4
|
+
|
5
|
+
%w(
|
6
|
+
action_controller
|
7
|
+
action_view
|
8
|
+
sprockets
|
9
|
+
).each do |framework|
|
10
|
+
require "#{framework}/railtie"
|
11
|
+
end
|
12
|
+
|
13
|
+
require 'slim-rails'
|
14
|
+
require 'uglifier'
|
15
|
+
|
16
|
+
module Dummy
|
17
|
+
class Application < Rails::Application
|
18
|
+
config.assets.enabled = true if config.assets.respond_to?(:enabled)
|
19
|
+
config.assets.precompile += %w( application.css application.js )
|
20
|
+
config.to_prepare do
|
21
|
+
if ENV['VERBOSE']
|
22
|
+
STDERR.puts "Loaded Rails #{Rails::VERSION::STRING}, Sprockets #{Sprockets::VERSION}",
|
23
|
+
"Asset paths: #{Rails.application.config.assets.paths}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
Dummy::Application.configure do
|
2
|
+
# Settings specified here will take precedence over those in config/application.rb.
|
3
|
+
|
4
|
+
# In the development environment your application's code is reloaded on
|
5
|
+
# every request. This slows down response time but is perfect for development
|
6
|
+
# since you don't have to restart the web server when you make code changes.
|
7
|
+
config.cache_classes = false
|
8
|
+
|
9
|
+
# Do not eager load code on boot.
|
10
|
+
config.eager_load = false
|
11
|
+
|
12
|
+
# Show full error reports and disable caching.
|
13
|
+
config.consider_all_requests_local = true
|
14
|
+
config.action_controller.perform_caching = false
|
15
|
+
|
16
|
+
# Print deprecation notices to the Rails logger.
|
17
|
+
config.active_support.deprecation = :log
|
18
|
+
|
19
|
+
# Debug mode disables concatenation and preprocessing of assets.
|
20
|
+
# This option may cause significant delays in view rendering with a large
|
21
|
+
# number of complex assets.
|
22
|
+
config.assets.debug = true
|
23
|
+
end
|