simpleadmin 1.4.0 → 1.5.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 +5 -5
- data/.gitignore +0 -3
- data/.rspec +0 -2
- data/.rubocop.yml +10 -58
- data/.travis.yml +1 -11
- data/Gemfile +3 -17
- data/Gemfile.lock +14 -150
- data/LICENSE.txt +21 -0
- data/README.md +35 -19
- data/Rakefile +2 -4
- data/bin/console +4 -3
- data/lib/simpleadmin.rb +104 -2
- data/lib/simpleadmin/adapters/base.rb +50 -0
- data/lib/simpleadmin/adapters/postgres.rb +132 -0
- data/lib/simpleadmin/config.rb +83 -0
- data/lib/simpleadmin/database_connector.rb +35 -0
- data/lib/simpleadmin/decorators/fields/base.rb +34 -0
- data/lib/simpleadmin/decorators/fields/image.rb +19 -0
- data/lib/simpleadmin/decorators/fields_decorator.rb +44 -0
- data/lib/simpleadmin/version.rb +3 -1
- data/simpleadmin.gemspec +18 -14
- metadata +29 -35
- data/CODE_OF_CONDUCT.md +0 -74
- data/app/controllers/simple_admin/base_controller.rb +0 -15
- data/app/controllers/simple_admin/entities_controller.rb +0 -26
- data/app/controllers/simple_admin/entity_field_type_actions_controller.rb +0 -13
- data/app/controllers/simple_admin/resources_controller.rb +0 -80
- data/app/controllers/simple_admin/versions_controller.rb +0 -9
- data/app/services/entity_field_types/status_field.rb +0 -8
- data/app/services/entity_service.rb +0 -33
- data/app/services/resource_search_service.rb +0 -22
- data/app/services/resource_service.rb +0 -43
- data/lib/rails/application.rb +0 -13
- data/lib/simpleadmin/application.rb +0 -11
- data/lib/simpleadmin/engine.rb +0 -6
- data/lib/simpleadmin/routes.rb +0 -17
| @@ -1,33 +0,0 @@ | |
| 1 | 
            -
            class EntityService
         | 
| 2 | 
            -
              def index_action
         | 
| 3 | 
            -
                models = []
         | 
| 4 | 
            -
             | 
| 5 | 
            -
                ApplicationRecord.descendants.each do |model|
         | 
| 6 | 
            -
                  name = model.name
         | 
| 7 | 
            -
                  columns = model.columns.map do |column|
         | 
| 8 | 
            -
                    {
         | 
| 9 | 
            -
                      name: column.name,
         | 
| 10 | 
            -
                      type: column.sql_type.parameterize.underscore
         | 
| 11 | 
            -
                    }
         | 
| 12 | 
            -
                  end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                  models.push(
         | 
| 15 | 
            -
                    name: name,
         | 
| 16 | 
            -
                    columns: columns
         | 
| 17 | 
            -
                  )
         | 
| 18 | 
            -
                end
         | 
| 19 | 
            -
             | 
| 20 | 
            -
                {
         | 
| 21 | 
            -
                  models: models
         | 
| 22 | 
            -
                }
         | 
| 23 | 
            -
              end
         | 
| 24 | 
            -
             | 
| 25 | 
            -
              def show_action(resource_klass)
         | 
| 26 | 
            -
                {
         | 
| 27 | 
            -
                  name:         resource_klass.name,
         | 
| 28 | 
            -
                  column_names: resource_klass.column_names,
         | 
| 29 | 
            -
                  columns:      resource_klass.columns.map { |column| { name: column.name, type: column.sql_type.parameterize.underscore } },
         | 
| 30 | 
            -
                  reflections:  resource_klass.reflections.keys
         | 
| 31 | 
            -
                }
         | 
| 32 | 
            -
              end
         | 
| 33 | 
            -
            end
         | 
| @@ -1,22 +0,0 @@ | |
| 1 | 
            -
            class ResourceSearchService
         | 
| 2 | 
            -
              attr_reader :search_query, :model_klass, :model_attributes
         | 
| 3 | 
            -
             | 
| 4 | 
            -
              def initialize(search_query, model_klass, model_attributes)
         | 
| 5 | 
            -
                @search_query = search_query
         | 
| 6 | 
            -
             | 
| 7 | 
            -
                @model_klass = model_klass
         | 
| 8 | 
            -
                @model_attributes = model_attributes
         | 
| 9 | 
            -
              end
         | 
| 10 | 
            -
             | 
| 11 | 
            -
              def run
         | 
| 12 | 
            -
                return [] if model_attributes.empty?
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                query = model_attributes.map { |model_attribute| "#{model_attribute} LIKE ?" }.join(' OR ')
         | 
| 15 | 
            -
                query_arguments = model_attributes.map { "%#{search_query}%" }
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                OpenStruct.new(
         | 
| 18 | 
            -
                  resources: model_klass.where(query, *query_arguments),
         | 
| 19 | 
            -
                  total: model_klass.where(query, *query_arguments).count
         | 
| 20 | 
            -
                )
         | 
