Sha256: 9db644225e631d6e39c5c54646f72f17bdc301c393e86aa9144df1fdc4d13ebe

Contents?: true

Size: 819 Bytes

Versions: 49

Compression:

Stored size: 819 Bytes

Contents

module Gitea 
  module Common 
    module Struct 
      class Base 
        module AttrHelper
          def attrs(*s)
            define_method(:attrs) {s}
            attr_accessor(*s)
          end
        end

        extend AttrHelper

        def initialize(opts = {})
          extra_keys = opts.keys - attrs
          unless extra_keys.empty?
            fail Common::Exception,
                 "Unexpected extra keys: #{extra_keys.join(', ')}"
          end

          attrs.each do |attr|
            instance_variable_set("@#{attr}", opts[attr])
          end
        end

        def to_s
          attrs.map do |attr|
            v = instance_variable_get("@#{attr}")
            "#{attr.to_s}: #{v}"
          end.join(", ")
        end
  
      end # Base
    end # Struct
    
  end # Common
end # Gitea

Version data entries

49 entries across 49 versions & 1 rubygems

Version Path
gitea-client-1.6.1 lib/gitea/common/struct.rb
gitea-client-1.6.0 lib/gitea/common/struct.rb
gitea-client-1.5.9 lib/gitea/common/struct.rb
gitea-client-1.5.8 lib/gitea/common/struct.rb
gitea-client-1.5.6 lib/gitea/common/struct.rb
gitea-client-1.5.0 lib/gitea/common/struct.rb
gitea-client-1.4.6 lib/gitea/common/struct.rb
gitea-client-1.4.5 lib/gitea/common/struct.rb
gitea-client-1.4.4 lib/gitea/common/struct.rb
gitea-client-1.4.3 lib/gitea/common/struct.rb
gitea-client-1.4.2 lib/gitea/common/struct.rb
gitea-client-1.4.1 lib/gitea/common/struct.rb
gitea-client-1.4.0 lib/gitea/common/struct.rb
gitea-client-1.3.3 lib/gitea/common/struct.rb
gitea-client-1.3.2 lib/gitea/common/struct.rb
gitea-client-1.3.0 lib/gitea/common/struct.rb
gitea-client-1.3.1 lib/gitea/common/struct.rb
gitea-client-0.11.6 lib/gitea/common/struct.rb
gitea-client-0.11.5 lib/gitea/common/struct.rb
gitea-client-1.2.2 lib/gitea/common/struct.rb