Commit ec1410a
Changed files (4)
lib
scim
shady
lib/scim/shady/buildable.rb
@@ -0,0 +1,21 @@
+module Scim
+ module Shady
+ module Buildable
+ extend ActiveSupport::Concern
+
+ class_methods do
+ def build
+ builder do |builder|
+ yield builder if block_given?
+ end.build
+ end
+
+ def builder
+ builder = builder_class.new
+ yield builder if block_given?
+ builder
+ end
+ end
+ end
+ end
+end
lib/scim/shady/user.rb
@@ -1,6 +1,8 @@
module Scim
module Shady
class User < Resource
+ include Buildable
+
def username
to_h['userName']
end
@@ -61,22 +63,8 @@ module Scim
to_h['x509Certificates'].map { |x| X509Certificate.new(x) }
end
- class << self
- def build
- builder do |builder|
- yield builder if block_given?
- end.build
- end
-
- def builder
- builder = builder_class.new
- yield builder if block_given?
- builder
- end
-
- def builder_class
- Scim::Shady::Builders::User
- end
+ def self.builder_class
+ Scim::Shady::Builders::User
end
end
end
lib/scim/shady.rb
@@ -1,8 +1,10 @@
require "forwardable"
require "json"
require "time"
+require "active_support/concern"
require "scim/shady/address"
+require "scim/shady/buildable"
require "scim/shady/builders"
require "scim/shady/group"
require "scim/shady/instant_messenger"
scim-shady.gemspec
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ["lib"]
+ spec.add_dependency "activesupport", ">= 4.2.0"
spec.add_development_dependency "bundler", "~> 1.16"
spec.add_development_dependency "rake", "~> 10.0"
spec.add_development_dependency "rspec", "~> 3.0"