Module: DyndocWorld
- Defined in:
- lib/dyndoc-world.rb
Constant Summary collapse
- @@root =
nil
- @@public =
nil
Class Method Summary collapse
- .cfg(admin = nil) ⇒ Object
-
.prj_file(yml, content) ⇒ Object
file ## from yml ex: public/<user>/<pathname> edit/<user>/<pathname> dynworld/<user>/<pathname>.
- .public_root(public_root = nil) ⇒ Object
- .root(root = nil) ⇒ Object
-
.yml?(prj, yml) ⇒ Boolean
access ## prj is to give access for a user or a group of users if prj or prj/secret is undefined it is accessible.
Class Method Details
.cfg(admin = nil) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/dyndoc-world.rb', line 18 def DyndocWorld.cfg(admin=nil) cfg={} secret = File.join(DyndocWorld.root,admin ? ".admin.yml" : ".secret.yml") cfg = YAML::load_file(secret) if DyndocWorld.root and File.exists? secret return cfg end |
.prj_file(yml, content) ⇒ Object
file ## from yml ex: public/<user>/<pathname>
edit/<user>/<pathname>
dynworld/<user>/<pathname>
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/dyndoc-world.rb', line 42 def DyndocWorld.prj_file(yml,content) success,prj_file=false,"" parts=yml["file"].split("/") p [:parts,parts] root=parts.shift p [:root,root] if ["public","edit","dynworld"].include? root user=parts.shift case root when "public" prj_file=File.join(DyndocWorld.public_root,"users",user) prj_file=(Dir.exists? prj_file) ? File.join(prj_file,parts) : "" when "edit" prj_file=File.join(DyndocWorld.public_root,"users",user,".edit") prj_file=(Dir.exists? prj_file) ? File.join(prj_file,parts) : "" when "dynworld" prj_file=File.join(DyndocWorld.root,user,parts) end end p [:prj_file,prj_file] unless prj_file.empty? FileUtils.mkdir_p File.dirname prj_file File.open(prj_file,"w") {|f| if root == "edit" f << yml.to_yaml f << "---\n" end f << content.strip } success=true end return success end |
.public_root(public_root = nil) ⇒ Object
13 14 15 16 |
# File 'lib/dyndoc-world.rb', line 13 def DyndocWorld.public_root(public_root=nil) @@public=public_root if public_root return @@public end |
.root(root = nil) ⇒ Object
8 9 10 11 |
# File 'lib/dyndoc-world.rb', line 8 def DyndocWorld.root(root=nil) @@root=root if root return @@root end |
.yml?(prj, yml) ⇒ Boolean
access ## prj is to give access for a user or a group of users if prj or prj/secret is undefined it is accessible
28 29 30 31 32 33 34 35 |
# File 'lib/dyndoc-world.rb', line 28 def DyndocWorld.yml?(prj,yml) admin=(prj=="admin") cfg=DyndocWorld.cfg(admin) cfg=cfg[prj] unless admin return true unless cfg ##DEBUG: p [:"yml?", cfg, yml, (cfg and yml and ((cfg["secret"] || "none") == (yml["secret"] || "none")) and yml["file"] and !(yml["file"].include? "../"))] return (cfg and yml and ((cfg["secret"] || "none") == (yml["secret"] || "none")) and yml["file"] and !(yml["file"].include? "../")) end |