rails_ops 1.0.0.beta7 → 1.0.0.beta8
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/LICENSE.txt +1 -1
 - data/README.md +63 -3
 - data/VERSION +1 -1
 - data/lib/rails_ops.rb +5 -2
 - data/rails_ops.gemspec +3 -3
 - metadata +3 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 2 
     | 
    
         
            +
            SHA256:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 54e89e111239e2e4cde9619150a98e5bcd5649dc0168c3e36b2880aebb31bdf6
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 1b10735d02b9ce98c45a15c21b5acf7b10b1a2ed4fc8fef07596e016a088c2cb
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 8762d1a7adbccdf779591132328a1a918e3beba62e130530a44cd46d8b4dcc39b20f3a8ba43d3d07225500e4a9a0fbf08ac20e1d887eaec667be38d0ed2689af
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: de07d7c6827d446b0d4838b775ef2abd5a1d6dacfc05075e0f30fcafaccfb7246cae4e04b0e6377ab85d908b90486adb6afa6f3ecbc16da09228ffd5de986ac6
         
     | 
    
        data/LICENSE.txt
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -211,7 +211,8 @@ Params Handling 
     | 
|
| 
       211 
211 
     | 
    
         | 
| 
       212 
212 
     | 
    
         
             
            Each single operation can take a `params` hash. Note that it does not have to be
         
     | 
| 
       213 
213 
     | 
    
         
             
            in any relation with `ActionController`'s params - it's just a plain ruby hash
         
     | 
| 
       214 
     | 
    
         
            -
            called `params 
     | 
| 
      
 214 
     | 
    
         
            +
            called `params` (in fact, it is a `Object::HashWithIndifferentAcces`, more on
         
     | 
| 
      
 215 
     | 
    
         
            +
            that later).
         
     | 
| 
       215 
216 
     | 
    
         | 
| 
       216 
217 
     | 
    
         
             
            Params are assigned to the operation via their constructor:
         
     | 
| 
       217 
218 
     | 
    
         | 
| 
         @@ -922,7 +923,7 @@ This behavior can also be overwritten per operation using the 
     | 
|
| 
       922 
923 
     | 
    
         | 
| 
       923 
924 
     | 
    
         
             
            ```ruby
         
     | 
| 
       924 
925 
     | 
    
         
             
            class Operations::User::Load < RailsOps::Operation::Model::Load
         
     | 
| 
       925 
     | 
    
         
            -
              model User
         
     | 
| 
      
 926 
     | 
    
         
            +
              model ::User
         
     | 
| 
       926 
927 
     | 
    
         
             
              lock_model_at_build false # Takes `true` if no argument is passed
         
     | 
| 
       927 
928 
     | 
    
         
             
            end
         
     | 
| 
       928 
929 
     | 
    
         
             
            ```
         
     | 
| 
         @@ -941,9 +942,36 @@ that. 
     | 
|
| 
       941 
942 
     | 
    
         | 
| 
       942 
943 
     | 
    
         
             
            The `perform` method saves the record using `save!`.
         
     | 
| 
       943 
944 
     | 
    
         | 
| 
      
 945 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 946 
     | 
    
         
            +
            class Operations::User::Create < RailsOps::Operation::Model::Create
         
     | 
| 
      
 947 
     | 
    
         
            +
              schema do
         
     | 
| 
      
 948 
     | 
    
         
            +
                req :user do
         
     | 
| 
      
 949 
     | 
    
         
            +
                  opt :first_name
         
     | 
| 
      
 950 
     | 
    
         
            +
                  opt :last_name
         
     | 
| 
      
 951 
     | 
    
         
            +
                end
         
     | 
| 
      
 952 
     | 
    
         
            +
              end
         
     | 
| 
      
 953 
     | 
    
         
            +
             
     | 
| 
      
 954 
     | 
    
         
            +
              model User
         
     | 
| 
      
 955 
     | 
    
         
            +
            end
         
     | 
| 
      
 956 
     | 
    
         
            +
            ```
         
     | 
| 
      
 957 
     | 
    
         
            +
             
     | 
| 
       944 
958 
     | 
    
         
             
            As this base class is very minimalistic, it is recommended to fully read and
         
     | 
| 
       945 
