iut 0.2.0 → 0.2.1
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/iut.gemspec +1 -1
- data/lib/iut.rb +15 -12
- data/lib/iut/arc.rb +43 -26
- data/lib/iut/version.rb +1 -1
- data/test/test_arc.rb +7 -0
- data/test/test_arc_change_settings.rb +11 -4
- metadata +2 -2
    
        data/iut.gemspec
    CHANGED
    
    | @@ -8,7 +8,7 @@ Gem::Specification.new do |s| | |
| 8 8 | 
             
              s.authors     = ["Katsuyoshi Ito"]
         | 
| 9 9 | 
             
              s.email       = ["kito@itosoft.com"]
         | 
| 10 10 | 
             
              s.homepage    = "https://github.com/katsuyoshi/iunittest"
         | 
| 11 | 
            -
              s.summary     = %q{It generates a iUnitTest test project for Xcode 4.x.}
         | 
| 11 | 
            +
              s.summary     = %q{It generates a iUnitTest test project for Xcode 4.x. Or set ARC compile flags. }
         | 
| 12 12 | 
             
              s.description = %q{After Xcode 4 released, the format of template project was changed. The aim of this command is to make a iUnitTest test project easily. }
         | 
| 13 13 |  | 
| 14 14 | 
             
              s.rubyforge_project = "iut"
         | 
    
        data/lib/iut.rb
    CHANGED
    
    | @@ -13,21 +13,24 @@ opt = OptionParser.new | |
| 13 13 | 
             
            opt.on('-p', '--project PROJECT', 'Set project path PROJECT.') {|v| v }
         | 
| 14 14 |  | 
| 15 15 | 
             
            opt.banner = <<EOF
         | 
| 16 | 
            -
            Usage: | 
| 16 | 
            +
            Usage:
         | 
| 17 | 
            +
              Makes a iUnitTest's empty project named TEST_PROJECT_NAME.
         | 
| 17 18 |  | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
               | 
| 22 | 
            -
             | 
| 23 | 
            -
                          -fno-objc-arc to the class.
         | 
| 24 | 
            -
              arc revert  Revert a previous arc command
         | 
| 19 | 
            +
                iut TEST_PROJECT_NAME
         | 
| 20 | 
            +
              
         | 
| 21 | 
            +
              Set the compile option Automatic Refarence counting to YES.
         | 
| 22 | 
            +
              And scanned all files.
         | 
| 23 | 
            +
              If a class doesn't use ARC, set a compile flag -fno-objc-arc to the class.
         | 
| 25 24 |  | 
| 26 | 
            -
             | 
| 27 | 
            -
             $ iut TestProject    It makes iUnitTest's empty project TestProject.
         | 
| 28 | 
            -
             $ iut arc            Set a compile flag to use ARC.
         | 
| 29 | 
            -
             $ iut arc revert     Revert a previous arc command.
         | 
| 25 | 
            +
                iut arc [subcommand] [options] 
         | 
| 30 26 |  | 
| 27 | 
            +
              subcommands are:
         | 
| 28 | 
            +
                          Nothing subcommand, set compile flags of ARC.
         | 
| 29 | 
            +
                          It makes backup file.
         | 
| 30 | 
            +
                revert    Revert a project from previous arc command's backup.
         | 
| 31 | 
            +
                clean     Remove all backup files.
         | 
| 32 | 
            +
             | 
| 33 | 
            +
              options are:
         | 
| 31 34 | 
             
            EOF
         | 
| 32 35 |  | 
| 33 36 | 
             
            #opt.on('-h', '--help', 'show this help message and exit') {|v| }
         | 
    
        data/lib/iut/arc.rb
    CHANGED
    
    | @@ -17,34 +17,33 @@ module Iut | |
| 17 17 |  | 
| 18 18 | 
             
                  super_name = "NSObject"
         | 
| 19 19 |  | 
| 20 | 
            -
                  Dir. | 
| 21 | 
            -
                     | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
                      context.gsub! /\s+/, " "
         | 
| 20 | 
            +
                  Dir.glob("**/#{class_name}\.[hm]") do |f|
         | 
| 21 | 
            +
                    context = File.read f
         | 