| 21 | 
            -
              end
         | 
| 22 | 
            -
            end
         | 
| @@ -1,43 +0,0 @@ | |
| 1 | 
            -
            class ResourceService
         | 
| 2 | 
            -
              attr_reader :model_klass, :model_fields
         | 
| 3 | 
            -
             | 
| 4 | 
            -
              def initialize(model_klass, model_fields)
         | 
| 5 | 
            -
                @model_klass  = model_klass
         | 
| 6 | 
            -
                @model_fields = model_fields
         | 
| 7 | 
            -
              end
         | 
| 8 | 
            -
             | 
| 9 | 
            -
              def index_action(per_page, page, sort, query, model_attributes, reflection_tables, reflection_columns)
         | 
| 10 | 
            -
                per_page = per_page.to_i
         | 
| 11 | 
            -
                page     = page.to_i if page.present?
         | 
| 12 | 
            -
             | 
| 13 | 
            -
                total = model_klass.count
         | 
| 14 | 
            -
             | 
| 15 | 
            -
                resources = model_klass.limit(per_page)
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                if reflection_tables.present?
         | 
| 18 | 
            -
                  resources = resources.includes(reflection_tables)
         | 
| 19 | 
            -
                  model_fields.push(*reflection_columns)
         | 
| 20 | 
            -
                end
         | 
| 21 | 
            -
             | 
| 22 | 
            -
                if query.present?
         | 
| 23 | 
            -
                  resource_search_service_instance = ResourceSearchService.new(query, model_klass_name, model_attributes)
         | 
| 24 | 
            -
                  resource_search_service_result   = resource_search_service_instance.run
         | 
| 25 | 
            -
             | 
| 26 | 
            -
                  resources = resource_search_service_result.resources
         | 
| 27 | 
            -
                  total     = resource_search_service_result.total
         | 
| 28 | 
            -
                end
         | 
| 29 | 
            -
             | 
| 30 | 
            -
                resources = resources.offset((per_page * page) - per_page) if page.present?
         | 
| 31 | 
            -
             | 
| 32 | 
            -
                resources = if sort.present?
         | 
| 33 | 
            -
                  resources.order(sort[:column_name] => sort[:order])
         | 
| 34 | 
            -
                            else
         | 
| 35 | 
            -
                  resources.order(id: :asc)
         | 
| 36 | 
            -
                            end
         | 
| 37 | 
            -
             | 
| 38 | 
            -
                {
         | 
| 39 | 
            -
                  resources: resources.pluck(*model_fields).map { |resource| model_fields.zip(resource).to_h },
         | 
| 40 | 
            -
                  total: total
         | 
| 41 | 
            -
                }
         | 
| 42 | 
            -
              end
         | 
| 43 | 
            -
            end
         | 
    
        data/lib/rails/application.rb
    DELETED
    
    | @@ -1,13 +0,0 @@ | |
| 1 | 
            -
            module Rails
         | 
| 2 | 
            -
              class Application
         | 
| 3 | 
            -
                def load_models!
         | 
| 4 | 
            -
                  load_path = 'app/models'
         | 
| 5 | 
            -
             | 
| 6 | 
            -
                  matcher = /\A#{Regexp.escape(load_path.to_s)}\/(.*)\.rb\Z/
         | 
| 7 | 
            -
             | 
| 8 | 
            -
                  Dir.glob("#{load_path}/**/*.rb").sort.each do |file|
         | 
| 9 | 
            -
                    require_dependency file.sub(matcher, '\1')
         | 
| 10 | 
            -
                  end
         | 
| 11 | 
            -
                end
         | 
| 12 | 
            -
              end
         | 
| 13 | 
            -
            end
         | 
    
        data/lib/simpleadmin/engine.rb
    DELETED
    
    
    
        data/lib/simpleadmin/routes.rb
    DELETED
    
    | @@ -1,17 +0,0 @@ | |
| 1 | 
            -
            module ActionDispatch::Routing
         | 
| 2 | 
            -
              class Mapper
         | 
| 3 | 
            -
                def mount_simpleadmin
         | 
| 4 | 
            -
                  namespace :simple_admin do
         | 
| 5 | 
            -
                    resources :entities, only: %i[index show]
         | 
| 6 | 
            -
                    resources :entity_field_type_actions, only: :create
         | 
| 7 | 
            -
             | 
| 8 | 
            -
                    resources :resources do
         | 
| 9 | 
            -
                      get :show_by,    on: :collection
         | 
| 10 | 
            -
                      get :show_total, on: :collection
         | 
| 11 | 
            -
                    end
         | 
| 12 | 
            -
             | 
| 13 | 
            -
                    get 'version', to: 'versions#show'
         | 
| 14 | 
            -
                  end
         | 
| 15 | 
            -
                end
         | 
| 16 | 
            -
              end
         | 
| 17 | 
            -
            end
         |