vinsol_spree_themes 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +36 -0
  3. data/.ruby-version +1 -0
  4. data/Appraisals +16 -0
  5. data/Gemfile +9 -0
  6. data/Gemfile.lock +386 -0
  7. data/LICENSE +26 -0
  8. data/README.md +250 -0
  9. data/Rakefile +21 -0
  10. data/app/assets/javascripts/spree/backend/codemirror/codemirror.js +9351 -0
  11. data/app/assets/javascripts/spree/backend/codemirror/css-hint.js +60 -0
  12. data/app/assets/javascripts/spree/backend/codemirror/fullscreen.js +41 -0
  13. data/app/assets/javascripts/spree/backend/codemirror/html-hint.js +348 -0
  14. data/app/assets/javascripts/spree/backend/codemirror/javascript-hint.js +155 -0
  15. data/app/assets/javascripts/spree/backend/codemirror/javascript.js +813 -0
  16. data/app/assets/javascripts/spree/backend/codemirror/markdown.js +796 -0
  17. data/app/assets/javascripts/spree/backend/codemirror/ruby.js +295 -0
  18. data/app/assets/javascripts/spree/backend/codemirror/show-hint.js +438 -0
  19. data/app/assets/javascripts/spree/backend/editor.js +11 -0
  20. data/app/assets/javascripts/spree/backend/jquery.treemenu.js +87 -0
  21. data/app/assets/javascripts/spree/backend/main.js +26 -0
  22. data/app/assets/javascripts/spree/backend/spree_themes.js +2 -0
  23. data/app/assets/javascripts/spree/backend/template.js +51 -0
  24. data/app/assets/javascripts/spree/backend/theme.js +17 -0
  25. data/app/assets/javascripts/spree/frontend/spree_themes.js +2 -0
  26. data/app/assets/stylesheets/spree/backend/codemirror/codemirror.css +340 -0
  27. data/app/assets/stylesheets/spree/backend/codemirror/fullscreen.css +6 -0
  28. data/app/assets/stylesheets/spree/backend/codemirror/show-hint.css +36 -0
  29. data/app/assets/stylesheets/spree/backend/editor.css +7 -0
  30. data/app/assets/stylesheets/spree/backend/jquery.treemenu.css +8 -0
  31. data/app/assets/stylesheets/spree/backend/spree_themes.css +7 -0
  32. data/app/assets/stylesheets/spree/backend/style.css +239 -0
  33. data/app/assets/stylesheets/spree/backend/template_editor.css +39 -0
  34. data/app/assets/stylesheets/spree/frontend/spree_themes.css +6 -0
  35. data/app/assets/stylesheets/spree/frontend/theme_preview.css +9 -0
  36. data/app/controllers/spree/admin/themes_controller.rb +80 -0
  37. data/app/controllers/spree/admin/themes_preview_controller.rb +30 -0
  38. data/app/controllers/spree/admin/themes_templates_controller.rb +60 -0
  39. data/app/controllers/spree/fragment_cache_controller.rb +13 -0
  40. data/app/controllers/spree/store_controller_decorator.rb +37 -0
  41. data/app/helpers/spree/base_helper_decorator.rb +45 -0
  42. data/app/models/spree/theme.rb +153 -0
  43. data/app/models/spree/themes_template.rb +67 -0
  44. data/app/models/spree/themes_template/cache_resolver.rb +37 -0
  45. data/app/overrides/spree/add_preview_bar_to_store.html.rb +6 -0
  46. data/app/overrides/spree/add_theme_meta_details_to_store.html.rb +6 -0
  47. data/app/overrides/spree/admin/add_themes_tab.html.rb +6 -0
  48. data/app/services/assets_precompiler_service.rb +86 -0
  49. data/app/services/file_generator_service.rb +29 -0
  50. data/app/services/template_generator_service.rb +101 -0
  51. data/app/services/zip_file_builder.rb +87 -0
  52. data/app/services/zip_file_extractor.rb +52 -0
  53. data/app/views/spree/admin/shared/_theme_menu_button.html.erb +5 -0
  54. data/app/views/spree/admin/themes/_themes.html.erb +44 -0
  55. data/app/views/spree/admin/themes/_upload.html.erb +17 -0
  56. data/app/views/spree/admin/themes/index.html.erb +50 -0
  57. data/app/views/spree/admin/themes_templates/_editor.html.erb +29 -0
  58. data/app/views/spree/admin/themes_templates/_template.html.erb +12 -0
  59. data/app/views/spree/admin/themes_templates/edit.html.erb +13 -0
  60. data/app/views/spree/admin/themes_templates/edit.js.erb +1 -0
  61. data/app/views/spree/admin/themes_templates/index.html.erb +27 -0
  62. data/app/views/spree/admin/themes_templates/new.html.erb +56 -0
  63. data/app/views/spree/shared/_preview_bar.html.erb +7 -0
  64. data/app/views/spree/shared/_theme_metadata.html.erb +9 -0
  65. data/bin/rails +7 -0
  66. data/config/initializers/assets.rb +24 -0
  67. data/config/initializers/sprockets.rb +85 -0
  68. data/config/locales/en.yml +52 -0
  69. data/config/routes.rb +22 -0
  70. data/db/migrate/20170628072452_vinsol_spree_themes_create_themes_and_themes_templates_table.rb +24 -0
  71. data/gemfiles/spree_3_1.gemfile +8 -0
  72. data/gemfiles/spree_3_2.gemfile +9 -0
  73. data/gemfiles/spree_master.gemfile +9 -0
  74. data/lib/generators/themes/default.zip +0 -0
  75. data/lib/generators/vinsol_spree_themes/install/install_generator.rb +50 -0
  76. data/lib/tasks/sync_templates.rake +47 -0
  77. data/lib/vinsol_spree_themes.rb +3 -0
  78. data/lib/vinsol_spree_themes/engine.rb +22 -0
  79. data/lib/vinsol_spree_themes/factories.rb +6 -0
  80. data/lib/vinsol_spree_themes/version.rb +18 -0
  81. data/spec/spec_helper.rb +93 -0
  82. data/vinsol_spree_themes.gemspec +43 -0
  83. metadata +374 -0
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "spree", ">= 3.2.0"
6
+ gem "spree_auth_devise", ">= 3.2.0"
7
+ gem "rails-controller-testing"
8
+
9
+ gemspec :path => "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "spree", :github => "spree/spree", :branch => "master"
6
+ gem "spree_auth_devise", :github => "spree/spree_auth_devise", :branch => "master"
7
+ gem "rails-controller-testing"
8
+
9
+ gemspec :path => "../"
@@ -0,0 +1,50 @@
1
+ module VinsolSpreeThemes
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+
5
+ class_option :auto_run_migrations, type: :boolean, default: false
6
+
7
+ def add_javascripts
8
+ append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/spree_themes\n"
9
+ append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/spree_themes\n"
10
+ end
11
+
12
+ def add_stylesheets
13
+ inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/spree_themes\n", before: /\*\//, verbose: true
14
+ inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/spree_themes\n", before: /\*\//, verbose: true
15
+ end
16
+
17
+ def add_migrations
18
+ run 'bundle exec rake railties:install:migrations FROM=vinsol_spree_themes'
19
+ end
20
+
21
+ def run_migrations
22
+ run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask 'Would you like to run the migrations now? [Y/n]')
23
+ if run_migrations
24
+ run 'bundle exec rake db:migrate'
25
+ else
26
+ puts 'Skipping rake db:migrate, don\'t forget to run it!'
27
+ end
28
+ end
29
+
30
+ def load_default_theme
31
+ puts 'Loading and applying default spree theme...'
32
+
33
+ filepath = "#{ ::VinsolSpreeThemes::Engine.root }/lib/generators/themes/default.zip"
34
+
35
+ # creating theme object.
36
+ theme = Spree::Theme.new(state: 'drafted', name: 'default')
37
+ theme.template_file = File.open(filepath)
38
+ theme.save(validate: false)
39
+
40
+ # extracting the zip file.
41
+ ZipFileExtractor.new(filepath, theme)
42
+
43
+ # publishing theme.
44
+ theme.compile
45
+ theme.publish
46
+ end
47
+
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,47 @@
1
+ namespace :db do
2
+
3
+ desc 'Sync theme templates with database. Need to pass theme name to sync as environment variable THEME_NAME.'
4
+ task sync_templates: :environment do
5
+
6
+ begin
7
+
8
+ raise puts 'Environment variable THEME_NAME not found, pass theme name as environment variable.' unless ENV['THEME_NAME']
9
+
10
+ INVALID_DIRECTORIES = ['.', '..', 'precompiled_assets']
11
+
12
+ theme = Spree::Theme.where(name: ENV['THEME_NAME']).first
13
+ THEME_PATH = File.join('public', 'vinsol_spree_themes', theme.name)
14
+
15
+ @filepaths_arr = []
16
+
17
+ def get_filepaths(path, name=nil)
18
+ Dir.foreach(path) do |entry|
19
+ next if INVALID_DIRECTORIES.include? entry
20
+
21
+ full_path = File.join(path, entry)
22
+
23
+ if File.directory?(full_path)
24
+ get_filepaths(full_path, entry)
25
+ else
26
+ @filepaths_arr << full_path
27
+ end
28
+ end
29
+ return @filepaths_arr
30
+ end
31
+
32
+ get_filepaths(THEME_PATH)
33
+
34
+ puts "############################## DB Sync started for theme #{ theme.name } ##############################"
35
+
36
+ @filepaths_arr.each do |filepath|
37
+ begin
38
+ puts "*************************** Syncing file #{ filepath } ***************************"
39
+ TemplateGeneratorService.new(filepath, theme).generate
40
+ rescue Exception => e
41
+ puts "#{ e.message }"
42
+ end
43
+ end
44
+
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,3 @@
1
+ require 'spree_core'
2
+ require 'vinsol_spree_themes/engine'
3
+ require 'vinsol_spree_themes/version'
@@ -0,0 +1,22 @@
1
+ module VinsolSpreeThemes
2
+ class Engine < Rails::Engine
3
+ require 'spree/core'
4
+ isolate_namespace Spree
5
+ engine_name 'vinsol_spree_themes'
6
+
7
+ # use rspec for tests
8
+ config.generators do |g|
9
+ g.test_framework :rspec
10
+ end
11
+
12
+ def self.activate
13
+ Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
14
+ Rails.configuration.cache_classes ? require(c) : load(c)
15
+ end
16
+ end
17
+
18
+ config.to_prepare &method(:activate).to_proc
19
+
20
+ Devise.parent_controller = 'Spree::StoreController'
21
+ end
22
+ end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ # Define your Spree extensions Factories within this file to enable applications, and other extensions to use and override them.
3
+ #
4
+ # Example adding this to your spec_helper will load these Factories for use:
5
+ # require 'vinsol_spree_themes/factories'
6
+ end
@@ -0,0 +1,18 @@
1
+ module VinsolSpreeThemes
2
+ module_function
3
+
4
+ # Returns the version of the currently loaded VinsolSpreeThemes as a
5
+ # <tt>Gem::Version</tt>.
6
+ def version
7
+ Gem::Version.new VERSION::STRING
8
+ end
9
+
10
+ module VERSION
11
+ MAJOR = 0
12
+ MINOR = 0
13
+ TINY = 1
14
+
15
+
16
+ STRING = [MAJOR, MINOR, TINY].compact.join('.')
17
+ end
18
+ end
@@ -0,0 +1,93 @@
1
+ # Run Coverage report
2
+ require 'simplecov'
3
+ SimpleCov.start do
4
+ add_filter 'spec/dummy'
5
+ add_group 'Controllers', 'app/controllers'
6
+ add_group 'Helpers', 'app/helpers'
7
+ add_group 'Mailers', 'app/mailers'
8
+ add_group 'Models', 'app/models'
9
+ add_group 'Views', 'app/views'
10
+ add_group 'Libraries', 'lib'
11
+ end
12
+
13
+ # Configure Rails Environment
14
+ ENV['RAILS_ENV'] = 'test'
15
+
16
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
17
+
18
+ require 'rspec/rails'
19
+ require 'database_cleaner'
20
+ require 'ffaker'
21
+
22
+ # Requires supporting ruby files with custom matchers and macros, etc,
23
+ # in spec/support/ and its subdirectories.
24
+ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
25
+
26
+ # Requires factories and other useful helpers defined in spree_core.
27
+ require 'spree/testing_support/authorization_helpers'
28
+ require 'spree/testing_support/capybara_ext'
29
+ require 'spree/testing_support/controller_requests'
30
+ require 'spree/testing_support/factories'
31
+ require 'spree/testing_support/url_helpers'
32
+
33
+ # Requires factories defined in lib/vinsol_spree_themes/factories.rb
34
+ require 'vinsol_spree_themes/factories'
35
+
36
+ RSpec.configure do |config|
37
+ config.include FactoryGirl::Syntax::Methods
38
+
39
+ # Infer an example group's spec type from the file location.
40
+ config.infer_spec_type_from_file_location!
41
+
42
+ # == URL Helpers
43
+ #
44
+ # Allows access to Spree's routes in specs:
45
+ #
46
+ # visit spree.admin_path
47
+ # current_path.should eql(spree.products_path)
48
+ config.include Spree::TestingSupport::UrlHelpers
49
+
50
+ # == Requests support
51
+ #
52
+ # Adds convenient methods to request Spree's controllers
53
+ # spree_get :index
54
+ config.include Spree::TestingSupport::ControllerRequests, type: :controller
55
+
56
+ # == Mock Framework
57
+ #
58
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
59
+ #
60
+ # config.mock_with :mocha
61
+ # config.mock_with :flexmock
62
+ # config.mock_with :rr
63
+ config.mock_with :rspec
64
+ config.color = true
65
+
66
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
67
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
68
+
69
+ # Capybara javascript drivers require transactional fixtures set to false, and we use DatabaseCleaner
70
+ # to cleanup after each test instead. Without transactional fixtures set to false the records created
71
+ # to setup a test will be unavailable to the browser, which runs under a separate server instance.
72
+ config.use_transactional_fixtures = false
73
+
74
+ # Ensure Suite is set to use transactions for speed.
75
+ config.before :suite do
76
+ DatabaseCleaner.strategy = :transaction
77
+ DatabaseCleaner.clean_with :truncation
78
+ end
79
+
80
+ # Before each spec check if it is a Javascript test and switch between using database transactions or not where necessary.
81
+ config.before :each do
82
+ DatabaseCleaner.strategy = RSpec.current_example.metadata[:js] ? :truncation : :transaction
83
+ DatabaseCleaner.start
84
+ end
85
+
86
+ # After each spec clean the database.
87
+ config.after :each do
88
+ DatabaseCleaner.clean
89
+ end
90
+
91
+ config.fail_fast = ENV['FAIL_FAST'] || false
92
+ config.order = "random"
93
+ end
@@ -0,0 +1,43 @@
1
+ # encoding: UTF-8
2
+ lib = File.expand_path('../lib/', __FILE__)
3
+ $LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
4
+
5
+ require 'vinsol_spree_themes/version'
6
+
7
+ Gem::Specification.new do |s|
8
+ s.platform = Gem::Platform::RUBY
9
+ s.name = 'vinsol_spree_themes'
10
+ s.version = VinsolSpreeThemes.version
11
+ s.summary = 'This extension creates a flexible system where admin can upload, modify the themes and publish it to spree store.'
12
+ s.description = 'This extension provides an interface for the admin to upload new themes, publish it to the spree store, modify the theme layout accordingly and later download it.'
13
+ s.required_ruby_version = '>= 2.2.2'
14
+
15
+ s.author = ['Paresh Gupta', 'Nimish Mehta']
16
+ s.email = 'info@vinsol.com'
17
+ s.homepage = 'http://vinsol.com'
18
+ s.license = 'BSD-3-Clause'
19
+
20
+ s.files = `git ls-files`.split("\n")
21
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
22
+ s.require_path = 'lib'
23
+ s.requirements << 'none'
24
+
25
+ s.add_dependency 'spree_core', '>= 3.2.0', '< 4.0'
26
+ s.add_dependency 'rubyzip', '~> 1.2.1'
27
+ s.add_dependency 'state_machine', '~> 1.2.0'
28
+ s.add_dependency 'sprockets-helpers', '~> 1.2.1'
29
+
30
+ s.add_development_dependency 'capybara'
31
+ s.add_development_dependency 'capybara-screenshot'
32
+ s.add_development_dependency 'coffee-rails'
33
+ s.add_development_dependency 'database_cleaner'
34
+ s.add_development_dependency 'factory_girl'
35
+ s.add_development_dependency 'ffaker'
36
+ s.add_development_dependency 'rspec-rails'
37
+ s.add_development_dependency 'sass-rails'
38
+ s.add_development_dependency 'selenium-webdriver'
39
+ s.add_development_dependency 'simplecov'
40
+ s.add_development_dependency 'pg'
41
+ s.add_development_dependency 'mysql2'
42
+ s.add_development_dependency 'appraisal'
43
+ end
metadata ADDED
@@ -0,0 +1,374 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: vinsol_spree_themes
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Paresh Gupta
8
+ - Nimish Mehta
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2017-07-26 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: spree_core
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: 3.2.0
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: '4.0'
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ version: 3.2.0
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: '4.0'
34
+ - !ruby/object:Gem::Dependency
35
+ name: rubyzip
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.2.1
41
+ type: :runtime
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.2.1
48
+ - !ruby/object:Gem::Dependency
49
+ name: state_machine
50
+ requirement: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.2.0
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.2.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: sprockets-helpers
64
+ requirement: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.2.1
69
+ type: :runtime
70
+ prerelease: false
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 1.2.1
76
+ - !ruby/object:Gem::Dependency
77
+ name: capybara
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ - !ruby/object:Gem::Dependency
91
+ name: capybara-screenshot
92
+ requirement: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ type: :development
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ - !ruby/object:Gem::Dependency
105
+ name: coffee-rails
106
+ requirement: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ type: :development
112
+ prerelease: false
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ - !ruby/object:Gem::Dependency
119
+ name: database_cleaner
120
+ requirement: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ type: :development
126
+ prerelease: false
127
+ version_requirements: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ - !ruby/object:Gem::Dependency
133
+ name: factory_girl
134
+ requirement: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ type: :development
140
+ prerelease: false
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ - !ruby/object:Gem::Dependency
147
+ name: ffaker
148
+ requirement: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ type: :development
154
+ prerelease: false
155
+ version_requirements: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ - !ruby/object:Gem::Dependency
161
+ name: rspec-rails
162
+ requirement: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: sass-rails
176
+ requirement: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ type: :development
182
+ prerelease: false
183
+ version_requirements: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ - !ruby/object:Gem::Dependency
189
+ name: selenium-webdriver
190
+ requirement: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ type: :development
196
+ prerelease: false
197
+ version_requirements: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ - !ruby/object:Gem::Dependency
203
+ name: simplecov
204
+ requirement: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ type: :development
210
+ prerelease: false
211
+ version_requirements: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ - !ruby/object:Gem::Dependency
217
+ name: pg
218
+ requirement: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ type: :development
224
+ prerelease: false
225
+ version_requirements: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ - !ruby/object:Gem::Dependency
231
+ name: mysql2
232
+ requirement: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ type: :development
238
+ prerelease: false
239
+ version_requirements: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ - !ruby/object:Gem::Dependency
245
+ name: appraisal
246
+ requirement: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ type: :development
252
+ prerelease: false
253
+ version_requirements: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ description: This extension provides an interface for the admin to upload new themes,
259
+ publish it to the spree store, modify the theme layout accordingly and later download
260
+ it.
261
+ email: info@vinsol.com
262
+ executables: []
263
+ extensions: []
264
+ extra_rdoc_files: []
265
+ files:
266
+ - ".gitignore"
267
+ - ".ruby-version"
268
+ - Appraisals
269
+ - Gemfile
270
+ - Gemfile.lock
271
+ - LICENSE
272
+ - README.md
273
+ - Rakefile
274
+ - app/assets/javascripts/spree/backend/codemirror/codemirror.js
275
+ - app/assets/javascripts/spree/backend/codemirror/css-hint.js
276
+ - app/assets/javascripts/spree/backend/codemirror/fullscreen.js
277
+ - app/assets/javascripts/spree/backend/codemirror/html-hint.js
278
+ - app/assets/javascripts/spree/backend/codemirror/javascript-hint.js
279
+ - app/assets/javascripts/spree/backend/codemirror/javascript.js
280
+ - app/assets/javascripts/spree/backend/codemirror/markdown.js
281
+ - app/assets/javascripts/spree/backend/codemirror/ruby.js
282
+ - app/assets/javascripts/spree/backend/codemirror/show-hint.js
283
+ - app/assets/javascripts/spree/backend/editor.js
284
+ - app/assets/javascripts/spree/backend/jquery.treemenu.js
285
+ - app/assets/javascripts/spree/backend/main.js
286
+ - app/assets/javascripts/spree/backend/spree_themes.js
287
+ - app/assets/javascripts/spree/backend/template.js
288
+ - app/assets/javascripts/spree/backend/theme.js
289
+ - app/assets/javascripts/spree/frontend/spree_themes.js
290
+ - app/assets/stylesheets/spree/backend/codemirror/codemirror.css
291
+ - app/assets/stylesheets/spree/backend/codemirror/fullscreen.css
292
+ - app/assets/stylesheets/spree/backend/codemirror/show-hint.css
293
+ - app/assets/stylesheets/spree/backend/editor.css
294
+ - app/assets/stylesheets/spree/backend/jquery.treemenu.css
295
+ - app/assets/stylesheets/spree/backend/spree_themes.css
296
+ - app/assets/stylesheets/spree/backend/style.css
297
+ - app/assets/stylesheets/spree/backend/template_editor.css
298
+ - app/assets/stylesheets/spree/frontend/spree_themes.css
299
+ - app/assets/stylesheets/spree/frontend/theme_preview.css
300
+ - app/controllers/spree/admin/themes_controller.rb
301
+ - app/controllers/spree/admin/themes_preview_controller.rb
302
+ - app/controllers/spree/admin/themes_templates_controller.rb
303
+ - app/controllers/spree/fragment_cache_controller.rb
304
+ - app/controllers/spree/store_controller_decorator.rb
305
+ - app/helpers/spree/base_helper_decorator.rb
306
+ - app/models/spree/theme.rb
307
+ - app/models/spree/themes_template.rb
308
+ - app/models/spree/themes_template/cache_resolver.rb
309
+ - app/overrides/spree/add_preview_bar_to_store.html.rb
310
+ - app/overrides/spree/add_theme_meta_details_to_store.html.rb
311
+ - app/overrides/spree/admin/add_themes_tab.html.rb
312
+ - app/services/assets_precompiler_service.rb
313
+ - app/services/file_generator_service.rb
314
+ - app/services/template_generator_service.rb
315
+ - app/services/zip_file_builder.rb
316
+ - app/services/zip_file_extractor.rb
317
+ - app/views/spree/admin/shared/_theme_menu_button.html.erb
318
+ - app/views/spree/admin/themes/_themes.html.erb
319
+ - app/views/spree/admin/themes/_upload.html.erb
320
+ - app/views/spree/admin/themes/index.html.erb
321
+ - app/views/spree/admin/themes_templates/_editor.html.erb
322
+ - app/views/spree/admin/themes_templates/_template.html.erb
323
+ - app/views/spree/admin/themes_templates/edit.html.erb
324
+ - app/views/spree/admin/themes_templates/edit.js.erb
325
+ - app/views/spree/admin/themes_templates/index.html.erb
326
+ - app/views/spree/admin/themes_templates/new.html.erb
327
+ - app/views/spree/shared/_preview_bar.html.erb
328
+ - app/views/spree/shared/_theme_metadata.html.erb
329
+ - bin/rails
330
+ - config/initializers/assets.rb
331
+ - config/initializers/sprockets.rb
332
+ - config/locales/en.yml
333
+ - config/routes.rb
334
+ - db/migrate/20170628072452_vinsol_spree_themes_create_themes_and_themes_templates_table.rb
335
+ - gemfiles/spree_3_1.gemfile
336
+ - gemfiles/spree_3_2.gemfile
337
+ - gemfiles/spree_master.gemfile
338
+ - lib/generators/themes/default.zip
339
+ - lib/generators/vinsol_spree_themes/install/install_generator.rb
340
+ - lib/tasks/sync_templates.rake
341
+ - lib/vinsol_spree_themes.rb
342
+ - lib/vinsol_spree_themes/engine.rb
343
+ - lib/vinsol_spree_themes/factories.rb
344
+ - lib/vinsol_spree_themes/version.rb
345
+ - spec/spec_helper.rb
346
+ - vinsol_spree_themes.gemspec
347
+ homepage: http://vinsol.com
348
+ licenses:
349
+ - BSD-3-Clause
350
+ metadata: {}
351
+ post_install_message:
352
+ rdoc_options: []
353
+ require_paths:
354
+ - lib
355
+ required_ruby_version: !ruby/object:Gem::Requirement
356
+ requirements:
357
+ - - ">="
358
+ - !ruby/object:Gem::Version
359
+ version: 2.2.2
360
+ required_rubygems_version: !ruby/object:Gem::Requirement
361
+ requirements:
362
+ - - ">="
363
+ - !ruby/object:Gem::Version
364
+ version: '0'
365
+ requirements:
366
+ - none
367
+ rubyforge_project:
368
+ rubygems_version: 2.6.12
369
+ signing_key:
370
+ specification_version: 4
371
+ summary: This extension creates a flexible system where admin can upload, modify the
372
+ themes and publish it to spree store.
373
+ test_files:
374
+ - spec/spec_helper.rb