959 
     | 
    
         
             
            comprehend its source code.
         
     | 
| 
       946 
960 
     | 
    
         | 
| 
      
 961 
     | 
    
         
            +
            #### Overriding the perform method
         
     | 
| 
      
 962 
     | 
    
         
            +
             
     | 
| 
      
 963 
     | 
    
         
            +
            While in many cases there is no need for overriding the `perform` method, this
         
     | 
| 
      
 964 
     | 
    
         
            +
            can be useful i.e. when assigning or altering properties manually:
         
     | 
| 
      
 965 
     | 
    
         
            +
             
     | 
| 
      
 966 
     | 
    
         
            +
             
     | 
| 
      
 967 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 968 
     | 
    
         
            +
            def perform
         
     | 
| 
      
 969 
     | 
    
         
            +
              model.some_value = 42
         
     | 
| 
      
 970 
     | 
    
         
            +
              model.first_name.upcase!
         
     | 
| 
      
 971 
     | 
    
         
            +
              super # Saves the record
         
     | 
| 
      
 972 
     | 
    
         
            +
            end
         
     | 
| 
      
 973 
     | 
    
         
            +
            ```
         
     | 
| 
      
 974 
     | 
    
         
            +
             
     | 
| 
       947 
975 
     | 
    
         
             
            ### Updating models
         
     | 
| 
       948 
976 
     | 
    
         | 
| 
       949 
977 
     | 
    
         
             
            For creating models, you can use the base class
         
     | 
| 
         @@ -959,9 +987,26 @@ that. 
     | 
|
| 
       959 
987 
     | 
    
         | 
| 
       960 
988 
     | 
    
         
             
            The `perform` method saves the record using `save!`.
         
     | 
| 
       961 
989 
     | 
    
         | 
| 
      
 990 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 991 
     | 
    
         
            +
            class Operations::User::Update < RailsOps::Operation::Model::Update
         
     | 
| 
      
 992 
     | 
    
         
            +
              schema do
         
     | 
| 
      
 993 
     | 
    
         
            +
                req :id
         
     | 
| 
      
 994 
     | 
    
         
            +
                req :user do
         
     | 
| 
      
 995 
     | 
    
         
            +
                  opt :first_name
         
     | 
| 
      
 996 
     | 
    
         
            +
                  opt :last_name
         
     | 
| 
      
 997 
     | 
    
         
            +
                end
         
     | 
| 
      
 998 
     | 
    
         
            +
              end
         
     | 
| 
      
 999 
     | 
    
         
            +
             
     | 
| 
      
 1000 
     | 
    
         
            +
              model ::User
         
     | 
| 
      
 1001 
     | 
    
         
            +
            end
         
     | 
| 
      
 1002 
     | 
    
         
            +
            ```
         
     | 
| 
      
 1003 
     | 
    
         
            +
             
     | 
| 
       962 
1004 
     | 
    
         
             
            As this base class is very minimalistic, it is recommended to fully read and
         
     | 
| 
       963 
1005 
     | 
    
         
             
            comprehend its source code.
         
     | 
| 
       964 
1006 
     | 
    
         | 
| 
      
 1007 
     | 
    
         
            +
            As with `Create` operations, the `perform` method can be overwritten at your
         
     | 
| 
      
 1008 
     | 
    
         
            +
            liking.
         
     | 
| 
      
 1009 
     | 
    
         
            +
             
     | 
| 
       965 
1010 
     | 
    
         
             
            ### Destroying models
         
     | 
| 
       966 
1011 
     | 
    
         | 
| 
       967 
1012 
     | 
    
         
             
            For destroying models, you can use the base class
         
     | 
| 
         @@ -971,6 +1016,16 @@ class. 
     | 
|
| 
       971 
1016 
     | 
    
         
             
            This class mainly provides an implementation of the method `perform`, which
         
     | 
| 
       972 
1017 
     | 
    
         
             
            destroys the model using its `destroy!` method.
         
     | 
| 
       973 
1018 
     | 
    
         | 
| 
      
 1019 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 1020 
     | 
    
         
            +
            class Operations::User::Destroy < RailsOps::Operation::Model::Destroy
         
     | 
