rhodes 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +7 -0
 - data/Manifest.txt +0 -1
 - data/generators/templates/source/source_adapter.rb +10 -13
 - data/lib/rho/rho.rb +18 -15
 - data/lib/rho/rhofsconnector.rb +4 -11
 - data/lib/rho/rhofsconnectorME.rb +4 -8
 - data/lib/rhodes.rb +1 -1
 - data/lib/rhom/rhom_db_adapter.rb +1 -1
 - data/spec/app_generator_spec.rb +6 -0
 - data/spec/model_generator_spec.rb +9 -1
 - data/spec/rho_spec.rb +6 -2
 - data/spec/spec_helper.rb +1 -1
 - metadata +3 -4
 - data/lib/find.rb +0 -81
 
    
        data/History.txt
    CHANGED
    
    
    
        data/Manifest.txt
    CHANGED
    
    
| 
         @@ -1,38 +1,35 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            class <%=name%> 
         
     | 
| 
       2 
     | 
    
         
            -
              attr_accessor :client
         
     | 
| 
      
 1 
     | 
    
         
            +
            class <%=name%> < SourceAdapter
         
     | 
| 
       3 
2 
     | 
    
         | 
| 
       4 
3 
     | 
    
         
             
              def initialize(source)
         
     | 
| 
       5 
     | 
    
         
            -
                 
     | 
| 
      
 4 
     | 
    
         
            +
                super
         
     | 
| 
       6 
5 
     | 
    
         
             
              end
         
     | 
| 
       7 
6 
     | 
    
         | 
| 
       8 
7 
     | 
    
         
             
              def login
         
     | 
| 
      
 8 
     | 
    
         
            +
                #TODO: Write some code here
         
     | 
| 
       9 
9 
     | 
    
         
             
              end
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
              def query
         
     | 
| 
      
 12 
     | 
    
         
            +
                # TODO: write some code here
         
     | 
| 
       12 
13 
     | 
    
         
             
              end
         
     | 
| 
       13 
14 
     | 
    
         | 
| 
       14 
15 
     | 
    
         
             
              def sync
         
     | 
| 
       15 
     | 
    
         
            -
                 
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
                    o=ObjectValue.new
         
     | 
| 
       18 
     | 
    
         
            -
                    o.source_id=@source.id
         
     | 
| 
       19 
     | 
    
         
            -
                    o.object=x['id']
         
     | 
| 
       20 
     | 
    
         
            -
                    o.attrib=y.name
         
     | 
| 
       21 
     | 
    
         
            -
                    o.value=y.value
         
     | 
| 
       22 
     | 
    
         
            -
                    o.save
         
     | 
| 
       23 
     | 
    
         
            -
                  end
         
     | 
| 
       24 
     | 
    
         
            -
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
                # usually the generic base class sync does the job
         
     | 
| 
      
 17 
     | 
    
         
            +
                super
         
     | 
| 
       25 
18 
     | 
    
         
             
              end
         
     | 
| 
       26 
19 
     | 
    
         | 
| 
       27 
20 
     | 
    
         
             
              def create(name_value_list)
         
     | 
| 
      
 21 
     | 
    
         
            +
                #TODO: write some code here
         
     | 
| 
       28 
22 
     | 
    
         
             
              end
         
     | 
| 
       29 
23 
     | 
    
         | 
| 
       30 
24 
     | 
    
         
             
              def update(name_value_list)
         
     | 
| 
      
 25 
     | 
    
         
            +
                #TODO: write some code here
         
     | 
| 
       31 
26 
     | 
    
         
             
              end
         
     | 
| 
       32 
27 
     | 
    
         | 
| 
       33 
28 
     | 
    
         
             
              def delete(name_value_list)
         
     | 
| 
      
 29 
     | 
    
         
            +
                #TODO: write some code here if applicable
         
     | 
| 
       34 
30 
     | 
    
         
             
              end
         
     | 
| 
       35 
31 
     | 
    
         | 
| 
       36 
32 
     | 
    
         
             
              def logoff
         
     | 
| 
      
 33 
     | 
    
         
            +
                #TODO: write some code here if applicable
         
     | 
| 
       37 