| 22 | 
            +
                    # remove comments
         | 
| 23 | 
            +
                    context.gsub! /\/\/.*\n/, ""
         | 
| 24 | 
            +
                    context.gsub! /\/\*.*\*\//m, ""
         | 
| 25 | 
            +
                    # remove spaces
         | 
| 26 | 
            +
                    context.gsub! /\s+/, " "
         | 
| 28 27 |  | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
                        end
         | 
| 28 | 
            +
                    case f[-2, 2]
         | 
| 29 | 
            +
                    when /.h/i
         | 
| 30 | 
            +
                      # get a name of super class
         | 
| 31 | 
            +
                      a = context.scan(/@interface.*:\s(\S+)/)
         | 
| 32 | 
            +
                      super_name = a.first.first if a.first
         | 
| 33 | 
            +
                      
         | 
| 34 | 
            +
                      case context
         | 
| 35 | 
            +
                      when /@property\s*\(.*copy(\s*|\]|\))/,
         | 
| 36 | 
            +
                           /@property\s*\(.*retain(\s*|\]|\))/
         | 
| 37 | 
            +
                        return true
         | 
| 38 | 
            +
                      end
         | 
| 39 | 
            +
                    when /.m/i
         | 
| 40 | 
            +
                      case context
         | 
| 41 | 
            +
                      when /\s+dealloc(\s*|\])/, /\s+autorelease(\s*|\])/,
         | 
| 42 | 
            +
                           /\s+dealloc(\s*|\])/, /\s+release(\s*|\])/
         | 
| 43 | 
            +
                        return true
         | 
| 46 44 | 
             
                      end
         | 
| 47 45 | 
             
                    end
         | 
| 46 | 
            +
             | 
| 48 47 | 
             
                  end
         | 
| 49 48 | 
             
                  nonarc? super_name
         | 
| 50 49 | 
             
                end
         | 
| @@ -98,7 +97,23 @@ module Iut | |
| 98 97 | 
             
                      files << f if /project.pbxproj.\d{8}\-\d{6}/ =~ f
         | 
| 99 98 | 
             
                    end
         | 
| 100 99 | 
             
                    unless files.size == 0
         | 
| 101 | 
            -
                       | 
| 100 | 
            +
                      f = files.sort.reverse.first
         | 
| 101 | 
            +
                      FileUtils.cp f, Dir.glob("**/project.pbxproj").first
         | 
| 102 | 
            +
                      FileUtils.rm f
         | 
| 103 | 
            +
                    end
         | 
| 104 | 
            +
                  end
         | 
| 105 | 
            +
                end
         | 
| 106 | 
            +
                
         | 
| 107 | 
            +
                def clean
         | 
| 108 | 
            +
                  Dir.chdir self.project_path do
         | 
| 109 | 
            +
                    files = []
         | 
| 110 | 
            +
                    Dir.glob("**/project.pbxproj.*") do |f|
         | 
| 111 | 
            +
                      files << f if /project.pbxproj.\d{8}\-\d{6}/ =~ f
         | 
| 112 | 
            +
                    end
         | 
| 113 | 
            +
                    unless files.size == 0
         | 
| 114 | 
            +
                      files.each do |f|
         | 
| 115 | 
            +
                        FileUtils.rm f
         | 
| 116 | 
            +
                      end
         | 
| 102 117 | 
             
                    end
         | 
| 103 118 | 
             
                  end
         | 
| 104 119 | 
             
                end
         | 
| @@ -115,6 +130,8 @@ module Iut | |
| 115 130 | 
             
                  case ARGV[1]
         | 
| 116 131 | 
             
                  when /revert/
         | 
| 117 132 | 
             
                    arc.revert
         | 
| 133 | 
            +
                  when /clean/
         | 
| 134 | 
            +
                    arc.clean
         | 
| 118 135 | 
             
                  else
         | 
| 119 136 | 
             
                    arc.change_project_settings
         | 
| 120 137 | 
             
                  end
         | 
    
        data/lib/iut/version.rb
    CHANGED
    
    
    
        data/test/test_arc.rb
    CHANGED
    
    | @@ -14,6 +14,13 @@ class TestArc < Test::Unit::TestCase | |
