Class: JGrouper::Exporter
- Inherits:
-
Object
- Object
- JGrouper::Exporter
- Defined in:
- lib/jgrouper/exporter.rb
Overview
JGrouper::Exporter - Export Groups registry.
USAGE
require 'jgrouper'
require 'jgrouper/exporter'
JGrouper::Exporter.new do |exporter|
exporter.export 'stem:to:export', lambda { |_| puts _.to_yaml }
end
Constant Summary collapse
- EXPORT_VERSION =
1
Instance Attribute Summary collapse
-
#verbose ⇒ Object
writeonly
Sets the attribute verbose.
Instance Method Summary collapse
-
#export(params) ⇒ Object
Export Groups registry.
-
#export_fields(p) ⇒ Object
Export fields.
-
#export_group_types(p) ⇒ Object
Export group types.
-
#export_metadata(p) ⇒ Object
Export metadata.
-
#export_sources(p) ⇒ Object
Export subject sources.
-
#export_stem(stem, p) ⇒ Object
Export stem and childen.
-
#initialize {|_self| ... } ⇒ Exporter
constructor
A new instance of Exporter.
Constructor Details
#initialize {|_self| ... } ⇒ Exporter
Returns a new instance of Exporter.
22 23 24 25 26 |
# File 'lib/jgrouper/exporter.rb', line 22 def initialize @verbose = false yield self if block_given? self end |
Instance Attribute Details
#verbose=(value) ⇒ Object (writeonly)
Sets the attribute verbose
20 21 22 |
# File 'lib/jgrouper/exporter.rb', line 20 def verbose=(value) @verbose = value end |
Instance Method Details
#export(params) ⇒ Object
Export Groups registry.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/jgrouper/exporter.rb', line 31 def export(params) stem = params[:base] ? Stem.find( params[:base] ) : Stem.root raise "ERROR: stem not found" if stem.nil? raise "ERROR: :block not specified" unless params[:block] raise "ERROR: :block is not a block" unless params[:block].kind_of?(Proc) # TODO Multiple readers? txt = stem.root? ? 'root stem' : "stem #{stem.name}" log "exporting #{txt} ..." params[:block] if stem.root? # TODO Configurable? export_group_types params[:block] export_fields params[:block] export_sources params[:block] end export_stem stem, params[:block] log "exporting #{txt} - done" end |
#export_fields(p) ⇒ Object
Export fields
52 53 54 55 56 |
# File 'lib/jgrouper/exporter.rb', line 52 def export_fields(p) log 'exporting group fields ...' JGrouper::Field.all.each { |_| p.call _.to_json } log 'exporting group fields: done' end |
#export_group_types(p) ⇒ Object
Export group types.
59 60 61 62 63 |
# File 'lib/jgrouper/exporter.rb', line 59 def export_group_types(p) log 'exporting group types ...' JGrouper::GroupType.all.each { |_| p.call _.to_json } log 'exporting group types: done' end |
#export_metadata(p) ⇒ Object
Export metadata
66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/jgrouper/exporter.rb', line 66 def (p) log 'exporting metadata ...' p.call( { kind: 'metadata', export_version: EXPORT_VERSION, jgrouper_version: JGrouper::VERSION, hostname: ENV['HOSTNAME'], ruby_engine: RUBY_ENGINE, ruby_platform: RUBY_PLATFORM, ruby_version: RUBY_VERSION, start_time: Time.now.to_datetime.rfc3339 }.to_json ) log 'exporting metadata: done' end |
#export_sources(p) ⇒ Object
Export subject sources.
82 83 84 85 86 |
# File 'lib/jgrouper/exporter.rb', line 82 def export_sources(p) log 'exporting subject sources ...' JGrouper::Source.all.each { |source| p.call source.to_json } log 'exporting subject sources: done' end |
#export_stem(stem, p) ⇒ Object
Export stem and childen.
89 90 91 92 93 94 95 96 |
# File 'lib/jgrouper/exporter.rb', line 89 def export_stem(stem, p) log "exporting stem #{stem.name} ..." # TODO Debug ... unless root?! p.call stem.to_json export_stem_privileges(stem, p) stem.groups { |child| export_group child, p } stem.stems { |child| export_stem child, p } log "exporting stem #{stem.name}: done" # TODO Debug ... unless root?! end |