| 
      
 1021 
     | 
    
         
            +
              schema do
         
     | 
| 
      
 1022 
     | 
    
         
            +
                req :id
         
     | 
| 
      
 1023 
     | 
    
         
            +
              end
         
     | 
| 
      
 1024 
     | 
    
         
            +
             
     | 
| 
      
 1025 
     | 
    
         
            +
              model ::User
         
     | 
| 
      
 1026 
     | 
    
         
            +
            end
         
     | 
| 
      
 1027 
     | 
    
         
            +
            ```
         
     | 
| 
      
 1028 
     | 
    
         
            +
             
     | 
| 
       974 
1029 
     | 
    
         
             
            As this base class is very minimalistic, it is recommended to fully read and
         
     | 
| 
       975 
1030 
     | 
    
         
             
            comprehend its source code.
         
     | 
| 
       976 
1031 
     | 
    
         | 
| 
         @@ -1290,6 +1345,11 @@ setting in production mode though. 
     | 
|
| 
       1290 
1345 
     | 
    
         
             
            Change log
         
     | 
| 
       1291 
1346 
     | 
    
         
             
            ----------
         
     | 
| 
       1292 
1347 
     | 
    
         | 
| 
      
 1348 
     | 
    
         
            +
            ### 1.0.0.beta8
         
     | 
| 
      
 1349 
     | 
    
         
            +
             
     | 
| 
      
 1350 
     | 
    
         
            +
            * Make sure that original state is always restored after calling
         
     | 
| 
      
 1351 
     | 
    
         
            +
              `RailsOps.without_authorization`, even in case of an exception.
         
     | 
| 
      
 1352 
     | 
    
         
            +
             
     | 
| 
       1293 
1353 
     | 
    
         
             
            ### 1.0.0.beta7
         
     | 
| 
       1294 
1354 
     | 
    
         | 
| 
       1295 
1355 
     | 
    
         
             
            * #2 Get rid of protected attributes functionality
         
     | 
| 
         @@ -1318,4 +1378,4 @@ Rails architecture. 
     | 
|
| 
       1318 
1378 
     | 
    
         | 
| 
       1319 
1379 
     | 
    
         
             
            ## Copyright
         
     | 
| 
       1320 
1380 
     | 
    
         | 
| 
       1321 
     | 
    
         
            -
            Copyright (c)  
     | 
| 
      
 1381 
     | 
    
         
            +
            Copyright (c) 2018 Sitrox. See `LICENSE` for further details.
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            1.0.0. 
     | 
| 
      
 1 
     | 
    
         
            +
            1.0.0.beta8
         
     | 
    
        data/lib/rails_ops.rb
    CHANGED
    
    | 
         @@ -35,8 +35,11 @@ module RailsOps 
     | 
|
| 
       35 
35 
     | 
    
         
             
              def self.without_authorization(&_block)
         
     | 
| 
       36 
36 
     | 
    
         
             
                previous_value = Thread.current[AUTH_THREAD_STORAGE_KEY]
         
     | 
| 
       37 
37 
     | 
    
         
             
                Thread.current[AUTH_THREAD_STORAGE_KEY] = false
         
     | 
| 
       38 
     | 
    
         
            -
                 
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
      
 38 
     | 
    
         
            +
                begin
         
     | 
| 
      
 39 
     | 
    
         
            +
                  yield
         
     | 
| 
      
 40 
     | 
    
         
            +
                ensure
         
     | 
| 
      
 41 
     | 
    
         
            +
                  Thread.current[AUTH_THREAD_STORAGE_KEY] = previous_value
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
       40 
43 
     | 
    
         
             
              end
         
     | 
| 
       41 
44 
     | 
    
         
             
            end
         
     | 
| 
       42 
45 
     | 
    
         | 
    
        data/rails_ops.gemspec
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # -*- encoding: utf-8 -*-
         
     | 
| 
       2 
     | 
    
         
            -
            # stub: rails_ops 1.0.0. 
     | 
| 
      
 2 
     | 
    
         
            +
            # stub: rails_ops 1.0.0.beta8 ruby lib
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       5 
5 
     | 
    
         
             
              s.name = "rails_ops".freeze
         
     | 
| 
       6 
     | 
    
         
            -
              s.version = "1.0.0. 
     | 
| 
      
 6 
     | 
    
         
            +
              s.version = "1.0.0.beta8"
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new("> 1.3.1".freeze) if s.respond_to? :required_rubygems_version=
         
     | 
| 
       9 
9 
     | 
    
         
             
              s.require_paths = ["lib".freeze]
         
     | 
| 
       10 
10 
     | 
    
         
             
              s.authors = ["Sitrox".freeze]
         
     | 
| 
       11 
     | 
    
         
            -
              s.date = " 
     | 
| 
      
 11 
     | 
    
         
            +
              s.date = "2018-05-15"
         
     | 
| 
       12 
12 
     | 
    
         
             
              s.files = [".gitignore".freeze, ".releaser_config".freeze, ".rubocop.yml".freeze, ".travis.yml".freeze, "Gemfile".freeze, "LICENSE.txt".freeze, "README.md".freeze, "RUBY_VERSION".freeze, "Rakefile".freeze, "VERSION".freeze, "lib/rails_ops.rb".freeze, "lib/rails_ops/authorization_backend/abstract.rb".freeze, "lib/rails_ops/authorization_backend/can_can_can.rb".freeze, "lib/rails_ops/configuration.rb".freeze, "lib/rails_ops/context.rb".freeze, "lib/rails_ops/controller_mixin.rb".freeze, "lib/rails_ops/exceptions.rb".freeze, "lib/rails_ops/hooked_job.rb".freeze, "lib/rails_ops/hookup.rb".freeze, "lib/rails_ops/hookup/dsl.rb".freeze, "lib/rails_ops/hookup/dsl_validator.rb".freeze, "lib/rails_ops/hookup/hook.rb".freeze, "lib/rails_ops/log_subscriber.rb".freeze, "lib/rails_ops/mixins.rb".freeze, "lib/rails_ops/mixins/authorization.rb".freeze, "lib/rails_ops/mixins/log_settings.rb".freeze, "lib/rails_ops/mixins/model.rb".freeze, "lib/rails_ops/mixins/model/authorization.rb".freeze, "lib/rails_ops/mixins/model/nesting.rb".freeze, "lib/rails_ops/mixins/policies.rb".freeze, "lib/rails_ops/mixins/require_context.rb".freeze, "lib/rails_ops/mixins/routes.rb".freeze, "lib/rails_ops/mixins/schema_validation.rb".freeze, "lib/rails_ops/mixins/sub_ops.rb".freeze, "lib/rails_ops/model_casting.rb".freeze, "lib/rails_ops/model_mixins.rb".freeze, "lib/rails_ops/model_mixins/ar_extension.rb".freeze, "lib/rails_ops/model_mixins/parent_op.rb".freeze, "lib/rails_ops/model_mixins/virtual_attributes.rb".freeze, "lib/rails_ops/model_mixins/virtual_attributes/virtual_column_wrapper.rb".freeze, "lib/rails_ops/model_mixins/virtual_has_one.rb".freeze, "lib/rails_ops/operation.rb".freeze, "lib/rails_ops/operation/model.rb".freeze, "lib/rails_ops/operation/model/create.rb".freeze, "lib/rails_ops/operation/model/destroy.rb".freeze, "lib/rails_ops/operation/model/load.rb".freeze, "lib/rails_ops/operation/model/update.rb".freeze, "lib/rails_ops/patches/active_type_patch.rb".freeze, "lib/rails_ops/profiler.rb".freeze, "lib/rails_ops/profiler/node.rb".freeze, "lib/rails_ops/railtie.rb".freeze, "lib/rails_ops/scoped_env.rb".freeze, "lib/rails_ops/virtual_model.rb".freeze, "rails_ops.gemspec".freeze, "test/db/models.rb".freeze, "test/db/schema.rb".freeze, "test/dummy/Rakefile".freeze, "test/dummy/app/assets/config/manifest.js".freeze, "test/dummy/app/assets/images/.keep".freeze, "test/dummy/app/assets/javascripts/application.js".freeze, "test/dummy/app/assets/javascripts/cable.js".freeze, "test/dummy/app/assets/javascripts/channels/.keep".freeze, "test/dummy/app/assets/stylesheets/application.css".freeze, "test/dummy/app/channels/application_cable/channel.rb".freeze, "test/dummy/app/channels/application_cable/connection.rb".freeze, "test/dummy/app/controllers/application_controller.rb".freeze, "test/dummy/app/controllers/concerns/.keep".freeze, "test/dummy/app/helpers/application_helper.rb".freeze, "test/dummy/app/jobs/application_job.rb".freeze, "test/dummy/app/mailers/application_mailer.rb".freeze, "test/dummy/app/models/application_record.rb".freeze, "test/dummy/app/models/concerns/.keep".freeze, "test/dummy/app/models/group.rb".freeze, "test/dummy/app/views/layouts/application.html.erb".freeze, "test/dummy/app/views/layouts/mailer.html.erb".freeze, "test/dummy/app/views/layouts/mailer.text.erb".freeze, "test/dummy/bin/bundle".freeze, "test/dummy/bin/rails".freeze, "test/dummy/bin/rake".freeze, "test/dummy/bin/setup".freeze, "test/dummy/bin/update".freeze, "test/dummy/bin/yarn".freeze, "test/dummy/config.ru".freeze, "test/dummy/config/application.rb".freeze, "test/dummy/config/boot.rb".freeze, "test/dummy/config/cable.yml".freeze, "test/dummy/config/database.yml".freeze, "test/dummy/config/environment.rb".freeze, "test/dummy/config/environments/development.rb".freeze, "test/dummy/config/environments/production.rb".freeze, "test/dummy/config/environments/test.rb".freeze, "test/dummy/config/initializers/application_controller_renderer.rb".freeze, "test/dummy/config/initializers/assets.rb".freeze, "test/dummy/config/initializers/backtrace_silencers.rb".freeze, "test/dummy/config/initializers/cookies_serializer.rb".freeze, "test/dummy/config/initializers/filter_parameter_logging.rb".freeze, "test/dummy/config/initializers/inflections.rb".freeze, "test/dummy/config/initializers/mime_types.rb".freeze, "test/dummy/config/initializers/rails_ops.rb".freeze, "test/dummy/config/initializers/wrap_parameters.rb".freeze, "test/dummy/config/locales/en.yml".freeze, "test/dummy/config/puma.rb".freeze, "test/dummy/config/routes.rb".freeze, "test/dummy/config/secrets.yml".freeze, "test/dummy/config/spring.rb".freeze, "test/dummy/db/schema.rb".freeze, "test/dummy/lib/assets/.keep".freeze, "test/dummy/log/.keep".freeze, "test/dummy/package.json".freeze, "test/dummy/public/404.html".freeze, "test/dummy/public/422.html".freeze, "test/dummy/public/500.html".freeze, "test/dummy/public/apple-touch-icon-precomposed.png".freeze, "test/dummy/public/apple-touch-icon.png".freeze, "test/dummy/public/favicon.ico".freeze, "test/dummy/tmp/.keep".freeze, "test/test_helper.rb".freeze, "test/unit/rails_ops/operation/model/create_test.rb".freeze, "test/unit/rails_ops/operation/model/load_test.rb".freeze, "test/unit/rails_ops/operation/model/update_test.rb".freeze, "test/unit/rails_ops/operation/model_test.rb".freeze, "test/unit/rails_ops/operation_test.rb".freeze]
         
     | 
| 
       13 
13 
     | 
    
         
             
              s.rubygems_version = "2.6.6".freeze
         
     | 
| 
       14 
14 
     | 
    
         
             
              s.summary = "An operations service layer for rails projects.".freeze
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rails_ops
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.0.beta8
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Sitrox
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2018-05-15 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: bundler
         
     | 
| 
         @@ -283,7 +283,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       283 
283 
     | 
    
         
             
                  version: 1.3.1
         
     | 
| 
       284 
284 
     | 
    
         
             
            requirements: []
         
     | 
| 
       285 
285 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       286 
     | 
    
         
            -
            rubygems_version: 2.6 
     | 
| 
      
 286 
     | 
    
         
            +
            rubygems_version: 2.7.6
         
     | 
| 
       287 
287 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       288 
288 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       289 
289 
     | 
    
         
             
            summary: An operations service layer for rails projects.
         
     |