| 14 14 | 
             
                project_path = File.join(File.expand_path(File.dirname(__FILE__)), "files", "IUTTest")
         | 
| 15 15 | 
             
                @arc = Iut::Arc.new
         | 
| 16 16 | 
             
                @arc.project_path = project_path
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                @pwd = File.expand_path(Dir.pwd)
         | 
| 19 | 
            +
                Dir.chdir @arc.project_path
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
              
         | 
| 22 | 
            +
              def teardown
         | 
| 23 | 
            +
                Dir.chdir @pwd
         | 
| 17 24 | 
             
              end
         | 
| 18 25 |  | 
| 19 26 |  | 
| @@ -8,13 +8,12 @@ $:.unshift(iut_path) unless | |
| 8 8 | 
             
            require "arc"
         | 
| 9 9 |  | 
| 10 10 |  | 
| 11 | 
            -
            class  | 
| 11 | 
            +
            class TestArcChangeSettings < Test::Unit::TestCase
         | 
| 12 12 |  | 
| 13 13 | 
             
              def setup
         | 
| 14 14 | 
             
                project_path = File.join(File.expand_path(File.dirname(__FILE__)), "files", "IUTTest")
         | 
| 15 15 | 
             
                @arc = Iut::Arc.new
         | 
| 16 16 | 
             
                @arc.project_path = project_path
         | 
| 17 | 
            -
            #p project_path
         | 
| 18 17 | 
             
              end
         | 
| 19 18 |  | 
| 20 19 | 
             
              def teardown
         | 
| @@ -57,8 +56,7 @@ class TestArc < Test::Unit::TestCase | |
| 57 56 | 
             
              def test_arc_make_backup
         | 
| 58 57 | 
             
                @arc.change_project_settings
         | 
| 59 58 | 
             
                Dir.chdir @arc.project_path do
         | 
| 60 | 
            -
                   | 
| 61 | 
            -
                  assert_equal 1, files.size
         | 
| 59 | 
            +
                  assert_equal 1, Dir.glob("**/project.pbxproj.2*").size
         | 
| 62 60 | 
             
                end
         | 
| 63 61 | 
             
              end
         | 
| 64 62 |  | 
| @@ -67,6 +65,15 @@ class TestArc < Test::Unit::TestCase | |
| 67 65 | 
             
                @arc.revert
         | 
| 68 66 | 
             
                Dir.chdir @arc.project_path do
         | 
| 69 67 | 
             
                  assert_equal File.read("IUTTest.xcodeproj/project.pbxproj.org"), File.read("IUTTest.xcodeproj/project.pbxproj")
         | 
| 68 | 
            +
                  assert_equal 0, Dir.glob("**/project.pbxproj.2*").size
         | 
| 69 | 
            +
                end
         | 
| 70 | 
            +
              end
         | 
| 71 | 
            +
              
         | 
| 72 | 
            +
              def test_clean
         | 
| 73 | 
            +
                @arc.change_project_settings
         | 
| 74 | 
            +
                @arc.clean
         | 
| 75 | 
            +
                Dir.chdir @arc.project_path do
         | 
| 76 | 
            +
                  assert_equal 0, Dir.glob("**/project.pbxproj.2*").size
         | 
| 70 77 | 
             
                end
         | 
| 71 78 | 
             
              end
         | 
| 72 79 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: iut
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.2. | 
| 4 | 
            +
              version: 0.2.1
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -146,7 +146,7 @@ rubyforge_project: iut | |
| 146 146 | 
             
            rubygems_version: 1.8.10
         | 
| 147 147 | 
             
            signing_key: 
         | 
| 148 148 | 
             
            specification_version: 3
         | 
| 149 | 
            -
            summary: It generates a iUnitTest test project for Xcode 4.x.
         | 
| 149 | 
            +
            summary: It generates a iUnitTest test project for Xcode 4.x. Or set ARC compile flags.
         | 
| 150 150 | 
             
            test_files:
         | 
| 151 151 | 
             
            - test/files/IUTTest/IUTTest.xcodeproj/project.pbxproj
         | 
| 152 152 | 
             
            - test/files/IUTTest/IUTTest.xcodeproj/project.pbxproj.expected
         |