# File lib/rspec/core/subject.rb, line 122
        def its(attribute, &block)
          describe(attribute) do
            example do
              self.class.class_eval do
                define_method(:subject) do
                  @_subject ||= if super().is_a?(Hash) && attribute.is_a?(Array)
                                  OpenStruct.new(super()).send(attribute.first)
                                else
                                  attribute.to_s.split('.').inject(super()) do |target, method|
                                    target.send(method)
                                  end
                                end
                end
              end
              instance_eval(&block)
            end
          end
        end