jgrouper 0.0.5 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.autotest +35 -0
- data/.gitignore +5 -3
- data/Gemfile +3 -0
- data/HISTORY.md +20 -0
- data/{LICENSE → LICENSE.txt} +2 -2
- data/README.rdoc +2 -65
- data/Rakefile +0 -20
- data/TODO.md +4 -13
- data/bin/jgrouper-audit-archiver +39 -0
- data/bin/jgrouper-export +39 -0
- data/jgrouper.gemspec +20 -22
- data/lib/jgrouper/audit_archiver.rb +330 -0
- data/lib/jgrouper/exporter.rb +85 -0
- data/lib/jgrouper/group.rb +18 -94
- data/lib/jgrouper/member.rb +47 -0
- data/lib/jgrouper/stem.rb +43 -96
- data/lib/jgrouper/version.rb +2 -1
- data/lib/jgrouper.rb +20 -93
- metadata +26 -108
- data/lib/jgrouper/group/test_case.rb +0 -18
- data/lib/jgrouper/group_type/test_case.rb +0 -23
- data/lib/jgrouper/group_type.rb +0 -129
- data/lib/jgrouper/stem/test_case.rb +0 -33
- data/lib/jgrouper/subject/test_case.rb +0 -23
- data/lib/jgrouper/subject.rb +0 -83
- data/test/factories.rb +0 -85
- data/test/helper.rb +0 -17
- data/test/test_group.rb +0 -60
- data/test/test_group_type.rb +0 -106
- data/test/test_stem.rb +0 -90
- data/test/test_subject.rb +0 -36
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ebdf58326f3d4603a2fa1a5c5c4c3d4fd8465d08
|
4
|
+
data.tar.gz: 8cc466039a9c092e38e258eece5d55ce79afc05f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7063017395e37a2e1a3dd53792568236c27d8275ca7f8d13401879fe90cec873d63c8a539cfe196dcac52c4a5bdc912699a768e582ea7cca8383540a0749e1bd
|
7
|
+
data.tar.gz: 6f115a9aa0673619b5deab7ad9d367eeca6746d8840498b5bff26659380e2d0693453f825dd376ac117f8840747e8a854218e726f1dc8de53f4948c59cd32e71
|
data/.autotest
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
|
2
|
+
Autotest.add_hook :initialize do |at|
|
3
|
+
|
4
|
+
# TODO No tests matched lib/jgrouper/group/test_case.rb
|
5
|
+
# TODO No tests matched lib/jgrouper/group_type/test_case.rb
|
6
|
+
# TODO No tests matched lib/jgrouper/stem/test_case.rb
|
7
|
+
# TODO No tests matched lib/jgrouper/subject/test_case.rb
|
8
|
+
# TODO No tests matched lib/jgrouper.rb
|
9
|
+
|
10
|
+
%w(
|
11
|
+
.autotest
|
12
|
+
.git/
|
13
|
+
.gitignore
|
14
|
+
coverage/
|
15
|
+
HISTORY.md
|
16
|
+
lib/jgrouper/version.rb
|
17
|
+
LICENSE
|
18
|
+
logs/
|
19
|
+
Rakefile
|
20
|
+
README.rdoc
|
21
|
+
TODO.md
|
22
|
+
).each { |exception| at.add_exception(exception) }
|
23
|
+
|
24
|
+
[
|
25
|
+
%r{^Gemfile},
|
26
|
+
%r{^jgrouper\.gemspec$},
|
27
|
+
%r{^test/(?:factories|helper)\.rb$}
|
28
|
+
].each do |rx|
|
29
|
+
at.add_mapping(rx) { |fn, _| at.files_matching( %r{^test/test_.*\.rb$} ) }
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
# vim: syntax=ruby
|
35
|
+
|
data/.gitignore
CHANGED
@@ -1,5 +1,9 @@
|
|
1
|
+
.*.swp
|
2
|
+
*.csv
|
1
3
|
*.gem
|
4
|
+
*.log
|
2
5
|
*.rbc
|
6
|
+
*.sh
|
3
7
|
.bundle
|
4
8
|
.config
|
5
9
|
.yardoc
|
@@ -8,9 +12,8 @@ InstalledFiles
|
|
8
12
|
_yardoc
|
9
13
|
coverage
|
10
14
|
doc/
|
11
|
-
|
15
|
+
err.txt
|
12
16
|
lib/bundler/man
|
13
|
-
logs/
|
14
17
|
out.txt
|
15
18
|
pkg
|
16
19
|
rdoc
|
@@ -18,4 +21,3 @@ spec/reports
|
|
18
21
|
test/tmp
|
19
22
|
test/version_tmp
|
20
23
|
tmp
|
21
|
-
.*.swp
|
data/Gemfile
CHANGED
data/HISTORY.md
CHANGED
@@ -1,6 +1,25 @@
|
|
1
1
|
JGrouper History
|
2
2
|
================
|
3
3
|
|
4
|
+
2013-05-15 JGrouper v0.1.0
|
5
|
+
--------------------------
|
6
|
+
Starting over with a more clear design in mind.
|
7
|
+
|
8
|
+
* Add "bin/jgrouper-audit-archiver"
|
9
|
+
* Add "bin/jgrouper-export"
|
10
|
+
* Add "JGrouper.home!()"
|
11
|
+
* Add "JGrouper::AuditArchiver"
|
12
|
+
* Add "JGrouper::Exporter"
|
13
|
+
* Add "JGrouper::Group"
|
14
|
+
* Add "JGrouper::Member"
|
15
|
+
* Add "JGrouper::Member.find()"
|
16
|
+
* Add "JGrouper::Stem"
|
17
|
+
* Add "JGrouper::Stem.find()"
|
18
|
+
* Add "JGrouper::Stem#groups()"
|
19
|
+
* Add "JGrouper::Stem.root()"
|
20
|
+
* Add "JGrouper::Stem#stems()"
|
21
|
+
|
22
|
+
|
4
23
|
2012-11-20 JGrouper v0.0.5
|
5
24
|
--------------------------
|
6
25
|
* Add *JGrouper::Group#add_type*
|
@@ -12,6 +31,7 @@ JGrouper History
|
|
12
31
|
* Add *JGrouper::Subject#method_missing*
|
13
32
|
* Fix *JGrouper::Group* tests
|
14
33
|
|
34
|
+
|
15
35
|
2012-10-04 JGrouper v0.0.4
|
16
36
|
--------------------------
|
17
37
|
* Add *JGrouper::Group*
|
data/{LICENSE → LICENSE.txt}
RENAMED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c)
|
1
|
+
Copyright (c) 2013 blair christensen
|
2
2
|
|
3
3
|
MIT License
|
4
4
|
|
@@ -19,4 +19,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
19
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
20
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
21
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
CHANGED
@@ -7,69 +7,6 @@
|
|
7
7
|
# Set path to your Grouper API installation
|
8
8
|
JGrouper.home '/path/to/your/grouper/api/installation/directory'
|
9
9
|
|
10
|
-
=== Subjects
|
11
|
-
|
12
|
-
# Find root subject
|
13
|
-
JGrouper::Subject.root do |subject|
|
14
|
-
subject.id # Subject identifier
|
15
|
-
subject.name # Subject name
|
16
|
-
subject.source # Subject source identifier
|
17
|
-
subject.type # Subject type name
|
18
|
-
subject.getSource # Call native Subject API methods
|
19
|
-
end
|
20
|
-
|
21
|
-
=== Stems
|
22
|
-
|
23
|
-
# Find root stem
|
24
|
-
JGrouper::Stem.root do |stem|
|
25
|
-
stem.display_name # Stem display name
|
26
|
-
stem.name # Stem name
|
27
|
-
stem.uuid # Stem UUID
|
28
|
-
stem.getChildGroups # Call native Grouper API methods
|
29
|
-
end
|
30
|
-
|
31
|
-
# Find by name
|
32
|
-
stem = JGrouper::Stem.find(name) { |stem| ... }
|
33
|
-
|
34
|
-
# Create stem(s)
|
35
|
-
stem = JGrouper::Stem.create 'foo:bar:baz', 'Foo:Bar:Baz'
|
36
|
-
|
37
|
-
# Create child stem(s)
|
38
|
-
child = stem.create 'foo:bar:baz'
|
39
|
-
|
40
|
-
=== Groups
|
41
|
-
|
42
|
-
# Find by name
|
43
|
-
group = JGrouper::Group.find(name) do |group|
|
44
|
-
group.display_name # Group display name
|
45
|
-
group.name # Group name
|
46
|
-
group.types # Array of group type names
|
47
|
-
group.uuid # Group UUID
|
48
|
-
group.add_type 'group type' # Add group type
|
49
|
-
group.delete_type 'group_type' # Delete group type
|
50
|
-
group.getParentStem # Call native Grouper API methods
|
51
|
-
end
|
52
|
-
|
53
|
-
=== Group Types
|
54
|
-
|
55
|
-
# Create group type
|
56
|
-
JGrouper::GroupType.create(name) do |group_type|
|
57
|
-
group_type.name # Group type name
|
58
|
-
group_type.uuid # Group type uuid
|
59
|
-
group_type.getFields # Call native Grouper API methods
|
60
|
-
end
|
61
|
-
|
62
|
-
# Find all group types
|
63
|
-
group_types = JGrouper::GroupType.all { |group_type| ... }
|
64
|
-
|
65
|
-
# Find group type
|
66
|
-
JGrouper::GroupType.find(name)
|
67
|
-
|
68
|
-
# Delete group type
|
69
|
-
JGrouper::GroupType.delete(name)
|
70
|
-
# ... or ...
|
71
|
-
JGrouper::GroupType.find(name).delete
|
72
|
-
|
73
10
|
== Installation
|
74
11
|
|
75
12
|
Add this line to your application's Gemfile:
|
@@ -98,9 +35,9 @@ blair christensen. <mailto:blair.christensen@gmail.com>
|
|
98
35
|
|
99
36
|
== Home Page
|
100
37
|
|
101
|
-
https://github.com/blairc/jgrouper
|
38
|
+
https://github.com/blairc/jgrouper/
|
102
39
|
|
103
40
|
== See Also
|
104
41
|
|
105
|
-
|
42
|
+
http://grouper.internet2.edu
|
106
43
|
|
data/Rakefile
CHANGED
@@ -1,25 +1,5 @@
|
|
1
|
-
#!/usr/bin/env rake
|
2
1
|
require 'bundler/gem_tasks'
|
3
|
-
require 'rake/clean'
|
4
|
-
require 'rake/testtask'
|
5
2
|
require 'rdoc-readme/rake_task'
|
6
|
-
require 'rdoc/task'
|
7
|
-
|
8
|
-
%w{ coverage goz.log html out.txt pkg }.each { |p| CLEAN.include(p) }
|
9
|
-
%w{ build install rdoc test }.each { |t| task t.to_sym => [ 'rdoc:readme' ] }
|
10
|
-
|
11
|
-
task :default => :test
|
12
|
-
|
13
|
-
Rake::TestTask.new do |t|
|
14
|
-
t.libs << 'test'
|
15
|
-
t.test_files = FileList['test/test_*.rb']
|
16
|
-
t.verbose = true
|
17
|
-
end
|
18
3
|
|
19
4
|
RDoc::Readme::RakeTask.new 'lib/jgrouper.rb', 'README.rdoc'
|
20
5
|
|
21
|
-
RDoc::Task.new do |rdoc|
|
22
|
-
rdoc.main = 'README.rdoc'
|
23
|
-
rdoc.rdoc_files.include('README.rdoc', 'lib/**/*.rb', 'doc/*.txt')
|
24
|
-
end
|
25
|
-
|
data/TODO.md
CHANGED
@@ -1,17 +1,8 @@
|
|
1
1
|
JGrouper To Do
|
2
2
|
==============
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
*
|
7
|
-
*
|
8
|
-
* List *JGrouper::Stem* privileges
|
9
|
-
* Grant *JGrouper::Stem* privileges
|
10
|
-
* Revoke *JGrouper::Stem* privileges
|
11
|
-
* Set (select) *JGrouper::Group* attributes
|
12
|
-
* Fix *JGrouper::GroupType* tests
|
13
|
-
* Fix *JGrouper::Subject* tests
|
14
|
-
* Add *JGrouper::Stem#children( recurse = false )*
|
15
|
-
* Add *JGrouper::Stem#groups( recurse = false )*
|
16
|
-
* Add *JGrouper::Stem#stems( recurse = false )*
|
4
|
+
JGrouper v0.1.0
|
5
|
+
---------------
|
6
|
+
* TBD
|
7
|
+
* Add *jgrouper-export* script
|
17
8
|
|
@@ -0,0 +1,39 @@
|
|
1
|
+
#!/usr/bin/env jruby
|
2
|
+
|
3
|
+
require 'jgrouper'
|
4
|
+
require 'jgrouper/audit_archiver'
|
5
|
+
require 'optparse'
|
6
|
+
|
7
|
+
|
8
|
+
if __FILE__ == $0
|
9
|
+
JGrouper::AuditArchiver.new do |archiver|
|
10
|
+
|
11
|
+
opts = OptionParser.new do |opts|
|
12
|
+
opts.banner = "USAGE: #{ File.basename(__FILE__) } [-h] [-s col1,colN] [-v]"
|
13
|
+
|
14
|
+
opts.on( '-s', '--skip COLUMNS', Array, 'Exclude these GROUPER_AUDIT_ENTRY comma-separated column names from archive [DEFAULT: none]' ) do |columns|
|
15
|
+
archiver.skip_columns = columns.collect { |c| c.downcase.to_sym }
|
16
|
+
end
|
17
|
+
opts.on( '-v', '--[no-]verbose', 'Enable verbose mode [DEFAULT: no]' ) do |verbose|
|
18
|
+
archiver.verbose = verbose
|
19
|
+
end
|
20
|
+
opts.on_tail('-h', '--help', "Show this message") do
|
21
|
+
puts opts
|
22
|
+
exit
|
23
|
+
end
|
24
|
+
end.parse!
|
25
|
+
|
26
|
+
# TODO DRY
|
27
|
+
if ENV['GROUPER_HOME']
|
28
|
+
JGrouper.home! ENV['GROUPER_HOME']
|
29
|
+
else
|
30
|
+
warn "ERROR: GROUPER_HOME not set"
|
31
|
+
exit 1
|
32
|
+
end
|
33
|
+
|
34
|
+
archiver.archive
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# vim: syntax=ruby
|
39
|
+
|
data/bin/jgrouper-export
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
#!/usr/bin/env jruby
|
2
|
+
|
3
|
+
require 'jgrouper'
|
4
|
+
require 'jgrouper/exporter'
|
5
|
+
require 'optparse'
|
6
|
+
|
7
|
+
|
8
|
+
if __FILE__ == $0
|
9
|
+
JGrouper::Exporter.new do |exporter|
|
10
|
+
|
11
|
+
opts = OptionParser.new do |opts|
|
12
|
+
opts.banner = "USAGE: #{ File.basename(__FILE__) } [-h]"
|
13
|
+
|
14
|
+
# opts.on( '-s', '--skip COLUMNS', Array, 'Exclude these GROUPER_AUDIT_ENTRY comma-separated column names from archive [DEFAULT: none]' ) do |columns|
|
15
|
+
# archiver.skip_columns = columns.collect { |c| c.downcase.to_sym }
|
16
|
+
# end
|
17
|
+
opts.on_tail('-h', '--help', "Show this message") do
|
18
|
+
puts opts
|
19
|
+
exit
|
20
|
+
end
|
21
|
+
opts.on_tail( '-v', '--[no-]verbose', 'Enable verbose mode [DEFAULT: no]' ) do |verbose|
|
22
|
+
exporter.verbose = verbose
|
23
|
+
end
|
24
|
+
end.parse!
|
25
|
+
|
26
|
+
# TODO DRY
|
27
|
+
if ENV['GROUPER_HOME']
|
28
|
+
JGrouper.home! ENV['GROUPER_HOME']
|
29
|
+
else
|
30
|
+
warn "ERROR: GROUPER_HOME not set"
|
31
|
+
exit 1
|
32
|
+
end
|
33
|
+
|
34
|
+
exporter.export ARGV.shift
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# vim: syntax=ruby
|
39
|
+
|
data/jgrouper.gemspec
CHANGED
@@ -1,27 +1,25 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'jgrouper/version'
|
3
5
|
|
4
|
-
Gem::Specification.new do |
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'jgrouper'
|
8
|
+
spec.version = JGrouper::VERSION
|
9
|
+
spec.authors = ['blair christensen']
|
10
|
+
spec.email = ['blair.christensen@gmail.com']
|
11
|
+
spec.description = %q{JRuby wrapper around the Internet2 Grouper API}
|
12
|
+
spec.summary = %q{JRuby wrapper around the Internet2 Grouper API}
|
13
|
+
spec.homepage = %q{https://github.com/blairc/jgrouper/}
|
14
|
+
spec.license = 'MIT'
|
10
15
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
gem.require_paths = ['lib']
|
16
|
-
gem.version = JGrouper::VERSION
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ['lib']
|
17
20
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
gem.add_development_dependency 'mocha'
|
22
|
-
gem.add_development_dependency 'rake'
|
23
|
-
gem.add_development_dependency 'rdoc'
|
24
|
-
gem.add_development_dependency 'rdoc-readme', '~> 0.1.2'
|
25
|
-
gem.add_development_dependency 'simplecov'
|
21
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
22
|
+
spec.add_development_dependency 'rake'
|
23
|
+
spec.add_development_dependency 'rdoc-readme', '~> 0.1.2'
|
26
24
|
end
|
27
25
|
|