34 
     | 
    
         
             
              end
         
     | 
| 
       38 
35 
     | 
    
         
             
            end
         
     | 
    
        data/lib/rho/rho.rb
    CHANGED
    
    | 
         @@ -12,13 +12,13 @@ module Rho 
     | 
|
| 
       12 
12 
     | 
    
         
             
              class RHO
         
     | 
| 
       13 
13 
     | 
    
         
             
                APPLICATIONS = {}
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
                def initialize( 
     | 
| 
      
 15 
     | 
    
         
            +
                def initialize(app_manifest_filename=nil)
         
     | 
| 
       16 
16 
     | 
    
         
             
                  puts "Calling RHO.initialize"
         
     | 
| 
       17 
17 
     | 
    
         
             
                  Rhom::RhomDbAdapter::open(Rho::RhoFSConnector::get_db_fullpathname)
         
     | 
| 
       18 
     | 
    
         
            -
                  if  
     | 
| 
       19 
     | 
    
         
            -
                    process_model_dirs( 
     | 
| 
      
 18 
     | 
    
         
            +
                  if app_manifest_filename
         
     | 
| 
      
 19 
     | 
    
         
            +
                    process_model_dirs(app_manifest_filename)
         
     | 
| 
       20 
20 
     | 
    
         
             
                  else
         
     | 
| 
       21 
     | 
    
         
            -
                    process_model_dirs( 
     | 
| 
      
 21 
     | 
    
         
            +
                    process_model_dirs(Rho::RhoFSConnector::get_app_manifest_filename)
         
     | 
| 
       22 
22 
     | 
    
         
             
                  end
         
     | 
| 
       23 
23 
     | 
    
         
             
                  init_sources
         
     | 
| 
       24 
24 
     | 
    
         
             
                end
         
     | 
| 
         @@ -29,17 +29,15 @@ module Rho 
     | 
|
| 
       29 
29 
     | 
    
         
             
                end
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         
             
                # Return the directories where we need to load configuration files
         
     | 
| 
       32 
     | 
    
         
            -
                def process_model_dirs( 
     | 
| 
       33 
     | 
    
         
            -
                   
     | 
| 
       34 
     | 
    
         
            -
                    require  
     | 
| 
      
 32 
     | 
    
         
            +
                def process_model_dirs(app_manifest_filename=nil)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  File.open(app_manifest_filename).each do |line|
         
     | 
| 
      
 34 
     | 
    
         
            +
                    require File.join(File.dirname(app_manifest_filename), line.chop)
         
     | 
| 
       35 
35 
     | 
    
         
             
                  end
         
     | 
| 
       36 
36 
     | 
    
         
             
                end
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
       38 
38 
     | 
    
         
             
                # setup the sources table and model attributes for all applications
         
     | 
| 
       39 
39 
     | 
    
         
             
                def init_sources
         
     | 
| 
       40 
     | 
    
         
            -
                   
     | 
| 
       41 
     | 
    
         
            -
                  if defined? Rho::RhoConfig::sources and not self.sources_initialized?
         
     | 
| 
       42 
     | 
    
         
            -
                    Rhom::RhomDbAdapter::delete_all_from_table('sources')
         
     | 
| 
      
 40 
     | 
    
         
            +
                  if defined? Rho::RhoConfig::sources
         
     | 
| 
       43 
41 
     | 
    
         
             
                    src_attribs = []
         
     | 
| 
       44 
42 
     | 
    
         | 
| 
       45 
43 
     | 
    
         
             
                    # quick and dirty way to get unique array of hashes
         
     | 
| 
         @@ -47,22 +45,27 @@ module Rho 
     | 
|
| 
       47 
45 
     | 
    
         
             
                      result << h unless result.include?(h); result
         
     | 
| 
       48 
46 
     | 
    
         
             
                    }
         
     | 
| 
       49 
47 
     | 
    
         | 
| 
       50 
     | 
    
         
            -
                    # generate unique source list in  
     | 
| 
      
 48 
     | 
    
         
            +
                    # generate unique source list in database for sync
         
     | 
| 
       51 
49 
     | 
    
         
             
                    uniq_sources.each do |source|
         
     | 
| 
      
 50 
     | 
    
         
            +
                      
         
     | 
| 
       52 
51 
     | 
    
         
             
                      src_id = source['source_id']
         
     | 
| 
       53 
52 
     | 
    
         
             
                      url = source['url']
         
     | 
| 
       54 
     | 
    
         
            -
                       
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
      
 53 
     | 
    
         
            +
                      if !self.source_initialized?(src_id)
         
     | 
| 
      
 54 
     | 
    
         
            +
                        puts "initializing source #{src_id}..."
         
     | 
| 
      
 55 
     | 
    
         
            +
                        Rhom::RhomDbAdapter::insert_into_table('sources',
         
     | 
| 
      
 56 
     | 
    
         
            +
                                                              {"source_id"=>src_id,"source_url"=>url})
         
     | 
| 
      
 57 
     | 
    
         
            +
                      end
         
     | 
| 
       56 
58 
     | 
    
         
             
                    end
         
     | 
| 
       57 
59 
     | 
    
         
             
                  end
         
     | 
| 
       58 
60 
     | 
    
         
             
                end
         
     | 
| 
       59 
61 
     | 
    
         | 
| 
       60 
     | 
    
         
            -
                def  
     | 
| 
       61 
     | 
    
         
            -
                  Rhom::RhomDbAdapter::select_from_table('sources','*').size > 0 ? true : false
         
     | 
| 
      
 62 
     | 
    
         
            +
                def source_initialized?(source_id)
         
     | 
| 
      
 63 
     | 
    
         
            +
                  Rhom::RhomDbAdapter::select_from_table('sources','*', 'source_id'=>source_id).size > 0 ? true : false
         
     | 
| 
       62 
64 
     | 
    
         
             
                end
         
     | 
| 
       63 
65 
     | 
    
         | 
| 
       64 
66 
     | 
    
         
             
                def get_app(appname)
         
     | 
| 
       65 
67 
     | 
    
         
             
                  if (APPLICATIONS[appname].nil?)
         
     | 
| 
      
 68 
     | 
    
         
            +
                    puts "app require: #{RhoApplication::get_app_path(appname)+'application'}"
         
     | 
| 
       66 
69 
     | 
    
         
             
                    require RhoApplication::get_app_path(appname)+'application'
         
     | 
| 
       67 
70 
     | 
    
         
             
                    APPLICATIONS[appname] = Object.const_get(appname+'Application').new
         
     | 
| 
       68 
71 
     | 
    
         
             
                  end
         
     | 
    
        data/lib/rho/rhofsconnector.rb
    CHANGED
    
    | 
         @@ -1,5 +1,3 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'find'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
1 
     | 
    
         
             
            module Rho
         
     | 
| 
       4 
2 
     | 
    
         
             
              class RhoFSConnector
         
     | 
| 
       5 
3 
     | 
    
         | 
| 
         @@ -12,6 +10,10 @@ module Rho 
     | 
|
| 
       12 
10 
     | 
    
         
             
                  def get_base_app_path
         
     | 
| 
       13 
11 
     | 
    
         
             
                    File.join(File.dirname(File.expand_path(__FILE__)), '../../apps/')
         
     | 
| 
       14 
12 
     | 
    
         
             
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
                  
         
     | 
| 
      
 14 
     | 
    
         
            +
                  def get_app_manifest_filename
         
     | 
| 
      
 15 
     | 
    
         
            +
                    File.join(File.dirname(File.expand_path(__FILE__)), '../../apps/app_manifest.txt')
         
     | 
| 
      
 16 
     | 
    
         
            +
                  end
         
     | 
| 
       15 
17 
     | 
    
         | 
| 
       16 
18 
     | 
    
         
             
                  def get_model_path(appname, modelname)
         
     | 
| 
       17 
19 
     | 
    
         
             
                    File.join(File.dirname(File.expand_path(__FILE__)), '../../apps/'+appname+'/'+modelname+'/')
         
     | 
| 
         @@ -24,15 +26,6 @@ module Rho 
     | 
|
| 
       24 
26 
     | 
    
         
             
              			  File.join(File.dirname(File.expand_path(__FILE__)), '../../db/syncdb.sqlite')
         
     | 
| 
       25 
27 
     | 
    
         
             
              		  end
         
     | 
| 
       26 
28 
     | 
    
         
             
              	  end
         
     | 
| 
       27 
     | 
    
         
            -
            	  
         
     | 
| 
       28 
     | 
    
         
            -
              	  def enum_files(paths, filename) # :yield: path
         
     | 
| 
       29 
     | 
    
         
            -
              		  Find.find(paths) do |path| 
         
     | 
| 
       30 
     | 
    
         
            -
              		    if File.basename(path) == filename
         
     | 
| 
       31 
     | 
    
         
            -
              		      yield path
         
     | 
| 
       32 
     | 
    
         
            -
              		    end
         
     | 
| 
       33 
     | 
    
         
            -
              		  end
         
     | 
| 
       34 
     | 
    
         
            -
              	  end
         
     | 
| 
       35 
     | 
    
         
            -
            		  
         
     | 
| 
       36 
29 
     | 
    
         
             
                end
         
     | 
| 
       37 
30 
     | 
    
         | 
| 
       38 
31 
     | 
    
         
             
              end # RhoApplication
         
     | 
    
        data/lib/rho/rhofsconnectorME.rb
    CHANGED
    
    | 
         @@ -11,6 +11,10 @@ module Rho 
     | 
|
| 
       11 
11 
     | 
    
         
             
                  def get_base_app_path
         
     | 
| 
       12 
12 
     | 
    
         
             
            	      'apps/'  
         
     | 
| 
       13 
13 
     | 
    
         
             
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
                  
         
     | 
| 
      
 15 
     | 
    
         
            +
                  def get_app_manifest_filename
         
     | 
| 
      
 16 
     | 
    
         
            +
                    get_base_app_path+'app_manifest.txt'
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
       14 
18 
     | 
    
         | 
| 
       15 
19 
     | 
    
         
             
                  def get_model_path(appname, modelname)
         
     | 
| 
       16 
20 
     | 
    
         
             
            		    'apps/'+appname+'/'+modelname+'/'  
         
     | 
| 
         @@ -23,14 +27,6 @@ module Rho 
     | 
|
| 
       23 
27 
     | 
    
         
             
              			  'syncdb_.dbs'
         
     | 
| 
       24 
28 
     | 
    
         
             
              		  end
         
     | 
| 
       25 
29 
     | 
    
         
             
              	  end
         
     | 
| 
       26 
     | 
    
         
            -
            	  
         
     | 
| 
       27 
     | 
    
         
            -
                  def enum_files(paths, filename) # :yield: path
         
     | 
| 
       28 
     | 
    
         
            -
            		yield get_app_path('Rhosugar/Account') + filename
         
     | 
| 
       29 
     | 
    
         
            -
            		yield get_app_path('Rhosugar/Case') + filename  
         
     | 
| 
       30 
     | 
    
         
            -
            		yield get_app_path('Rhosugar/Employee') + filename  
         
     | 
| 
       31 
     | 
    
         
            -
              	  end
         
     | 
| 
       32 
     | 
    
         
            -
            		  
         
     | 
| 
       33 
30 
     | 
    
         
             
                end
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
31 
     | 
    
         
             
              end # RhoApplication
         
     | 
| 
       36 
32 
     | 
    
         
             
            end # Rho
         
     | 
    
        data/lib/rhodes.rb
    CHANGED
    
    
    
        data/lib/rhom/rhom_db_adapter.rb
    CHANGED
    
    
    
        data/spec/app_generator_spec.rb
    CHANGED
    
    | 
         @@ -10,6 +10,12 @@ describe Rhogen::AppGenerator do 
     | 
|
| 
       10 
10 
     | 
    
         
             
                }.should raise_error(::Templater::TooFewArgumentsError)
         
     | 
| 
       11 
11 
     | 
    
         
             
              end
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
      
 13 
     | 
    
         
            +
              
         
     | 
| 
      
 14 
     | 
    
         
            +
              it "should generate class_name" do
         
     | 
| 
      
 15 
     | 
    
         
            +
                @generator = Rhogen::AppGenerator.new('/tmp', {}, 'Class-With-Hyphens')
         
     | 
| 
      
 16 
     | 
    
         
            +
                @generator.class_name.should == 'ClassWithHyphens'
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
              
         
     | 
| 
       13 
19 
     | 
    
         
             
              before do
         
     | 
| 
       14 
20 
     | 
    
         
             
                @generator = Rhogen::AppGenerator.new('/tmp', {}, app_name)
         
     | 
| 
       15 
21 
     | 
    
         
             
              end
         
     | 
| 
         @@ -12,7 +12,15 @@ describe Rhogen::ModelGenerator do 
     | 
|
| 
       12 
12 
     | 
    
         
             
              end
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
              before do
         
     | 
| 
       15 
     | 
    
         
            -
                @generator = Rhogen::ModelGenerator.new('/tmp', {}, model_name, "http://something.com/sources/5", 5)
         
     | 
| 
      
 15 
     | 
    
         
            +
                @generator = Rhogen::ModelGenerator.new('/tmp', {}, model_name, "http://something.com/sources/5", 5, "name,industry,address")
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
              
         
     | 
| 
      
 18 
     | 
    
         
            +
              it "should have attributes" do
         
     | 
| 
      
 19 
     | 
    
         
            +
                @generator.attributes?.should == true
         
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
              
         
     | 
| 
      
 22 
     | 
    
         
            +
              it "should have all attributes" do
         
     | 
| 
      
 23 
     | 
    
         
            +
                @generator.attributes.should == ['name', 'industry', 'address']
         
     | 
| 
       16 
24 
     | 
    
         
             
              end
         
     | 
| 
       17 
25 
     | 
    
         | 
| 
       18 
26 
     | 
    
         
             
              it "should create config.rb, controller.rb, index.erb, edit.erb, and new.erb files" do
         
     | 
    
        data/spec/rho_spec.rb
    CHANGED
    
    | 
         @@ -31,9 +31,13 @@ describe "Rho" do 
     | 
|
| 
       31 
31 
     | 
    
         | 
| 
       32 
32 
     | 
    
         
             
              it "should initialize configuration only once" do
         
     | 
| 
       33 
33 
     | 
    
         
             
                Rhom::RhomDbAdapter::delete_all_from_table('sources')
         
     | 
| 
       34 
     | 
    
         
            -
                @rho. 
     | 
| 
      
 34 
     | 
    
         
            +
                @rho.source_initialized?(1).should == false
         
     | 
| 
       35 
35 
     | 
    
         
             
                @rho.init_sources
         
     | 
| 
       36 
     | 
    
         
            -
                @rho. 
     | 
| 
      
 36 
     | 
    
         
            +
                @rho.source_initialized?(1).should == true
         
     | 
| 
      
 37 
     | 
    
         
            +
              end
         
     | 
| 
      
 38 
     | 
    
         
            +
              
         
     | 
| 
      
 39 
     | 
    
         
            +
              it "should return from get_app" do
         
     | 
| 
      
 40 
     | 
    
         
            +
                pending "fix relative paths for testing of get_app"
         
     | 
| 
       37 
41 
     | 
    
         
             
              end
         
     | 
| 
       38 
42 
     | 
    
         | 
| 
       39 
43 
     | 
    
         
             
              it "should serve request" do
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | 
         @@ -21,7 +21,7 @@ describe "rho initializer", :shared => true do 
     | 
|
| 
       21 
21 
     | 
    
         
             
                FileUtils.mkdir_p('build')
         
     | 
| 
       22 
22 
     | 
    
         
             
                FileUtils.cp_r('spec/syncdbtest.sqlite','build/syncdbtest.sqlite')
         
     | 
| 
       23 
23 
     | 
    
         
             
                Object::const_set("SYNC_DB_FILE", "../../build/syncdbtest.sqlite") unless defined? SYNC_DB_FILE
         
     | 
| 
       24 
     | 
    
         
            -
                @rho = Rho::RHO.new(File.dirname(__FILE__)  
     | 
| 
      
 24 
     | 
    
         
            +
                @rho = Rho::RHO.new(File.join(File.dirname(File.expand_path(__FILE__)), '../../../apps/app_manifest.txt'))
         
     | 
| 
       25 
25 
     | 
    
         
             
                @rhom = Rhom::RhomObjectFactory.new
         
     | 
| 
       26 
26 
     | 
    
         
             
              end
         
     | 
| 
       27 
27 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rhodes
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors: 
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Rhomobile Dev
         
     | 
| 
         @@ -9,7 +9,7 @@ autorequire: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
            date: 2008-12- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2008-12-11 00:00:00 -08:00
         
     | 
| 
       13 
13 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -80,7 +80,7 @@ dependencies: 
     | 
|
| 
       80 
80 
     | 
    
         
             
                requirements: 
         
     | 
| 
       81 
81 
     | 
    
         
             
                - - ">="
         
     | 
| 
       82 
82 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       83 
     | 
    
         
            -
                    version: 1. 
     | 
| 
      
 83 
     | 
    
         
            +
                    version: 1.2.0
         
     | 
| 
       84 
84 
     | 
    
         
             
                version: 
         
     | 
| 
       85 
85 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       86 
86 
     | 
    
         
             
              name: hoe
         
     | 
| 
         @@ -125,7 +125,6 @@ files: 
     | 
|
| 
       125 
125 
     | 
    
         
             
            - lib/date.rb
         
     | 
| 
       126 
126 
     | 
    
         
             
            - lib/date/format.rb
         
     | 
| 
       127 
127 
     | 
    
         
             
            - lib/erb.rb
         
     | 
| 
       128 
     | 
    
         
            -
            - lib/find.rb
         
     | 
| 
       129 
128 
     | 
    
         
             
            - lib/rational.rb
         
     | 
| 
       130 
129 
     | 
    
         
             
            - lib/rho.rb
         
     | 
| 
       131 
130 
     | 
    
         
             
            - lib/rho/render.rb
         
     | 
    
        data/lib/find.rb
    DELETED
    
    | 
         @@ -1,81 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #
         
     | 
| 
       2 
     | 
    
         
            -
            # find.rb: the Find module for processing all files under a given directory.
         
     | 
| 
       3 
     | 
    
         
            -
            #
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            #
         
     | 
| 
       6 
     | 
    
         
            -
            # The +Find+ module supports the top-down traversal of a set of file paths.
         
     | 
| 
       7 
     | 
    
         
            -
            #
         
     | 
| 
       8 
     | 
    
         
            -
            # For example, to total the size of all files under your home directory,
         
     | 
| 
       9 
     | 
    
         
            -
            # ignoring anything in a "dot" directory (e.g. $HOME/.ssh):
         
     | 
| 
       10 
     | 
    
         
            -
            #
         
     | 
| 
       11 
     | 
    
         
            -
            #   require 'find'
         
     | 
| 
       12 
     | 
    
         
            -
            #
         
     | 
| 
       13 
     | 
    
         
            -
            #   total_size = 0
         
     | 
| 
       14 
     | 
    
         
            -
            #
         
     | 
| 
       15 
     | 
    
         
            -
            #   Find.find(ENV["HOME"]) do |path|
         
     | 
| 
       16 
     | 
    
         
            -
            #     if FileTest.directory?(path)
         
     | 
| 
       17 
     | 
    
         
            -
            #       if File.basename(path)[0] == ?.
         
     | 
| 
       18 
     | 
    
         
            -
            #         Find.prune       # Don't look any further into this directory.
         
     | 
| 
       19 
     | 
    
         
            -
            #       else
         
     | 
| 
       20 
     | 
    
         
            -
            #         next
         
     | 
| 
       21 
     | 
    
         
            -
            #       end
         
     | 
| 
       22 
     | 
    
         
            -
            #     else
         
     | 
| 
       23 
     | 
    
         
            -
            #       total_size += FileTest.size(path)
         
     | 
| 
       24 
     | 
    
         
            -
            #     end
         
     | 
| 
       25 
     | 
    
         
            -
            #   end
         
     | 
| 
       26 
     | 
    
         
            -
            #
         
     | 
| 
       27 
     | 
    
         
            -
            module Find
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
              #
         
     | 
| 
       30 
     | 
    
         
            -
              # Calls the associated block with the name of every file and directory listed
         
     | 
| 
       31 
     | 
    
         
            -
              # as arguments, then recursively on their subdirectories, and so on.
         
     | 
| 
       32 
     | 
    
         
            -
              #
         
     | 
| 
       33 
     | 
    
         
            -
              # See the +Find+ module documentation for an example.
         
     | 
| 
       34 
     | 
    
         
            -
              #
         
     | 
| 
       35 
     | 
    
         
            -
              def find(*paths) # :yield: path
         
     | 
| 
       36 
     | 
    
         
            -
                block_given? or return enum_for(__method__, *paths)
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
                paths.collect!{|d| raise Errno::ENOENT unless File.exist?(d); d.dup}
         
     | 
| 
       39 
     | 
    
         
            -
                while file = paths.shift
         
     | 
| 
       40 
     | 
    
         
            -
                  catch(:prune) do
         
     | 
| 
       41 
     | 
    
         
            -
            	yield file.dup.taint
         
     | 
| 
       42 
     | 
    
         
            -
                    next unless File.exist? file
         
     | 
| 
       43 
     | 
    
         
            -
            	begin
         
     | 
| 
       44 
     | 
    
         
            -
            	  if File.lstat(file).directory? then
         
     | 
| 
       45 
     | 
    
         
            -
            	    d = Dir.open(file)
         
     | 
| 
       46 
     | 
    
         
            -
            	    begin
         
     | 
| 
       47 
     | 
    
         
            -
            	      for f in d
         
     | 
| 
       48 
     | 
    
         
            -
            		next if f == "." or f == ".."
         
     | 
| 
       49 
     | 
    
         
            -
            		if File::ALT_SEPARATOR and file =~ /^(?:[\/\\]|[A-Za-z]:[\/\\]?)$/ then
         
     | 
| 
       50 
     | 
    
         
            -
            		  f = file + f
         
     | 
| 
       51 
     | 
    
         
            -
            		elsif file == "/" then
         
     | 
| 
       52 
     | 
    
         
            -
            		  f = "/" + f
         
     | 
| 
       53 
     | 
    
         
            -
            		else
         
     | 
| 
       54 
     | 
    
         
            -
            		  f = File.join(file, f)
         
     | 
| 
       55 
     | 
    
         
            -
            		end
         
     | 
| 
       56 
     | 
    
         
            -
            		paths.unshift f.untaint
         
     | 
| 
       57 
     | 
    
         
            -
            	      end
         
     | 
| 
       58 
     | 
    
         
            -
            	    ensure
         
     | 
| 
       59 
     | 
    
         
            -
            	      d.close
         
     | 
| 
       60 
     | 
    
         
            -
            	    end
         
     | 
| 
       61 
     | 
    
         
            -
            	  end
         
     | 
| 
       62 
     | 
    
         
            -
                   rescue Errno::ENOENT, Errno::EACCES
         
     | 
| 
       63 
     | 
    
         
            -
            	end
         
     | 
| 
       64 
     | 
    
         
            -
                  end
         
     | 
| 
       65 
     | 
    
         
            -
                end
         
     | 
| 
       66 
     | 
    
         
            -
              end
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
              #
         
     | 
| 
       69 
     | 
    
         
            -
              # Skips the current file or directory, restarting the loop with the next
         
     | 
| 
       70 
     | 
    
         
            -
              # entry. If the current file is a directory, that directory will not be
         
     | 
| 
       71 
     | 
    
         
            -
              # recursively entered. Meaningful only within the block associated with
         
     | 
| 
       72 
     | 
    
         
            -
              # Find::find.
         
     | 
| 
       73 
     | 
    
         
            -
              #
         
     | 
| 
       74 
     | 
    
         
            -
              # See the +Find+ module documentation for an example.
         
     | 
| 
       75 
     | 
    
         
            -
              #
         
     | 
| 
       76 
     | 
    
         
            -
              def prune
         
     | 
| 
       77 
     | 
    
         
            -
                throw :prune
         
     | 
| 
       78 
     | 
    
         
            -
              end
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
              module_function :find, :prune
         
     | 
| 
       81 
     | 
    
         
            -
            end
         
     |